我接管了一些机器的管理,但对它们的配置没有任何了解。
有些使用 iptables。有些正在使用 tcp_wrappers (即/etc/hosts.allow
)。有些人同时使用两者。它们的配置都不一致。
在许多情况下,iptables 和 tcp_wrappers 似乎有多余的规则。在一种情况下,它们是冲突的。这是一场维护噩梦,我倾向于转而只使用一个系统。
在这样做之前,我想问一下,在某些情况下是否适合在同一台机器上使用两者?
答案1
tcp_wrappers
对于任何认真对待安全性的人来说,曾经在 90 年代风靡一时,并且在处理安全性时,强烈鼓励大多数 OSI 第 7 层的解决方案;世界在不断发展,如今我们在不同层面和不同技术上拥有更多的解决方案。
在设计解决方案时,并不存在完全错误或完全正确的方法。
根据软件或用例,通常当您在应用程序级别处理它时,您可能会简化其他配置。
此外,现在您可能会在公司防火墙或虚拟化方面定义所有防火墙规则,并且您可能不希望iptables
在所有服务器中都有规则。
应该注意的是,也可能编译有问题的二进制文件/程序没有libwrap 例如不支持tcp_wrappers
,通常你最好先仔细检查一下。
正如之前所说,你必须考虑几个角度来决定什么是最好的方法为你。
答案2
这hosts_access(5)
手册页给出了一些关于为什么您可能想要使用允许/拒绝条目而不是 iptables 的可能性:
- 用户匹配(如果客户端支持):我不知道有任何现有主机实现RFC 931或不再是朋友了,因为这似乎是一个巨大的安全漏洞!
- 诱杀装置/程序调用:如果您正在实施比登录规则更复杂的事情。
- 每个程序的规则:如果您基于进程路径而不是网络端口进行过滤。如果您需要此功能但没有该功能,这可能会有所帮助
owner
模块可用在iptables
. - Keepalive/linger 选项(来自
hosts_options(5)
): 如果程序不执行此操作并且您的初始化系统也不执行此操作(?)
我从来没有使用过hosts.allow
orhosts.deny
因为iptables
规则可以满足我需要的一切,但是对于边缘情况场景,您可能需要 (2) 甚至 (4) 的一些功能。如果这些文件没有做任何疯狂的事情,我想您可以用等效的iptables
规则替换它们:它当然应该简化管理!