猫型エンジニアのブログ

プログラム/ネットワーク系の技術関連をまとめたページです 

iptablesを用いた透過型FWの設定

+--------+        +--------+         +--------+
|  eth0  | -----> |   br0  | ------> |  eth1  |
+--------+        +--------+         +--------+

 上の図のようにbr0を介して2枚のNIC(eth0,eth1)がブリッジされている状態を仮定します。eth0からeth1の向きに流れるパケットを遮断するためのiptablesのコマンドは以下の通りです。

iptables -A FORWARD -j DROP --match physdev --physdev-in eth0 --physdev-out eth1

 上のコマンドを利用して、宛先のIPアドレスが192.168.1.1のICMPのみを遮断するコマンドは以下の通りです。

iptables -A FORWARD -j DROP -p icmp -d 192.168.1.1 --match physdev --physdev-in eth0 --physdev-out eth1

注意

 なぜかCentOS6.3(KVM上のVM)だと上記設定のiptablesが動作しませんでした。Ubuntu12.04(KVM上のVM)だと正しく動作しました。