iptables/firewall-cmd DROP 规则设置之前设置的最后一个块 ip 规则

iptables/firewall-cmd DROP 规则设置之前设置的最后一个块 ip 规则

以下是我拥有的 iptables 规则列表:

# firewall-cmd --direct --get-all-rules
ipv4 filter INPUT 0 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
...
...
ipv4 filter INPUT 1 -d 127.0.0.1 -p tcp -m tcp --dport 4118 -j ACCEPT
ipv4 filter INPUT 2 -i lo -j DROP
ipv4 filter FORWARD 0 -j DROP
ipv4 filter OUTPUT 0 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
...
...
ipv4 filter OUTPUT 1 -d 127.0.0.1 -p tcp -m tcp --dport 4118 -j ACCEPT
ipv4 filter OUTPUT 2 -o lo -j DROP

当我启动 dsa 命令时,我收到以下错误消息:

dsa_control
couldn't connect to 127.0.0.1:4118 (-1: Socket reset)

ss -ntl给出:

State            Recv-Q           Send-Q                      Local Address:Port                       Peer Address:Port
LISTEN           0                128                               0.0.0.0:111                             0.0.0.0:*
LISTEN           0                128                               0.0.0.0:22                              0.0.0.0:*
LISTEN           0                128                                  [::]:111                                [::]:*
LISTEN           0                5                                       *:4118                                  *:*
LISTEN           0                128                                  [::]:22                                 [::]:*

当我删除 DROP 输入和输出规则时,一切正常。知道这些 DROP 规则如何仍然阻止 ip 127.0.0.1 吗?

答案1

确实缺少一条规则。除了 --sport 之外,我还必须添加选项 --dport 才能根据需要打开端口。

相关内容