Tips記事
» 2001年02月07日 00時00分 UPDATE

ipchainsで構築するファイアウォール設定が知りたい〜その1〜

[木田佳克,ITmedia]

 カーネル2.2では,ipfwadmに代わり「ipchains」でファイアウォール設定ができるようになっている。さらにカーネル2.4では,「ipfilter」と呼ばれるコマンドも追加されており,フィルタ設定は設定が難解なものの1つとして挙げられるだろう。ここでは,ipchainsを利用した設定方法について解説しよう。

 まず最初に,例として次の定義(設定)を見てほしい。この2行では,1行目でまずchainsの標準ポリシーを拒否(DENY)に設定し,すべてのパケットの流れを止めている。次の行では,ルータ内側(192.168.1.0/24)から外側(0.0.0.0/0)へのパケットにIPマスカレードで自由に接続が許可している。外側から内側への流れは,すでに1行目に定義されているため一切拒否(DENY)するという設定だ。

ipchains -P forward DENY
ipchains -A forward -s 192.168.1.0/24 -j MASQ

forward → ルータを介して転送されるパケットに適用する。
input → 入ってきたパケットに適用される。
output → ルータから外部へ出るパケットに適用される。

 次の例は,ルータの内側(192.168.1.0/24)からはIPマスカレードを実行し,外側の特定ホスト(133.217.0.1)から内側(192.168.1.0/24)へは接続できるようにする設定である。

ipchains -P forward DENY
ipchains -A forward -b -s 133.217.0.1/32 -d 192.168.1.0/24 -j ACCEPT
ipchains -A forward -s 192.168.1.0/24 -j MASQ

 この例は,ルータ内側へのパケットのうち,ポート番号「80」宛のものはhttpに転送する設定だ。http以外のサービス接続は拒否される。

ipchains -P forward DENY
ipchains -A input -d 0.0.0.0/0 80 -j REDIRECT

 次の例は,ルータ内にWindowsマシンがある場合のNetBIOSガードのフィルタ設定例だ。上の2行は前述した通りだが,3〜4行目では内側からの137〜139ポートの転送は許すものの,外側からの137〜139,1024〜65535番までのすべてのポート要求を拒否するという設定だ。

 また「-i」のパラメータは,次に続くインターフェイスを指定するためのものである。ここでは「eth0」のイーサネットポートを指定していることが分かる。

/sbin/ipchains -A forward -s 192.168.0.0/24 -d 0.0.0.0/0 -j MASQ
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -i eth0 -p tcp -s 192.168.0.0/0 137:139 -d 0/0 1024:65535 -j DENY
/sbin/ipchains -A forward -i eth0 -p udp -s 192.168.0.0/0 137:139 -d 0/0 1024:65535 -j DENY
/sbin/ipchains -A input -i eth0 -p udp -s 0/0 137:139 -d 0/0 -j DENY
/sbin/ipchains -A input -i eth0 -p tcp -s 0/0 137:139 -d 0/0 -j DENY

 これらの設定を終えたら,「ipchains -L」を実行して,適用されている内容を確認してみるとよいだろう。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ