TCP WrappersIP层存取控制过滤)为由inetd生成的服务提供了增强的安全性。TCP Wrappers软件扩展了inetd为受其控制的服务程序实施控制的能力。通过使用这种方法能够提供日志支持、返回消息给联入的连接、使得服务程序只接受内部连接等等。尽管防火墙也能够完成其中的某些功能,但这不仅增加了一层额外的保护,也提供了防火墙无法提供的功能。然而,由TCP Wrappers提供的一些额外的安全功能,不应被视为好的防火墙的替代品。TCP Wrappers应结合防火墙或其他安全加强设施一并使用。

TCP Wrappers配置

TCP Wrappers使用访问控制列表来防止欺骗。ACL/etc/hosts.allow/etc/hosts.deny文件中的系统列表。在配置为验证主机名到IP地址映射,以及阻止使用IP源路由的软件包时,TCP Wrappers提供某些防止IP欺骗的保护。

确认服务是否支持TCP Wrappers

Linux系统TCP Wrappers并不是所有的服务都支持(目前支持TCP Wrappers的服务有sendmailpop3imapsshdtelnet等等),可以使用ldd命令查看指定服务是否支持TCP Wrappersldd用于查看二进制文件所需动态链接库,如果某服务中含有“libwrap.so”则表示该服务支持TCP Wrappers,如下图所示。

 

 

TCP Wrappers规则定义

TCP Wrappers中通过/etc/hosts.allow/etc/hosts.deny配置规则允许或阻止指定客户端对指定服务的访问,修改保存此文件后配置无须重新启动服务立即生效。TCP Wrappers规则生效原则如下。

1.         /etc/hosts.allow/etc/hosts.deny无匹配记录访问可通过。

2.         /etc/hosts.allow有匹配记录访问可通过。

3.         /etc/hosts.allow/etc/hosts.deny都匹配时访问可通过。

/etc/hosts.allow /etc/hosts.deny文件定义规则的方法都采用以下格式。

服务:客户端[:选项]

1.         服务:指定TCP Wrappers需要控制的服务名称。如果是System V服务直接指定服务名称(比如sshd等等),如果是超级服务必须指定超级服务的启动脚本名称(可在对应超级服务的配置文件中找到。比如需要使用TCP Wrappers控制telnet时,/etc/xinetd.d/telnet文件如下图所示内容中所标识的就是telnet的启动脚本名称)。

 

TCP Wrappers配置(上)。_第1张图片 

 

2.         客户端:指定TCP Wrappers需要控制哪些客户端对指定服务的访问,其指定客户端方法见下表

客户端指定方法

示例

满足示例的客户端

单一主机

192.168.0.30

IP地址为192.168.0.30

指定网段

192.168.0.

IP地址包括在192.168.0.0/24的网段。

指定网段

192.168.0.0/255.255.255.0

IP地址包括在192.168.0.0/24的网段。

指定DNS后缀

.example.com

所有DNS后缀为.example.com的主机

指定FQDN

client1.example.com

FQDNclient1.example.com的主机

指定所有客户端

ALL

 

2.         选项:包括allowdeny以及一些其他参数。allowdeny分别用于允许和阻止指定客户端对指定服务的访问。allowdeny都可以在/etc/hosts.allow/etc/hosts.deny定义动作时使用,为了避免使用不必要的错误,推荐不使用/etc/hosts.deny文件配置,如需要阻止操作时,可直接在/etc/hosts.allow中使用deny动作。