vsftp 配置 tcp_wrappers
2015-11-30 by dongnan
环境
Ftp服务端: 10.0.100.13
Ftp客户端: 10.0.100.11
目标
只允许特定的IP地址访问vsftp
服务器,其它IP拒绝。
问题描述
首先尝试使用黑名单机制 hosts.deny
禁止特定IP访问 vsftp
服务器,但是无效。
服务端
# 黑名单,禁止 10.0.100.11 访问
tail -n1 /etc/hosts.deny
vsftpd:10.0.100.11
客户端
# 仍然可以访问服务端
telnet 10.0.100.13 21
Trying 10.0.100.13...
Connected to 10.0.100.13.
Escape character is '^]'.
220 Welcom
quit
221 Goodbye.
Connection closed by foreign host.
解决方法
保证配置文件拥有 tcp_wrappers
参数
grep -i 'tcp_wrappers' /etc/vsftpd/vsftpd.conf
tcp_wrappers=YES
重启服务
/etc/init.d/vsftpd restart
验证
再次访问服务端提示禁止信息
telnet 10.0.100.13 21
Trying 10.0.100.13...
Connected to 10.0.2.13.
Escape character is '^]'.
421 Service not available.
Connection closed by foreign host.
vsftp 配置白名单
也可以使用白名单方式实现功能。
允许通过
tail -n1 /etc/hosts.allow
vsftpd:10.0.0.1
拒绝所有
tail -n1 /etc/hosts.deny
vsftpd:ALL
优先级
这是因为 hosts.allow
的优先级高于 hosts.deny
。
参考
https://serverfault.com/questions/577393/vsftpd-limit-connection-to-a-set-of-ip-addresses