【アイピーテーブルズ】

iptables とは?

💡 Linuxサーバーを守る門番の指示書
📌 このページのポイント
iptables のチェーンとルール 外部通信 INPUT port 80 → ACCEPT port 443 → ACCEPT その他 → DROP サーバー Linux OUTPUT DNS → ACCEPT 全許可 ACCEPT(許可) DROP(破棄) REJECT(拒否) ルールは上から順に評価され、最初にマッチしたものが適用される
iptablesのチェーンとルールのイメージ
ひよこ ひよこ

iptablesってどういうものなの?

ペンギン先生 ペンギン先生

Linuxサーバーに届くネットワーク通信を『これは通してOK』『これはブロック』って振り分けるためのコマンドだよ。いわばサーバーの入口に立つ門番に指示書を渡すようなものだね

ひよこ ひよこ

どうやってルールを設定するの?

ペンギン先生 ペンギン先生

たとえば `iptables -A INPUT -p tcp --dport 80 -j ACCEPT` で『TCPの80番ポート(HTTP)への通信を許可する』というルールを追加できるよ。`-A` が追加、`-p` がプロトコル、`--dport` が宛先ポート、`-j` がアクション(許可/拒否)だね

ひよこ ひよこ

ルールの順番って大事なの?

ペンギン先生 ペンギン先生

すごく大事だよ!iptablesは上から順番にルールを評価して、最初にマッチしたルールが適用されるんだ。だから『全部拒否』のルールを先に書いちゃうと、その後に許可ルールを書いても通信が通らないよ

ひよこ ひよこ

設定したルールはずっと残るの?

ペンギン先生 ペンギン先生

実は再起動すると消えちゃうんだ。`iptables-save` でルールをファイルに保存して、起動時に `iptables-restore` で読み込む設定が必要だよ。Ubuntu なら `iptables-persistent` パッケージを入れると自動で保存・復元してくれるね

ひよこ ひよこ

nftablesっていう新しいのがあるって聞いたけど?

ペンギン先生 ペンギン先生

そうなんだ。nftablesはiptablesの後継で、ルール記述がシンプルになり、IPv4IPv6を統合的に扱えるのが特徴だよ。ただ、最新のLinuxでも内部的にiptablesの互換レイヤーが動いていることが多いから、iptablesのコマンド体系を知っておくことは今でもとても価値があるんだ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「iptables」って出てきたら「Linuxファイアウォール設定コマンド」と思えればだいたいOK!
📖 おまけ:英語の意味
「IP Tables」 = IPテーブル(ルール表)
💬 IPパケットを振り分けるルールをテーブル(表)形式で管理するから、この名前なんだよ
← 用語集にもどる