iptablesでやりがちな危険設定集|実務で起きた事故パターンと正しい対策

  • URLをコピーしました!

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は強力だが危険なツールです。

多くの事故は、

  • 仕組み理解不足
  • 検証不足

から発生します。

本記事の「危険設定」を避けるだけで、 障害・セキュリティ事故の大半は防げます

目次