如何在 /etc/hosts.allow 中允许一系列 IP,但在 /etc/hosts.deny 中拒绝该范围内的单个 IP?

如何在 /etc/hosts.allow 中允许一系列 IP,但在 /etc/hosts.deny 中拒绝该范围内的单个 IP?

我的/etc/hosts.allow文件包含:

sshd: 225.73. , 164.41.

我的/etc/hosts.deny文件包含:

sshd: 225.73.24.25 , 164.41.45.63

我面临的问题是,如果我尝试从 SSH225.73.24.25164.41.45.63服务器允许我通过 SSH 登录。

我想要的场景是,除了 IP 为或 的主机之外,所有在225.73. 或范围内的 IP 都可以进入。164.41.225.73.24.25164.41.45.63

如果有人能帮助我,我将非常感激。

答案1

hosts.allow您可以像这样使用 EXCEPT 运算符:

sshd: 225.73. , 164.41. EXCEPT 225.73.24.25 , 164.41.45.63

参见 man hosts.allow:

EXCEPT 预期用途的形式为:list_1 EXCEPT list_2;此构造与 list_1 匹配的任何内容匹配,除非它与 list_2 匹配。

答案2

225.73. 或 164.41. 允许进入,但 IP 为 225.73.24.25 或 164.41.45.63 的主机除外。所有这些 IP 仍将能够登录更改过滤器 sshd:225.73.24.25 - 164.41.45.63、192.168.1.1、192.168.100.1 - 192.168.100.255

相关内容