パケットフィルタは基本的にINPUT,OUTPUT,FORWARDの3つで行い、それぞれをチェインと呼びます。
チェインはルールセットのことで、それらチェインに新しいルールを追加して設定します。
また、チェインのセットをテーブルと呼びます。
テーブル | デフォルトチェイン |
---|
filter | INPUT, OUTPUT, FORWARD |
nat | PREROUTING, POSTROUTING, OUTPUT |
mangle | INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING |
iptablesコマンドによるパケットフィルタリング設定
- iptablesの書式
- iptables -[AD] チェイン ルール
- iptables -P チェイン ターゲット
- iptables -[LFNX] [チェイン]
- iptables -I チェイン [ルール番号] ルール
iptablesの主な引数
コマンド |
---|
-A | チェインにルールを追加 |
---|
-D | チェインからルールを削除 |
---|
-P | チェインのポリシーを変更 |
---|
ターゲット |
---|
-L [チェイン] | ルールのリストを表示 |
---|
-N チェイン | ユーザ定義チェインを作成 |
---|
-X チェイン | ユーザ定義チェインを削除 |
---|
-l | ルールを挿入 |
---|
-F チェイン | ルールを全て削除 |
---|
チェイン |
---|
INPUT | 入ってくるパケット |
---|
OUTPUT | 外へ出るパケット |
---|
FORWARD | 転送するパケット |
---|
PREROUTING | 入ってきたパケットを変換 |
---|
POSTROUTING | 出て行くパケットを変換 |
---|
ルール |
---|
-s srcaddr | ソースIPアドレス |
---|
-d dstaddr | 送信先IPアドレス |
---|
--sport num | ソースポート番号 |
---|
--dport num | 送信先ポート番号 |
---|
-j target | 指定したターゲットが適応される |
---|
-p proto | プロトコル |
---|
-i interface | 入力インターフェイス名 |
---|
-o interface | 出力インターフェイス名 |
---|
ターゲット |
---|
ACCEPT | 許可 |
---|
DROP | 破棄 |
---|
REJECT | 拒否 |
---|
MASQUERADE | 送信元IPアドレスとポート番号の変換 |
---|
SNAT | 送信元IPアドレスの変換 |
---|
DNAT | 送信元IPアドレスの変換 |
---|
LOG | ログに出力 |
---|
iptablesの設定例
- デフォルトのFORWARD,INPUTポリシーをDROP
- # iptables -P FORWARD DROP
# iptables -P INPUT DROP
- 10.0.0.0/8ネットワークからのtelnetポートを許可
- # iptables -A INPUT -p tcp -s 10.0.0.0/8 --dport 23 -j ACCEPT
- sshポートを許可
- # iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- ICMPを明示的に拒否
- # iptables -A INPUT -p icmp -j REJECT
- 25/TCPの通信のログを取る(/var/log/message)
- # iptables -A INPUT -p tcp --dport 25 -j LOG --log-prefix "SMTP: "
- チェイン内のルールとユーザ定義チェインを削除
- # iptables -F;iptables -X
- iptablesの設定を保存
- # iptables-save
- 関連記事
-
↑