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