TCP Wrappers

定义:将TCP程序包裹起来,代为监听TCP服务程序的端口,增加了一个安全监测的过程。外来的连接请求必须先通过这层安全监测。获得许可后才能访问正真的服务程序
大多数linux发行版,TCP Wrappers 是默认提供的功能。

保护原理: tcp wrap 保护原理.png

TCP Wrappers保护机制实现的两种方式:

1、直接使用tcpd程序对其他服务进行保护,不需要运行tcpd程序

2、由其他网络服务程序调用libwrap.so.* 链接库。不需要运行tcpd程序。因此此方式的使用更加广泛,也更加有效率

*使用ldd命令可以查看程序的libwrap.so. 链接库,跟上完整的命令路径**

ldd $(which ssh vsftpd) ;查看这些命令的链接库文件


TCP Wrappers 的访问策略

TCP Wrappers 机制的保护对象为各种网络服务程序,针对访问服务的客户端·地址进行访问控制。

对应的两个策略文件为/etc/host.allow 和 /etc/host.deny ,分别用来设置允许和拒绝的策略。

格式:

<服务程序列表>:<客户端地址列表>

a、服务程序列表

ALL:代表所有的服务

单个服务程序:例如 vsftpd

多个服务程曦组成的列表: 例如 vsftpd,sshd

b、客户端地址列表

ALL:代表任何客户端地址

允许使用通配符 "*"、"?" ,前者代表任意程度的字符,后者仅代表一个字符

网段地址,例如 192.168.80. 或者192.168.80.0/255.255.255.0

区域地址,例如 ".benet.com" 匹配 benet.com 域中的所有主机

TCP Wrappers 机制的基本原则

(先看allow策略,再看deny策略。最后默认都放行)

首先检查 /etc/hosts.allow 文件,如果找到相匹配的策略。则允许访问

否则继续查找/etc/hosts.deny文件。如果找到相匹配的策略,则拒绝访问;

如果上述两个文件都找不到相匹配的策略,则允许访问

“允许所有,拒绝个别”

只需要在/etc/hosts.deny 文件中添加相应的拒绝策略

“允许个别,拒绝所有”

除了在/etc/hosts.allow 中添加允许策略之外

实验:使用TCP Wrappers策略

可以限制网段地址和区域地址
环境:只能限制使用TCP的协议
TCP Wrappers 机制的基本原则

(优先级:先看allow策略,再看deny策略。最后默认都放行)

首先检查 /etc/hosts.allow 文件,如果找到相匹配的策略。则允许访问

否则继续查找/etc/hosts.deny文件。如果找到相匹配的策略,则拒绝访问;

如果上述两个文件都找不到相匹配的策略,则允许访问

1、使用allow允许
110.png
111.png
2、使用deny拒绝
12.png
3、设置区域地址
13.png
补充:
1、如果是shhd:ALL (则表示是允许(拒绝)所有shh的连接)
2、如果是ALL:ALL或者ALL:192.168.206.0/255.255.255.0 ;则表示允许(拒绝)所有TCP的服务,或者TCP的所有服务只允许(拒绝)192.168.206.0 网段的。
3、设置白名单的方式:我们先去allow设置允许通过的ip,然后去deny配置文件选择"服务:ALL"表示禁用所有的服务即可。
4、设置黑名单的方式。我们不用去设置allow配置文件。我们只需要去deny配置文件设置对应的"服务: ip/域名"即可