iptablesはLinuxサーバーのセキュリティを守る重要な仕組みですが、 設定を一歩間違えると即障害・即インシデントにつながります。
本記事では、現場で本当によく見る危険設定を、
- なぜ危険なのか
- 何が起きるのか
- どう直すべきか
という観点で解説します。
目次
危険設定① INPUTを全許可している
よくある設定
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
なぜ危険か
- 全ポートが外部公開状態
- 脆弱サービスが即攻撃対象
実際に起きること
- SSHブルートフォース
- 不要ポート経由の侵入
正しい考え方
iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
危険設定② ルール順序を理解していない
ありがちなミス
iptables -A INPUT -j DROP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
なぜ危険か
iptablesは上から順に評価されます。
この例では80番ポートのルールに到達しません。
正しい順序
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -j DROP
危険設定③ ESTABLISHED,RELATEDを許可していない
症状
- 通信が途中で切れる
- 外向き通信が不安定
原因
戻り通信が遮断されるためです。
必須ルール
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
これがないiptablesはほぼ確実に不具合を起こします。
危険設定④ SSHを自分で遮断してしまう
事故例
iptables -A INPUT -p tcp --dport 22 -j DROP
起きること
- 即座にSSH切断
- リモート復旧不能
回避策
- console / iLO / シリアル確保
- atコマンドでロールバック
at now + 5 minutes
iptables -F
危険設定⑤ ICMPを完全遮断
よくある設定
iptables -A INPUT -p icmp -j DROP
なぜ危険か
- MTU問題が検知できない
- NW障害の切り分け困難
推奨設定
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
危険設定⑥ OUTPUT制御を軽視する
誤解
「INPUTだけ見ていればOK」
実際のリスク
- マルウェア通信
- 不正外部通信
制御例
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -j DROP
危険設定⑦ 一時的ルールを永続化していない
症状
- 再起動後に通信不能
原因
iptablesはデフォルトでは再起動で消えます。
対策
iptables-save > /etc/sysconfig/iptables
systemctl enable iptables
危険設定⑧ ログを出していない
問題点
- なぜ遮断されたかわからない
推奨
iptables -A INPUT -j LOG --log-prefix "IPTABLES_DROP: "
iptables事故を防ぐチェックリスト
- DROPは最後に書いているか
- ESTABLISHEDを許可しているか
- SSH復旧手段はあるか
- 再起動後も設定は残るか
まとめ
iptablesは強力だが危険なツールです。
多くの事故は、
- 仕組み理解不足
- 検証不足
から発生します。
本記事の「危険設定」を避けるだけで、 障害・セキュリティ事故の大半は防げます。
あわせて読みたい


iptables ルールが反映されない/他のルールで上書きされるときの修正
Linuxサーバで通信制御を行う際、iptables のルールを設定しても期待通り反映されない、または再起動や別ツールの影響で上書きされてしまうことがあります。この記事で…
