TCP Wrappers机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。对应的两个策略文件为/etc/hosts.allow/etc/hosts.deny,分别用来设置允许和拒绝的策略。

两个策略文件的作用相反,但配置记录的格式一样:

<服务程序列表>:<客户端地址列表>
服务程序列表和客户端地址列表之间以冒号分隔,在每个列表内的多个项之间以逗号分隔。

1、服务程序列表:

  • ALL:代表所有服务。
  • 单个服务程序:如“dhcpd”
  • 多个服务程序组成的列表:如“named,sshd”。

2、客户端地址列表:

  • ALL:代表任何客户端地址。
  • LOCAL:代表本机地址。
  • 单个IP地址:如“192.168.1.1”
  • 网络段地址:如“192.168.1.0/255.255.255.0”
  • Linux 中 TCP Wrappers 访问控制_第1张图片

关于TCP Wrappers机制的访问策略如下:首先检查 /etc/hosts.allow 文件,如果找到相匹配的策略,则允许访问;否则继续查找/etc/hosts.deny文件,如果找到相匹配的策略,则拒绝访问,如果这两个文件中都没有找到相匹配的策略,则允许访问,这点倒是和网络设备上的ACL策略不同。

举个栗子:

现在只希望从IP地址为61.63.65.67的主机或者位于192.168.2.0/24网段的主机访问sshd服务,其他地址被拒绝,可以执行以下操作:

[root@localhost ~]# vim /etc/hosts.allow 
sshd:61.63.65.67,192.168.2.
[root@localhost ~]# vim /etc/hosts.deny 
sshd:ALL