iptablesはDROPすべきか、REJECTか。tcp-resetという手も – nomeu.net
iptablesは DROP , REJECT or –reject-with tcp-rest – Note to Self
REJECT –reject-with tcp-reset
【AIによる回答】
REJECT --reject-with tcp-resetは、iptables で通信を拒否する際に、相手に対して「TCP RST(リセット)パケット」を返信するためのオプションです。1. 主な動作と特徴
- 即時切断: 通常の
REJECT(デフォルトは ICMP port-unreachable)やDROP(応答なし)とは異なり、接続元に対して「このポートは閉じている」という明確な信号(RSTパケット)を送ります 0.4.12。- Connection Refused: クライアント側では「Connection refused」というエラーが即座に表示され、タイムアウトを待たずに済みます 0.4.20。
- 隠蔽性:
DROPが「フィルタリングされている(Firewallがある)」ことを示唆するのに対し、tcp-resetは「サービスが動いていないポート」と同じ振る舞いをするため、Firewallの存在を特定されにくくする効果があります 0.4.8。2. 設定例このオプションは TCPプロトコルに対してのみ 使用可能です 0.4.2。bash# 22番ポート(SSH)への接続をTCPリセットで拒否する iptables -A INPUT -p tcp --dport 22 -j REJECT --reject-with tcp-resetコードは注意してご使用ください。
3. 使い分けのポイント
ターゲット 相手への応答 メリット デメリット DROP なし(黙殺) 攻撃者のスキャン時間を浪費させる 正規ユーザーもタイムアウトまで待たされる REJECT (ICMP) ICMPエラー ネットワーク的に「拒否」が明確 Firewallの存在が露呈しやすい tcp-reset TCP RST ポートが閉じているように見せかけられる TCP以外の通信には使えない 特定のポート(Identなど)へのスキャンを静かに、かつ速やかに処理したい場合に非常に有効な設定です 0.4.25。
