iptables(ファイアウォール・パケットフィルタ)
問題
iptables 取っ付きにくい。
答え
iptablesでの特定IPからの通信の破棄などはわりと簡単。慣れておくのがよい。
現在の設定の確認
iptables --list
iptables -L
iptables -nvL
# iptables -nvL Chain INPUT (policy ACCEPT 120 packets, 14434 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 93 packets, 25101 bytes) pkts bytes target prot opt in out source destination
特定のIPからの通信を破棄
iptables -I INPUT -s 117.128.0.0/10 -j DROP
ルールを削除する
iptables -L で表示される一覧の何番目かを指定する。
iptables -D INPUT 1
ルールを全部削除する
iptables -F
初期状態にする
-F だけでは、ポリシーはそのままになる。全部初期状態にしたいとき。
iptables -F # テーブル初期化 iptables -X # チェーンを削除 iptables -Z # パケットカウンタ・バイトカウンタをクリア iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
設定を保存したい
/etc/init.d/iptables save
/etc/sysconfig/iptables に保存される。
前回保存した設定で起動したい
/etc/init.d/iptables restart
いろいろ設定を変更した後で保存しないで再起動すると、以前の状態になる。
設定にあたってメモ
iptablesのコマンドでは、テーブル、チェイン、条件、アクションを指定する。
よく使うパターン
iptables -t テーブル -Aなど チェイン 条件 アクション
テーブル
filter(デフォルト。許可、破棄等に使う。), nat(送信元フィールドやあて先フィールドの変更に使う), mangle(パケットの内容変更に使う)
特別な事情がなければ、filterだけ、filterとnatだけの設定をすることが多いと思う。
チェイン
PREROUTING, INPUT, OUTPUT, FORWARD, POSTROUTING のチェインがあって、
filterテーブルの設定は、FORWARD, INPUT, OUTPUTチェインで適用される。
natテーブルの設定は、PREROUTING, POSTROUTING, OUTPUTチェインで適用される。
mangleテーブルの設定は、PREROUTING, INPUT, OUTPUT, FORWARD, POSTROUTINGチェインで適用される。
-A, --append 指定チェインに1つ以上の新しいルールを追加 -D, --delete 指定チェインから1つ以上のルールを削除 -P, --policy 指定チェインのポリシーを指定したターゲットに設定 -N, --new-chain 新しいユーザー定義チェインを作成 -X, --delete-chain 指定ユーザー定義チェインを削除 -F テーブル初期化
条件
-p, --protocol プロコトル プロトコル(tcp、udp、icmp、all)を指定 -s, --source IPアドレス[/mask] 送信元のアドレス。IPアドレスorホスト名を記述 -d, --destination IPアドレス[/mask] 送信先のアドレス。IPアドレスorホスト名を記述 -i, --in-interface デバイス パケットが入ってくるインターフェイスを指定 -o, --out-interface デバイス パケットが出ていくインターフェイスを指定 -j, --jump ターゲット 条件に合ったときのアクションを指定 -t, --table テーブル テーブルを指定 -m state --state 状態 パケットの状態を条件として指定 stateは、 NEW、ESTABLISHED、RELATED、INVALIDが指定できる ! 条件を反転(~以外となる)
アクション
ACCEPT | パケットの通過を許可 |
---|---|
DROP | パケットを破棄 |
MASQUERADE | マスカレード |
SNAT | 送信元のアドレスの変換 |
DNAT | 送信先のアドレスの変換 |
LOG | ログを取る |
REJECT | パケットを拒否し、ICMPメッセージを返信 |
REDIRECT | 特定ポートにリダイレクト |
コメント