iptables 中最后一条 DROP 规则有问题

iptables 中最后一条 DROP 规则有问题

假设我想要打开四个端口来接收任何传入的数据包,因此我制定了以下规则集:

#> iptables -L -v
Chain INPUT (policy ACCEPT 20 packets, 1190 bytes)
 pkts bytes target     prot opt in     out     source               destination
 1041  103K ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:111
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:222
  208 12056 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:333
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:443

(前向链和输出链为空)

现在假设有一个 SSH 服务器在端口 111 上运行,为了连接到这台机器,我需要

 ssh [email protected] -p 111

然后我登录并且一切正常。

但其他端口也保持打开状态,因为默认策略是 ACCEPT,而我还没有添加 DROP 规则。现在我想添加它并输入

#> iptables -A INPUT -j DROP

这是第五条规则。

现在我想再次连接到我打开的 SSH 端口。我收到了类似的响应,username's password:但它来了比如 20 秒后,而不是几乎立即没有第五条规则。

所以我删除了这条规则

#> iptables -D INPUT 5

并且我再次能够毫无延迟地连接到我的 SSH。

为什么是这样?

我屏蔽了哪些不该屏蔽的东西?

附言:有一个 Web 服务器在端口 443 上运行,当我尝试从浏览器连接时,页面会无限期加载,但服务器处于活动状态。

答案1

您可能希望向 DNS 服务器开放端口 53。SSH 会对传入的 IP 地址进行反向查找——它将要如果没有反向解析,则可以连接,但会引入延迟。

相关内容