Linux 上的 ports.deny 格式和示例
hosts.deny
文件可用于 Linux 系统,拒绝来自一个或多个 IP 地址、主机名或域的连接尝试。它可以与您系统上的任何 TCP 封装服务一起使用。 hosts.deny
文件与 hosts.allow
结合使用来确定连接尝试是否被接受或拒绝。
hosts.deny
文件只是一个语法相当简单的纯文本配置文件。在本教程中,您将看到 hosts.deny
文件的示例,我们将向您展示如何针对不同的可能情况设置文件格式。
在本教程中您将学习:
hosts.deny
文件有什么作用?如何编辑和格式化
hosts.deny
文件
Linux 上的 ports.deny 格式和示例
hosts.deny
文件包含拒绝主机或网络访问文件内指定服务的规则列表。格式是每行列出一个规则。下面,我们将展示您可以在文件中使用的规则的各种示例。
注意
尝试连接时,将查阅hosts.allow
文件以确定是否允许连接。如果允许,则随后查阅hosts.deny
文件,以查看是否有明确拒绝连接的规则。
通常的语法如下。每个值均由冒号
:
分隔。service : host/network
您还可以提供
选项
,但这并不常见。我们将在下面介绍一些其他的利基选择。如有必要,可以添加更多选项,每个选项之间用另一个冒号分隔。service : host/network [: <option>: <option>: ...]
以下行将拒绝所有到
sshd
服务的流量。ALL
用作通配符。sshd : ALL
如前所述,
hosts.allow
文件内的规则将在此规则之前触发。因此,ALL
规则可以用作尚未明确接受的连接的包罗万象的规则。此行将拒绝来自
10.
网络上所有主机的连接。来自所有其他主机的连接可以由hosts.allow
文件接受,或者如果没有规则适用于其他主机,则将允许它们的连接通过。sshd : 10.
拒绝来自特定 IPv4 和 IPv6 地址的连接:
sshd : 10.10.136.241 sshd : [2a02:2149:88f1:4c00:9991:9daa:b580:aee1]
请注意,IPv6 地址必须括在
[ ]
括号内。您还可以指定主机名来拒绝来自的连接,而不是使用 IP。
sshd : some.host
拒绝来自所有使用 .linuxconfig.org 域名的主机的连接。
sshd : .linuxconfig.org
您还可以对服务和主机/网络字段使用通配符。这将拒绝与任何服务的所有连接。仅当您在
hosts.allow
中已有规则以允许来自您需要接收通信的所有主机或网络的连接时,才应使用此选项。ALL : ALL
要仅拒绝本地连接,可以使用
LOCAL
通配符。sshd : LOCAL
EXCEPT
运算符可用于在其他所有包罗万象的规则中创建例外。例如,此规则将拒绝来自 .linuxconfig.org 域名的所有连接(一台主机除外)。sshd : .linuxconfig.org EXCEPT terminal.linuxconfig.org
结束语
在本教程中,我们了解了如何在 Linux 系统上使用各种过滤规则来格式化 hosts.deny
。这可能是过滤 TCP 包装服务流量的有效方法,尽管随着 Linux 内核中内置的强大 iptables/nftables 防火墙的兴起,它已经不再常用。