当前位置: 首页 > 科技观察

Linux下如何使用TCPwrappers增强网络服务安全性

时间:2023-03-16 17:34:13 科技观察

本文将介绍什么是TCPwrappers(TCPwrappers),以及如何在Linux服务器上配置它们来限制网络服务权限。在我们开始之前,我们必须澄清TCP包装器并不能消除对正确配置的防火墙的需要。在这方面,您可以将此工具视为基于主机的访问控制列表,而不是系统的总体安全措施。通过使用防火墙和TCP包装器,而不是偏爱其中之一,您将确保您的服务不会出现单点故障。正确理解hosts.allow和hosts.deny文件当网络请求到达您的主机时,TCP包装器将使用hosts.allow和hosts.deny(按此顺序)来确定是否应允许客户端使用提供的服务..默认情况下,这些文件为空、被注释掉或根本不存在。因此,任何请求都将被允许通过TCP过滤器,并且您的系统将依赖防火墙来提供所有保护。因为那不是我们想要的。由于我们一开始介绍的原因,请确保以下两个文件存在:#ls-l/etc/hosts.allow/etc/hosts.deny这两个文件的写法规则是一样的::[:::...]文件中,1.services指的是当前规则对应的服务,是逗号分隔的列表。2.clients指规则影响的主机名或IP地址,以逗号分隔。以下通配符也是可以接受的:1)。ALL表示所有事物,适用于客户和服务。2).LOCAL表示匹配官方域名中没有完全限定主机名(FQDN)的机器,如localhost。3).KNOWN表示主机名、主机地址或用户是已知的(即可以通过DNS或其他服务解析)。4).UNKNOWN与KNOWN相反。5).PARANOID如果反向DNS查找返回不同的地址,则连接断开(先根据IP解析主机名,再根据主机名获取IP地址)。3.***,以冒号分隔的动作列表,表示触发规则时将采取什么动作。您应该记住,/etc/hosts.allow文件中允许访问服务的规则优先于/etc/hosts.deny中的规则。此外,如果两个规则适用于同一服务,则只会考虑第一个规则。遗憾的是,并非所有网络服务都支持TCP过滤器。要查看给定服务是否支持它们,请执行以下命令:#ldd/path/to/binary|greplibwrap,然后它可以支持TCP过滤器,例如sshd和vsftpd,输出如下。FindoutwhichservicessupportedbyTCPfiltersHowtouseTCPfilterstorestrictservicepermissionskeytoaddanewrow。要使SSH和FTP服务仅允许本地主机和192.168.0.102并拒绝所有其他用户,请将以下内容添加到/etc/hosts.deny:sshd,vsftpd:ALLALL:ALL并将以下内容添加到/etc/hosts.allow:sshd,vsftpd:192.168.0.102,LOCAL这些更改会立即生效,不需要重新启动。在下图中,您可以看到在最后一行中删除LOCAL后,本地主机将无法使用FTP服务器。添加通配符后,该服务再次可用。确认FTP权限。为了让包含example.com的主机名可以使用所有服务,在hosts.allow中加入如下一行:ALL:.example.com并且为了禁止10.0.1.0/24机器访问vsftpd服务,在hosts.allow文件中加入如下行:vsftpd:10.0.1。在***的两个示例中,请注意客户端列表中每行开头和结尾的点。这用于表示“名称或IP中包含该字符串的所有主机或客户端”本文对您有用吗?有什么评价或者疑问吗?欢迎在下方留言交流。