一、防火墙、SELINUX配置:
1、增加ip_nat_ftp ip_conntrack_ftp 模块配置,两模块中间空格:
vim /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_nat_ftp ip_conntrack_ftp"
2、增加规则,放开20和21端口,添加如下内容:
命令:vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
3、重启iptables服务:
命令:service iptables restart
4、查看规则是否添加,检查是否有如下内容:
命令:iptables -L -nv
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:20
1 52 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
5、SElinux的配置:
selinux会对FTP的访问有影响,所以本例设置关闭,操作如下:
A、查看命令:a、sestatus -v b、getenforce
B、如果需要临时关闭执行:setenforce 0 即可。
C、如果永久关闭:vim /etc/sysconfig/selinux 修改SELINUX为disabled;
D、如果想一直使用selinux则配置selinux放过FTP目录的设置:
使用命令:/usr/sbin/setsebool -P ftp_home_dir 1
二、安装vsftpd:
命令:yum install vsftpd
三、检查配置文件启动vsftpd:
1、检查配置文件:
命令:vim /etc/vsftpd/vsftpd.conf
2、启动vsftpd服务:
命令:service vsftpd start
说明:在不修改配置文件的前提下,ftp基本为匿名与实体帐号同时访问,默认的根目录为/var/ftp,若要修改根目录,修改配置文件添加“anon_root=你的目录”,重启vsftp服务即可。
四、配置实体模式用户的登录:
1、添加实体用户:
useradd -d /opt/ftptest/ -s /sbin/nologin ftptest
删除: 创建有问题可以删除重新创建 userdel -r ftpUser
chown rongshu /opt/rongshu #给用户读目录的权限;
passwd rongshu #修改密码;
2、限制用户仅使用自己的目录,修改配置文件启动或添加如下配置:
chroot_local_user=YES
chroot_list_enable=YES(chroot_local_user=YES该语句也可以不用)
chroot_list_file=/etc/vsftpd.chroot_list
如上设置后vsftpd.chroot_list中的用户都是不受目录限止的用户,即, 可以浏览其主目录的上级目录。那么不希望用户浏览其主目录上级目录中的内容时在chroot_list中删除掉该用户即可。
另一种控制的方式如下:
chroot_local_user=NO
chroot_list_enable=YES(chroot_local_user=NO时必须开启, chroot_list才会起作用)
chroot_list_file=/etc/vsftpd/chroot_list
配置后重启vsftp生效,要禁止某个用户浏览其用户主目录之外的各目录,将用户一行一个用户名添加到chroot_list中即可,这样在chroot_list中的用户都是不可以浏览用户主目录之外的目录的。
3、限制新增用户禁止使用FTP:
默认的vsftp配置中在/etc/vsftpd/user_list文件中的用户是禁止使用ftp的,所以不在user_list用户列表的用户是可以使用FTP的,为了防止新建的用户默认都能够访问FTP,所以要调整user_list为允许使用的用户使用,配置文件中增加如下配置:
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
这样调整后重启vsftpd服务,/etc/vsftpd/user_list文件中的用户就变成了可以使用FTP的帐号了。未来新建的用户如果想使用FTP,写入user_list文件中的用户列表即可。