如何将服务的IP列入白名单,以便只允许某些子网? 我使用IPTables还是有更简单的方法,如IPWrappers您是否必须注册该服务,以使其与IPWrappers(hosts.allow)一起使用
如果你的vsftpd已经被编译了tcp_wrappers支持,那么你可以使用它,如果你打开vsftpdconfiguration选项
tcp_wrappers的= YES
如果启用,并且vsftpd是使用tcp_wrappers支持编译的,则传入连接将通过tcp_wrappers访问控制进行馈送。 此外,还有一个基于IP的configuration机制。 如果tcp_wrappers设置了VSFTPD_LOAD_CONF环境variables,那么vsftpd会尝试加载在这个variables中指定的vsftpdconfiguration文件。
然后可以使用标准的hosts.allow和hosts.deny文件。
你可以检查你的vsftpd是否已经像libwrap这样支持编译
ldd /usr/sbin/vsftpd | grep wrap libwrap.so.0 => /lib64/libwrap.so.0 (0x00002ae164bb6000)
最简单的方法是使用iptables:
iptables -A INPUT -s 1.2.3.0/24 -p tcp --dport 21 -j ACCEPT iptables -A INPUT -s 4.5.6.0/24 -p tcp --dport 21 -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j DROP
允许从1.2.3.0/24和4.5.6.0/24,并允许其他人。
不要忘记保存iptables的configuration(取决于你的Linux发行版),所以它将在重新启动后生存下来。