メモ
- テーブル
テーブル名 | 役割 | ターゲット名 |
---|---|---|
filter | パケットフィルタ | |
nat | アドレス変換 | DNAT, SNAT, MASQUERADE, REDIRECT |
mangle | 特別なパケット変換 | TOS, TTL, MARK, SECMARK, CONNSECMARK |
- チェイン
チェイン名 | 処理のタイミング |
---|---|
INPUT | ローカルマシンに受信時 |
FORWARD | ローカルマシンから転送時 |
OUTPUT | ローカルマシンから送信時 |
PREROUTING | ローカルマシンに受信時。ただしINPUTとFORWARDチェインの前 |
POSTROUTING | ローカルマシンから送信時。ただしFORWARDとOUTPUTチェインの前。 |
- ターゲット
ターゲット名 | 処理内容 | チェーン名 |
---|---|---|
ACCEPT | パケットを通す | |
DROP | パケットを破棄 | |
REJECT | エラーパケットを送信。パケットは破棄。 | |
MASQUERADE | パケットをマスカレード?する | |
DNAT | 送信先アドレスを変更する | PREROUTING, OUTPUT |
SNAT | 送信元アドレスを変更する | |
LOG | ログに記録する |
- ルール指定のオプション
オプション | 説明 |
---|---|
-p プロトコル名 | プロトコルにマッチ。tcp, udp, icmp, all のどれか。 |
-s ホスト名orIPアドレス | 送信元にマッチ。IPアドレスは、/の後ろにマスクも指定可。 |
-d ホスト名orIPアドレス | 送信先にマッチ。IPアドレスは、/の後ろにマスクも指定可。 |
-i ネットワークインタフェース | 受信するインタフェースを指定。 |
-o ネットワークインタフェース | 送信するインタフェースを指定。 |
-j ターゲット | 対象となるターゲット名を指定。 |
iptables -P INPUT ACCEPT iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -F iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth0 -j ACCEPT iptables -A INPUT -i eth1 -s 116.130.210.0/21 -p udp -j ACCEPT iptables -A INPUT -i eth1 -s 116.130.210.0/21 -p icmp -j ACCEPT iptables -A INPUT -i eth1 -s 116.130.210.0/21 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -i eth1 -s 116.130.210.0/21 -p tcp --dport 443 -j ACCEPT iptables -A INPUT -i eth1 -s 116.130.210.0/21 -p tcp --dport 3690 -j ACCEPT iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -P INPUT DROP
ポリシーを決め、ルールをクリアし、ルールを追加し、ポリシーを再設定 という流れ。
以下のコマンドで設定を保存
# service iptables save
設定ファイルは、/etc/sysconfig/iptables に保存される。
- ルール表示
# iptables [-t テーブル名] -L [チェイン名] [-v] [-n] [--line-numbers] # iptables -t filter -L INPUT -v -n --line-numbers
- ポリシーの設定
# iptables [-t テーブル名] -P [チェイン名] [ターゲット名] # iptables -t filter -P INPUT DROP
- ルールの追加
# iptables [-t テーブル名] -A チェイン名 ルールの詳細 # iptables [-t テーブル名] -I チェイン名 ルール番号 ルールの詳細
- 個別のルールの削除
# iptables [-t テーブル名] -D チェイン名 ルール番号
- ルールの全削除
# iptables [-t テーブル名] -F # iptables [-t テーブル名] -F チェイン名
- ユーザ定義チェインの作成
# iptables -N ユーザ定義チェイン名
- ユーザ定義チェインの削除
# iptables -X ユーザ定義チェイン名
ただし、ユーザ定義チェインを使用しているルールが存在する場合、ユーザ定義チェインにルールが存在している場合は削除できないのであらかじめ削除しておく。