一、背景简介
在linux上多用iptables来限制ssh和telnet,编缉hosts.allow和hosts.deny感觉比较麻烦比较少用。
aix一是与linux有诸多不同二是没有iptables,进而导致自己以认aix上也是没有hosts.allow和hosts.deny的。
但今天同事反馈说有堡垒机不能ssh某台机器请求放行,查看是aix,向其反馈aix没有iptables,他们发来hosts.allow的截图,感觉愰然大悟:确实没人说过aix不能用hosts.allow和hosts.deny限制ssh,只是自己习惯性认为。
aix上能用hosts.allow,又追究起以前想过的问题:hosts.allow能支持哪些服务?如果能支持所有服务那可以替代iptables来处理aix白名单的问题。
(据说其实aix有类似iptables的东西的,只是我不会用大部份人应该也都不会用)
二、hosts.allow和hosts.deny支持哪些服务
2.1 hosts.allow和hosts.deny支持哪些服务
hosts.allow和hosts.deny规则的执行者为TCP wrappers,对应守护进程为tcpd;而tcpd执行依赖于程序使用了libwrap库。
也就是说:hosts.allow和hosts.deny支持且只支持使用了libwrap库的服务。
2.2 查看程序是否使用libwarp
方法一、查看hosts_access字段串
查看应用程序是否支持 wrapper,可以使用 strings 程序然后 grep 字符串 hosts_access:
strings /usr/sbin/sshd | grep hosts_access
方法二、使用ldd
ldd /usr/sbin/sshd | grep libwrap
查测发现使用xinetd的都可以、sshd可以、vsftpd可以,httpd不可以,weblogic等java程序就不要想了。
参考:
https://www.ibm.com/developerworks/cn/aix/library/au-tcpwrapper/