Linux防火墙学习笔记 2

  本节主要是说TCP Wrappers。TCP Wrappers是Linux两大防护措施的其中之一,这层保护通过定义哪些主机允许或者不允许连接到网络服务上来实现。TCP wrappers为多种不同的服务提供访问把关。它是一个基于主机的网络访问控制的程序,用于过滤对类Unix系统的网络访问。

当一个系统或者主机在公开网络中充当服务器时,这个系统就可能成为被攻击的目标,对网络服务进行访问控制就显得很重要,而TCP Wrapper被设计为一个介于外来服务请求和服务回应的中间处理。它的基本过程是这样的:当服务器或者主机接收到一个外来服务请求的时候,先由TCP Wrapper来对请求进行分析处理,TCP Wrapper会根据请求所需要的服务和对这个服务所设定的规则来判断请求方是否有权限,如果有,TCP Wrapper会把这个请求按照配置文件所设定的规则转交给相应的守护进程去处理,同时记录这个请求动作。

 TCP Wrappers虽然能对TCP协议的报文做过滤操作但是并不是所有的TCP协议报文TCP Wrappers都可以过滤掉。只有该服务链接到TCP Wrappers的函数库才能使用TCP Wrappers进行报文过滤。TCP Wrappers的功能主要来自于libwrap.a这个静态库,它是一个服务库。像xinetd、sshd和portmap等许多服务编译时都依赖于libwrap.so这个动态链接库,其他的网络服务甚至你自己编写的服务都可以加上这个编译选项来提供TCP Wrapper的功能。

我们可以通过: ldd /path/service_name | grep libwrap命令来确定我们要过滤的服务是否链接到了libwrap这个函数库中

TCP Wrappers的使用:

要决定一个客户是否被允许连接一项服务,TCP Wrappers会参考以下两个文件:/etc/host.allow和/etc/hosts.deny

当一个TCP Wrappers接收到一个客户请求时,它会运行以下几个步骤:

①检查/etc/host.allow。 TCP会绕过服务循序的解释/etc/host.allow文件并应用第一个为这个服务所指定的规则,如果找到了一个匹配的规则,则允许连接,如果找不到就进行下一个步骤。

②检查/etc/hosts.deny。TCP会绕过服务循序的解释/etc/host.deny文件,如果找到一个匹配的原则则拒绝这个连接;如果找不到匹配的规则,则允许连接到这个服务。

③若是没有匹配的规则便进入服务。

在使用TCP Wrappers保护网络服务时应该考虑一下几个要点:

①host.allow或host.deny的配置改变会立即生效

②两个规则文件是有读取顺序的,host.allow中的规则会先被读取应用,host.deny中的规则后被读取。如果访问一项服务在host.allow中设置允许,那么在host.deny中同一项服务的拒绝访问设置则不会生效。

③规则文件内的读取也是有顺序的,每个文件中的各项规则是由上到下被读取的,第一个匹配的规则生效。因此,规则的排列顺序也很重要。如图为host.allow的配置文件

每条规则都使用以下基本格式来对网络服务的访问进行控制:服务程序列表:客户机地址列表 【:执行的动作】

当列表中存在多个服务或者主机的时候用逗号分隔。

例如,拒绝10.3.1.1主机向我主机ssh守护进程发出链接,那么我们就把这条命令写入hosts.deny这个文件夹中:sshd:10.3.1.1

猜你喜欢

转载自blog.csdn.net/weixin_40602516/article/details/81098230