iptablesまとめ

2025-06-28

iptablesコマンドはオプションが多くて毎回覚えてらんないため, ufwでいいんだけどちょっと開けるときに

簡単に仕組み

テーブル: ルールで分けたテーブル filter, nat, mangle, rawの4種類

チェーン: パケットがカーネルを通るときのポイント PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING の5種類

確認

Terminal window
sudo iptables -L -n -v --line-numbers

ここはコピペ用

追加

Terminal window
# 末尾に追加
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 末尾先頭に追加
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
# 送信元IPを指定
sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

サブコマンド

必須

オプション意味
-I先頭に挿入
-A末尾に追加
-Dルールを削除
-Rルールを置換
-Lルール一覧表示
-Fチェーンのルールを全削除
-N新しいチェーンを作成
-Xチェーンを削除
-Pチェーンのデフォルトポリシーを設定

-I INPUT 3ならINPUTチェーンの先頭から3番目に挿入

ジャンプ

必須

-j はjumpの略、そのあとに続くターゲット↓

ターゲット動作
ACCEPT通す
DROP捨てる(応答なし)
REJECT拒否応答を返して捨てる
LOGログだけ記録
MASQUERADE送信元IPをNATで書き換え(OUTPUTチェーン向け)
SNAT送信元IPを指定IPに書き換え
DNAT宛先IPを書き換え(ポートフォワード等)
RETURN現在のチェーンを抜けて呼び出し元に戻る

その他

オプション意味
-pプロトコル(tcp/udp/icmp等)
-s送信元IP
-d宛先IP
--sport送信元ポート
--dport宛先ポート
-i入力インターフェース(eth0等)
-o出力インターフェース
-m拡張モジュールの指定

--dport, --sport-p tcpなどとセットで使う

保存

Terminal window
sudo netfilter-persistent save

もし入ってなければ入れる

Terminal window
sudo apt install iptables-persistent

カーネルのメモリに乗ってるだけなので、シャットダウンで消える、揮発性

内部的にファイルに書き出して起動時に読み込んでる