一、背景简介

在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

hosts.allow和hosts.deny支持哪些服务-LMLPHP

方法二、使用ldd

ldd /usr/sbin/sshd | grep libwrap

hosts.allow和hosts.deny支持哪些服务-LMLPHP

查测发现使用xinetd的都可以、sshd可以、vsftpd可以,httpd不可以,weblogic等java程序就不要想了。

参考:

https://www.ibm.com/developerworks/cn/aix/library/au-tcpwrapper/

05-15 21:04