web-dev-qa-db-ja.com

iptables reject-with icmp-Host-prohibited

OpenResty(nginx fork)をインストールして実行すると、新しいKVM/VPSが最近boughします。サーバーがテストポートでの着信接続を受け入れていません8080許可されたルールにポート8080を追加することで問題を解決し、

iptables -I INPUT  -p tcp --dport 8080 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -I OUTPUT -p tcp --sport 8080 -m conntrack --ctstate ESTABLISHED     -j ACCEPT

vPSに付属するデフォルトのルールを理解できません

 pkts bytes   target           prot opt in     out     source               destination                              
 361K 1192M ACCEPT             all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    1    60     ACCEPT         all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
 464K   70M INPUT_direct       all  --  *      *       0.0.0.0/0            0.0.0.0/0           
 464K   70M INPUT_ZONES_SOURCE all  --  *      *       0.0.0.0/0            0.0.0.0/0           
 464K   70M INPUT_ZONES        all  --  *      *       0.0.0.0/0            0.0.0.0/0           
 1324 61332 DROP               all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
 458K   70M REJECT             all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-Host-prohibited

特に最後の行は、すべての着信トラフィックをブロックすることです。

2
Salem F

iptablesルールはトップダウンで評価されます。パケットがルールの1つに一致する場合、ルールのACTIONが定義することを行います。通常、これはREJECTACCEPTDROPREDIRECT(別のポートへ)またはCHAINにジャンプします。

最後のルールは、前のルールがトリガーされていないときにトリガーされる一般的なルールにすぎません。基本的には「デフォルトでは、前のルールに一致しないものはすべて拒否する」です。これは標準であり、ファイアウォールを実装する際の良い習慣です。

icmp-Host-prohibitedは、パケットが拒否される拒否メッセージです。つまり、サーバーはパケットがそのメッセージで拒否されたことを送信者に通知します。

強化を強化するために、メッセージをDROPではなくREJECTにすることをお勧めします。後者の場合、攻撃者に「このホストが存在し、パケットを拒否しました」などの情報が表示される可能性があるためです。一方、DROPはそのような情報を提供しません。

2
nKn