iptables - 尽管有先前的规则,但仍会丢弃所有连接

iptables - 尽管有先前的规则,但仍会丢弃所有连接

我正在尝试允许来自本地网络的 ssh 连接并删除同一端口(22)上的所有其他连接尝试,以下是我在 iptables 中的当前规则:

-A INPUT -s 192.168.0.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 127.0.0.0/8 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j DROP

我在其他地方读过的所有文章似乎都说添加这些规则将允许本地 ssh 访问并放弃端口 22 上的所有其他连接尝试,但是最后一条规则也将始终导致连接断开,即使是从我的本地网络。

如果我的配置中只包含前两个规则,我可以通过 SSH 连接到主机,没有任何问题。但当我添加最后一条规则时,本地网络和其他任何地方的连接都会停止工作。

-A INPUT -p tcp -m tcp --dport 22 -j DROP

似乎 iptables 规则应该按从上到下的顺序读取,因此如果连接不满足上述任何规则,它最终将在最后一条规则中被丢弃,但这些规则似乎并非如此。任何关于如何修复此问题的建议都将不胜感激。

iptables 输出:


Chain INPUT (policy ACCEPT 852537 packets, 927902121 bytes)
    pkts      bytes target     prot opt in     out     source               destination
       0        0 ACCEPT     tcp  --  *      *       192.168.0.0/24       0.0.0.0/0            tcp dpt:22
       0        0 ACCEPT     tcp  --  *      *       127.0.0.0/8          0.0.0.0/0            tcp dpt:22
       0        0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
     104     6384 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
     856    68020 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 29118 packets, 22261801 bytes)
    pkts      bytes target     prot opt in     out     source               destination
     856    68020 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0

相关内容