/etc/hosts.deny和/etc/hosts.allow无法限制FTP访问
问题描述:
想通过/etc/hosts.allow与/etc/hosts.deny文件限制某些网段访问FTP服务器(在不动防火墙和交换机的情况下)
本机FTP服务器ip为192.168.0.13
vim /etc/hosts.allow
vsftpd:196.168.0.:allow #允许196.168.0网段的所有IP访问FTP
vsftpd:all:deny #拒绝所有IP访问FTP服务(allow优先,所以这里拒绝所有会除开上面已经允许的网段)
保存后,用其他网段IP192.168.10.1登录FTP服务器依然允许访问。
解决:
在FTP服务器上用which vsftpd查看命令路径后,用ldd查看库文件
缺少libwrap库文件,将vsftpd的启动模式改为xinetd
vim /etc/xinetd.d/vsftpd
disable的yes改为no
启动xinetd
rcxinted restart
再尝试用192.168.10.1登录FTP服务器,拒绝访问,成功。
原因:
vsftpd分两种启动模式,startalone模式和xinetd模式。支持/etc/hosts.allow和/etc/hosts.deny文件需要引用到libwrap库,这里用ldd查到并没有该库。而xinetd是有libwrap库的,所以将vsftpd改由xinetd模式启动,则支持了/etc/hosts.allow和/etc.hosts.deny文件。