背景#
攻防演習中、あるデバイスがコントロールサーバに接続できない問題が発生しました。iptables -L INPUT --line -number
コマンドで INPUT と OUTPUT を確認したところ、異常があり、両方のルールが削除されていましたが、それでもコントロールサーバに接続できませんでした。最終的に、raw テーブルにポリシーが存在することが確認されました。
四つのテーブルと五つのチェーン#
Linux ファイアウォール(iptables)は、Four Tables, Five Chains の構造を使用してネットワークトラフィックを管理および制御します。この構造は iptables の中核を成す部分であり、ファイアウォールのルールやネットワークパケットのフィルタリングを設定するために使用されます。
以下に Four Tables, Five Chains の概要を示します:
Four Tables:
- filter テーブル:ネットワークパケットのフィルタリングに使用され、ルールに基づいてファイアウォールを通過するか拒否するかを決定します。
- nat テーブル:ネットワークアドレス変換(Network Address Translation、NAT)に使用され、ポートフォワーディングや IP アドレス変換などの機能を実現します。
- mangle テーブル:パケットのヘッダーを変更するために使用され、TTL(Time to Live)の変更やパケットのマーク設定などが行われます。
- raw テーブル:元のデータパケットの処理を提供し、通常は接続追跡(Connection Tracking)の設定や特定のタイプのパケットの処理に使用されます。
Five Chains:
- INPUT チェーン:ローカルシステムに入ってくるパケットを処理するために使用されます。例えば、受信したネットワークリクエストなどです。
- OUTPUT チェーン:ローカルシステムから送信されるパケットを処理するために使用されます。例えば、ローカルシステムから発信されるネットワークリクエストなどです。
- FORWARD チェーン:ローカルシステムを経由して転送されるパケットを処理するために使用されます。例えば、ルーターとして転送されるパケットなどです。
- PREROUTING チェーン:パケットがローカルシステムのネットワークプロトコルスタックに到達する前に処理されるために使用されます。通常、ネットワークアドレス変換(NAT)に使用されます。
- POSTROUTING チェーン:パケットがローカルシステムのネットワークプロトコルスタックから出て行く前に処理されるために使用されます。通常、ネットワークアドレス変換(NAT)に使用されます。
raw テーブルの単独削除#
Linux ファイアウォールの raw テーブルを削除するには、iptables コマンドの-t
オプションでテーブル名を "raw" と指定し、-F
オプションでテーブル内のすべてのルールをクリアし、その後-X
オプションでテーブルを削除します。
以下に raw テーブルを削除するためのコマンドの例を示します:
iptables -t raw -F
iptables -t raw -X
これらのコマンドを実行するには、管理者または root 権限が必要です。テーブルを削除する前に、その影響を理解し確認することをお勧めします。ファイアウォールの設定変更を行う前に、ルールをバックアップし、安全な環境でテストを行うことをお勧めします。
raw テーブルの単独ルール削除#
raw テーブルの個々のルールを削除するには、iptables コマンドの-t
オプションでテーブル名を "raw" と指定し、-D
オプションで削除するルールの位置またはルール仕様を指定します。
以下に raw テーブルの個々のルールを削除するためのコマンドの例を示します:
iptables -t raw -D <chain> <rule_specification>
<chain>
を raw テーブルのチェーン(例:PREROUTING、OUTPUT など)に置き換え、<rule_specification>
を削除するルールの具体的な位置またはルール仕様に置き換えてください。
例えば、PREROUTING チェーンの 3 番目のルールを削除する場合、以下のコマンドを実行します:
iptables -t raw -D PREROUTING 3
削除するルールのルール仕様を知っている場合は、<rule_specification>
に置き換えることもできます。例えば、ソース IP アドレスが 10.0.0.1 のルールを削除する場合、以下のコマンドを実行します:
iptables -t raw -D PREROUTING -s 10.0.0.1 -j <target>