在 RHEL 7 服务器上,/etc/hosts.allow
拥有多个具有完全访问权限的 IP 地址。防火墙(用 确认firewall-cmd
),没有定义特定的源,默认区域允许某些端口和服务。哪个优先?或者举一个具体的例子,如果 中列出的 IP 地址/etc/hosts.allow
尝试使用防火墙规则不允许的端口/服务连接到服务器,它可以连接吗?
答案1
答案是不。
TCP Wrapper 系统和防火墙设置之间都不具有优先权;相反,它们作为层工作。
/etc/hosts.allow
和/etc/hosts.deny
是 TCP Wrapper 系统使用的主机访问控制文件。每个文件包含零个或多个守护进程:客户端线。考虑第一条匹配线。
当出现以下情况时,将授予访问权限:守护进程:客户端对匹配 中的一个条目/etc/hosts.allow
。否则,当出现以下情况时,访问将被拒绝守护进程:客户端对匹配 中的一个条目/etc/hosts.deny
。否则,将授予访问权限。
现在,如果某个服务已通过 TCP 包装器获得访问权限,但不在防火墙上(并且防火墙默认具有“拒绝所有”规则,这是理应如此),则该服务将无法连接到该服务机器。
我现在还没有看到太多配置的 TCP 包装器——您可以避免这个系统,它仅通过 libwrap 提供基本过滤,并且仅用于firewalld
允许访问服务。它更易于配置和管理,而且功能更强大。