1. 檢查系統是否又安裝ftp
rpm -qa | grep ftp
2. 如果有安裝通過指令解除安裝
rpm -e --nodeps vsftpd-3.0.2-22.el7.x86_64
3. 安裝ftp伺服器
rpm -y install vsftpd
4. 配置匿名使用者通路,匿名使用者有上傳下載下傳沒有删除權限
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_root=/home/vsftpd/
chroot_local_user=YES
anon_root=/home/vsftpd/
anon_other_write_enable=NO
anon_world_readable_only=NO
5. 建立目錄 /home/vsftpd 并修改權限 為755
mkdir -p /home/vsftpd/files
chmod -R 755 /home/vsftpd
5. 修改匿名使用者檔案的檔案夾權限
chmod -R 777 /home/vsftpd/files
6.重新開機vsftpd服務
service vsftpd restart
SELINUX處理
方式一、關閉SELINUX
#打開SELINUX配置檔案
vim /etc/selinux/config
#修改配置參數
#注釋
SELINUX=enforcing
#增加
SELINUX=disabled
#修改完成後,需要重新開機!
方式二、修改SELINUX
setenforce 0 #暫時讓SELinux進入Permissive模式
#列出與ftp相關的設定
getsebool -a|grep ftp
#以下是顯示出來的權限,off是關閉權限,on是打開權限。不同的機器顯示的可能不一樣。我看了我的顯示的,和網上其他教程就不太一樣
ftp_home_dir --> off
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off
#根據自己需求修改對應值
#将包含有 ftp_home_dir 和 ftpd_full_access 相關的都設定為 1
#匿名使用者修改ftpd_anon_write=1
setsebool -P ftpd_anon_write 1
setsebool -P ftp_home_dir 1
setsebool -P allow_ftpd_anon_write 1
setsebool -P ftp_home_dir 1
setenforce 1 #進入Enforcing模式
方式三、 SELINUX不對vsftp不做任何限制
setsebool -P ftpd_connect_all_unreserved 1
防火牆修改
(centos6指令不同)
Centos7添加防火牆例外端口(也可以直接禁用防火牆)
# firewall-cmd --zone=public --add-port=21/tcp --permanent #添加21端口
# firewall-cmd --reload #重新加載政策配置,以使新配置生效
注:禁止firewall開機啟動為:systemctl disable firewalld
啟動:# systemctl start firewalld
檢視狀态:# systemctl status firewalld 或者 firewall-cmd --state
停止:# systemctl disable firewalld
禁用:# systemctl stop firewalld
也可以添加ftp服務
firewall-cmd --permanent --add-service=ftp
如果想删除:
firewall-cmd --zone= public --remove-port=21/tcp --permanent
最後更新防火牆規則
firewall-cmd --reload
參考部落格:
http://www.cnblogs.com/oldpai/p/yunwei20180628.html
https://www.cnblogs.com/xiaoL/p/6964187.html