InfraLab
IPTABLES58 cmd

iptablesチート集

チェーン管理・NAT・フィルタ・mangle・保存復元・nftables 移行を含む iptables の運用チート。

更新日
2026-05-29
参照範囲
公式ドキュメント / man page / 主要ベンダーCLI
対象実装
主要 Linux / BSD / ネットワーク機器 CLI の一般的な実装
免責
OS とバージョン差分は実環境で確認してください。

このチートシートの使いどころ

iptables 日本語チートシートとして、Linux の netfilter を使ったフィルタ、NAT、mangle、保存復元、nftables 移行時の確認をまとめています。対象は iptables / iptables-nft / iptables-legacy が混在し得る現行 Linux 環境です。公開前のファイアウォール変更、障害時のパケット通過確認、既存ルール棚卸しで、コマンド例とカテゴリを起点に差分を確認できます。

58 / 58

iptables -L

全ルールを一覧表示

Example
sudo iptables -L
iptables -L -n

数値形式でルールを表示(名前解決なし)

Example
sudo iptables -L -n
iptables -L -v

詳細情報付きでルールを表示

Example
sudo iptables -L -v --line-numbers
iptables -L -t nat

NATテーブルのルールを表示

Example
sudo iptables -L -t nat
iptables -L -t mangle

mangleテーブルのルールを表示

Example
sudo iptables -L -t mangle
iptables -S

ルールをiptables-save形式で表示

Example
sudo iptables -S
iptables -F

全ルールをフラッシュ(削除)

Example
sudo iptables -F
iptables -X

ユーザー定義チェーンを全削除

Example
sudo iptables -X
iptables -Z

パケットカウンターをゼロにリセット

Example
sudo iptables -Z
iptables -P

チェーンのデフォルトポリシーを設定

Example
sudo iptables -P INPUT DROP
iptables -A INPUT

INPUTチェーンにルールを追加

Example
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT

OUTPUTチェーンにルールを追加

Example
sudo iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD

FORWARDチェーンにルールを追加

Example
sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -I

チェーンの先頭にルールを挿入

Example
sudo iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT
iptables -D

チェーンからルールを削除

Example
sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT
iptables -D (line)

行番号を指定してルールを削除

Example
sudo iptables -D INPUT 3
iptables -R

チェーン内のルールを置換

Example
sudo iptables -R INPUT 1 -p tcp --dport 8080 -j ACCEPT
iptables -N

ユーザー定義チェーンを作成

Example
sudo iptables -N MYCHAIN
iptables -t nat -A POSTROUTING MASQUERADE

IPマスカレード(SNAT)を設定

Example
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING DNAT

宛先NAT(ポートフォワード)を設定

Example
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.10:8080
iptables -t nat -A POSTROUTING SNAT

送信元NATを設定

Example
sudo iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 203.0.113.1
iptables -t nat -A OUTPUT REDIRECT

ローカルポートリダイレクトを設定

Example
sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING REDIRECT

受信トラフィックのポートリダイレクト

Example
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443
iptables -t nat -F

NATテーブルのルールを全削除

Example
sudo iptables -t nat -F
iptables -t nat -L PREROUTING

PREROUTINGチェーンのNATルールを表示

Example
sudo iptables -t nat -L PREROUTING -n
iptables -A INPUT -s (allow IP)

特定IPからの接続を許可

Example
sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -s (deny IP)

特定IPからの接続を拒否

Example
sudo iptables -A INPUT -s 10.0.0.5 -j DROP
iptables -A INPUT --dport (allow port)

特定ポートへの接続を許可

Example
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -m multiport

複数ポートへの接続を一括許可

Example
sudo iptables -A INPUT -p tcp -m multiport --dports 80,443,8080 -j ACCEPT
iptables -A INPUT -m state ESTABLISHED

確立済み接続を許可

Example
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo

ループバックインターフェースを許可

Example
sudo iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp

ICMP(ping)を許可/拒否

Example
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -m conntrack

接続追跡モジュールでフィルタリング

Example
sudo iptables -A INPUT -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -m limit

レート制限を設定

Example
sudo iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/min -j ACCEPT
iptables -A INPUT -j LOG

パケットをログに記録

Example
sudo iptables -A INPUT -j LOG --log-prefix 'DROPPED: '
iptables -t mangle -A PREROUTING TOS

TOSフィールドを変更

Example
sudo iptables -t mangle -A PREROUTING -p tcp --dport 22 -j TOS --set-tos Minimize-Delay
iptables -t mangle -A PREROUTING TTL

TTL値を設定

Example
sudo iptables -t mangle -A PREROUTING -j TTL --ttl-set 64
iptables -t mangle -A PREROUTING MARK

パケットにマークを付与

Example
sudo iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 1
iptables -t mangle -A POSTROUTING MSS

TCP MSSを調整

Example
sudo iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -t mangle -A OUTPUT DSCP

DSCPフィールドを設定

Example
sudo iptables -t mangle -A OUTPUT -p tcp --dport 5060 -j DSCP --set-dscp-class EF
iptables -t mangle -F

mangleテーブルのルールを全削除

Example
sudo iptables -t mangle -F
iptables-save

現在のルールを標準出力に保存

Example
sudo iptables-save > /etc/iptables/rules.v4
iptables-restore

ファイルからルールを復元

Example
sudo iptables-restore < /etc/iptables/rules.v4
ip6tables-save

IPv6ルールを保存

Example
sudo ip6tables-save > /etc/iptables/rules.v6
ip6tables-restore

IPv6ルールを復元

Example
sudo ip6tables-restore < /etc/iptables/rules.v6
netfilter-persistent save

netfilter-persistentで永続化保存

Example
sudo netfilter-persistent save
netfilter-persistent reload

保存済みルールを再読み込み

Example
sudo netfilter-persistent reload
iptables-save -c

カウンター付きでルールを保存

Example
sudo iptables-save -c > /tmp/rules-with-counters
nft list ruleset

全ルールセットを表示

Example
sudo nft list ruleset
nft list tables

テーブル一覧を表示

Example
sudo nft list tables
nft list table

特定テーブルのルールを表示

Example
sudo nft list table inet filter
nft add table

テーブルを作成

Example
sudo nft add table inet myfilter
nft add chain

チェーンを作成

Example
sudo nft add chain inet myfilter input '{ type filter hook input priority 0; policy accept; }'
nft add rule

ルールを追加

Example
sudo nft add rule inet myfilter input tcp dport 22 accept
nft delete rule

ルールを削除

Example
sudo nft delete rule inet myfilter input handle 4
nft flush ruleset

全ルールセットをフラッシュ

Example
sudo nft flush ruleset
nft -f

ファイルからルールセットを読み込み

Example
sudo nft -f /etc/nftables.conf
iptables-translate

iptablesルールをnftablesに変換

Example
iptables-translate -A INPUT -p tcp --dport 22 -j ACCEPT
対応ツール
Related