Tcp_Wrappers是一个用来分析TCP/IP封包的软件,类似的IP封包软件还有iptables,linux默认都安装了此软件,作为一个安全的系统,Linux本身有两层安全防火墙,通过IP过滤机制的iptables实现第一层防护,iptables防火墙通过直观地监视系统的运行状况,阻挡网络中的一些恶意攻击,保护整个系统正常运行,免遭攻击和破坏。如果通过了第一层防护,那么下一层防护就是tcp_wrappers了,通过Tcp_Wrappers可以实现对系统中提供的某些服务的开放与关闭、允许和禁止,从而更有效地保证系统安全运行。
Tcp_Wrappers的使用很简单,仅仅两个配置文件:/etc/hosts.allow和/etc/hosts.deny
1. 查看系统是否安装了Tcp_Wrappers
[[email protected] ~]#rpm -q tcp_wrappers
tcp_wrappers-7.6-40.7.el5
或者
[[email protected] ~]#rpm -qa | grep tcp
如果有上面的类似输出,表示系统已经安装了tcp_wrappers模块。如果没有显示,可能是没有安装,可以从linux系统安装盘找到对应RPM包进行安装。
2. tcp_wrappers设定的规则
tcp_wrappers防火墙的实现是通过/etc/hosts.allow和/etc/hosts.deny两个文件来完成的。
工作原理:
(1)当有请求从远程到达本机的时候
首先检查/etc/hosts.allow
如有匹配的,就默认允许访问,跳过 /etc/hosts.deny这个文件
没有匹配的,就去匹配/etc/hosts.deny 文件,如果有匹配的,那么就拒绝这个访问
(2)如果在这两个文件中,都没有匹配到,默认是允许访问的
文件格式是:
服务列表 : 主机列表 : 选项
1.服务列表是要支持的服务的名,例如:telnet、vsftpd等等。
2.主机列表设定受控制的机器。这可以是机器名、主机IP,也可以使用通配符(*或?)或ALL及EXCEPT。
3.选项是我们所要控制的动作。在服务与client都符合之后,那么真正所要进行的动作,就是选项在作。
1)ALLOW 接受连接请求。2)DENY 拒绝连接请求。
举例:只允许118.126.3.222中vsftp登录
(这里要注意的是关于vsftp的配置文件vsftpd.conf中的
tcp_wrappers=YES
这样vsftp才允许通过tcp_wrappers的机制对vsftp服务器进行访问控制。)
输入vim /etc/hosts.allow
编辑 vsftpd:118.126.3.222:allow
表示允许118.126.3.222vsftp连接
输入vim /etc/hosts.deny
编辑 vsftpd:all
表示拒绝所有vsftp连接
一般情况下,linux会首先判断/etc/hosts.allow这个文件,如果远程登录的计算机满足文件/etc/hosts.allow设定的话,就不会去使用/etc/hosts.deny文件了,相反,如果不满足hosts.allow文件设定的规则的话,就会去使用hosts.deny文件了,如果满足hosts.deny的规则,此主机就被限制为不可访问linux服务器,如果也不满足hosts.deny的设定,此主机默认是可以访问 linux服务器的.
TCP Wrappers 封锁IP地址的方法