iptables はカスタムチェーンでは REJECT を無視しますが、メインチェーンでは機能します。

iptables はカスタムチェーンでは REJECT を無視しますが、メインチェーンでは機能します。

SMTP サーバー用に fail2ban でサーバーを構成しました。現在、fail2ban は IP を正しく禁止し、fail2ban の iptables チェーンでそれらを確認することができます。ただし、カーネルは iptables fail2ban チェーンの REJECT ルールを無視しているようです。代わりに、同じルールを INPUT チェーンに追加すると、機能します。

出力は次のようiptables -L -n -vになります。

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  207  8339 f2b-postfix  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 80,443,25,587,110,995,143,993,4190
   17  2172 REJECT     all  --  *      *       141.98.11.68         0.0.0.0/0            reject-with icmp-port-unreachable

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

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

Chain f2b-postfix (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REJECT     all  --  *      *       141.98.11.68         0.0.0.0/0            reject-with icmp-port-unreachable
  207  8339 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

ご覧のとおり、チェーンREJECT内のルールf2b-postfixは無視され (パケット数 0)、すべてのパケットがルールに含まれますRETURN。ただし、チェーン内に同じREJECTルールを追加するとINPUT、ルールが機能し、パケットが拒否されます。

念のため、生の iptables 設定も確認しました。

-A INPUT -s 141.98.11.68/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-postfix -s 141.98.11.68/32 -j REJECT --reject-with icmp-port-unreachable

しかし、2つのルールは同じです。

何か案が?

関連情報