一、控制用户对FTP的访问
[root@asan ~]# cd /etc/vsftpd/
[root@asan vsftpd]# ls
chroot_list ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
文件ftpusers 、user_list与控制用户访问FTP服务器有关
[root@asan vsftpd]# cat vsftpd.conf
userlist_enable=YES #使用user_list文件,该文件位于/etc/vsftpd/目录,该文件默认已存在,只需要将不能登录的用户加入到该文件中即可,不在user_list文件中的用户允许登录
设置用户user3不能访问FTP服务
[root@asan vsftpd]# vim user_list
添加用户user3
验证结果
登录失败
与FTP服务器的TCP连接并没中断,只是用户认证没有通过。
用户asan登录成功
说明user_list文件以外的用户能够成功登录FTP服务。
==========================================
[root@asan vsftpd]# vim vsftpd.conf
添加配置
userlist_deny=NO #设置user_list中用户被允许登录ftp服务器,而不在该文件的用户将默认被禁止。
重启服务验证
成功与失败
说明user_list中的用户(user3)被允许登录,而不在文件中的用户(asan)禁止登录。
再验证root用户登录
root登录失败
原因:ftp登录认证还要检查文件/etc/vsftpd/ftpuser,该文件中的所有用户均不能登录ftp服务器,即使该用户在user_list中被允许登录。
若想root用户登录,需在ftpusers文件中删除root。
ftpusers中删除root
root再次登录验证
root登录成功
二、控制主机对FTP的访问
[root@asan vsftpd]# tail vsftpd.conf #查看配置文件的后十行内容
tcp_wrappers=YES #允许使用tcp_wrappers
该配置设置vsftpd服务器是否与tcp_wrapper相结合,进行主机的访问控制,默认为YES。vsftpd服务器会检查/etc/hosts.allow和/etc/hosts.deny中的设置,以决定请求连接的主机是否允许访问该FTP服务器。
/etc/hosts.allow #允许访问服务的主机
/etc/hosts.deny #禁止访问服务的主机
[root@asan vsftpd]# vim /etc/hosts.deny
hosts.deny
文件中加入配置 vsftpd:all #禁止所有主机访问FTP服务
验证
访问
说明:当任何主机试图连接FTP服务器时,均被tcp_wrappers拒绝。
增加服务器自身ip后访问
[root@asan ~]# vim /etc/hosts.allow
文件中增加配置:vsftpd:192.168.123.231
访问成功
tcp_wrappers会首先检查hosts.allow文件;
如果在该文件中被允许,即允许访问,不会再检查hosts.deny;
如果在该文件中没有相匹配的规则,则会检查hosts.deny文件;
如果在hosts.deny中被拒绝,则拒绝该主机的访问;
如果hsots.deay文件中也没有相匹配的规则,会允许该主机访问。