查询那些服务是支持 tcp_wrappers 可以先查询这个服务的脚本在哪里,用 which 命令,
 [root@localhost ~]# which sshd /usr/sbin/sshd
[root@localhost ~]#
在使用 ldd 命令来查询 查询这个脚本在允许的时候调用了那些动态链接库文件,  [root@localhost ~]# ldd /usr/sbin/sshd |grep libwrap
libwrap.so.0 => /lib/libwrap.so.0 (0x00b92000)
[root@localhost ~]#
如果服务调用了 libwrap.so 这个动态链接库文件就代表这个 服务支持 tcp_wrappers。
当然也可以这样来直接查询,
[root@localhost ~]#
[root@localhost ~]# ldd `which vsftpd` |grep libwrap libwrap.so.0 => /lib/libwrap.so.0 (0x00825000)
[root@localhost ~]# 可以看到,vsftpd 也是可以支持 tcp_wrappers 的。
 
 
还有一种方式也可以来查询那些服务可以支持 tcp_wrappers。
[root@localhost ~]#strings `which portmap` |grep hosts hosts_access_verbose hosts_allow_table hosts_deny_table /etc/hosts.allow /etc/hosts.deny
[root@localhost ~]#
只要查询出来有/etc/hosts.allow 和/etc/hosts.deny 这两个文件 就代表这个服务支持 tcp_wrappers。
那么我们的 xinetd 服务是否支持 tcp_wrappers 呢?
 [root@localhost ~]# ldd `which xinetd` |grep libwrap libwrap.so.0 => /lib/libwrap.so.0 (0x0035a000)
[root@localhost ~]#
可以看到,xinetd 服务是支持 tcp_wrappers 的,也就是说由 xinetd 管理的所有服务都是支持 tcp_wrapers 的。 使用 ldd 和 strings 工具来查询,只要满足其中一种方式就可 以支持 tcp_wrappers。
当然,也有很多服务是不支持 tcp_wrappers 的, 比如说 named,httpd 等等。 这也是为什么还要有 iptables 防火墙,它会更加的强大的。 控制顺序 现在我们来了解一下 tcp_wrappers 的访问控制判断顺序, 首先查看/etc/hosts.allow,如果匹配到一个条目,将不在读取 下面的。 如 果 在 /etc/hosts.allow 没 有 匹 配 到 条 目 , 则 读 取 /etc/hosts.deny,如果匹配,则拒绝,如果不匹配,则默认允 许所有 服务程序列表字段可以表示为以下形式: ALL 代表所有网络 1 单个服务名称,例如“vsftpd”代表 vsftpd 服务程序 2 多个服务程序组成的列表,例如:vsftpd,sshd 客户机地址列表字段可以表示为一下形式: 1.ALL 代表所有的客户端地址 2.LOCAL 代表本机地址 3.单个 IP 地址,例如“192.168.0.254” 4.网络段地址,例如“192.168.0.0/255.255.255.0” 5.以“.”号开始的域名,例如“.benet.com”匹配 benet.com 域中的所有主机 6.以 号结束的网络号, “192.168.4.” “.” 例如 匹配 192.168.4.0/24 内的所有地址 7. 允 许 使 用 通 配 符 “ * ” ? ” 例 如 192.168.8.2* 匹 配 以 “ 192.168.8.2 开 头 的 所 有 ip 地 址 ( 例 如 192.168.8.2 、 192.168.8.20、192.168.8.200) 。例如“192.168.8.2?”匹配 192.168.8.20-192.168.8.29 这个网段,但是这两种方法都不要 在以点号“.”开始或结束的模式中使用 8.以上多 个客户 端也可 以组成 列表, 例如“192.168.1., 172.17.17.,.benet.com” 9 另为也可以 sshd: 192.168.0.0/255.255.255.0 EXCEPT 192.168.0.10 (在 192.168.0.0 这个网络中排除 192.168.0.10 这 台主机)