折角、中古のNICも手に入れたので Linux によるルーターをやってみた。
ADSL modem +------+ | | --- So-net の DHCPサーバ xxx.xxx.xx.xx から割り当てられている。 +------+ | 192.168.1.1 | | eth1: 192.168.1.30 +---------+ | FMV5333 | <-- Turbolinux7 server +---------+ | eth0: 192.168.0.30 | | +------+ | | corega 8 port HUB +------+ | +--- GIGA: 192.168.0.2 | +--- DELL: 192.168.0.5 | +--- ...
まぁ DMZ(DeMilitalized Zone:非武装地帯)をやってみたかったのもある。
本当は FMV-5333 の eth0, eth1 は図とは逆にしたかったのだが、今まで既に何台かのマシンをセットアップしてしまっているので面倒なので ADSL modem - FMV5333
間を 192.168.1. にする事にした。これならデフォルトゲートウェイを変更するだけで済むからである。
FMV5333 の OS は Turbolinux7 server
にした。手元にある本「はじめての...」が結構良い教科書であり、すんなりいきそうな気がしたからである。Solaris
も考えたが最初にしては敷居が高過ぎる...
FMV5333 - HUB 間はストレートケーブルだが、HUB の切替えSW を [PC] にした。
ipchains をインストールし、教科書を見ながら設定する。eth0 と eth1 とが逆なので勘違いもしたが、最終的には次のようになった。
# cat /etc/sysconfig/ipchains 1: :input ACCEPT 2: :forward ACCEPT 3: #:forward DENY 4: :output ACCEPT 5: #-A forward -s 192.168.212.0/255.255.255.0 -d 0.0.0.0/0.0.0.0 -j MASQ 6: -A input -i eth0 -s 192.168.0.0/24 -j ACCEPT 7: -A input -i eth1 -s xxx.xxx.95.24 53 -d 192.168.1.30 1024:65535 -p udp -j ACCEPT 8: -A input -i eth1 -s xxx.xxx.95.26 53 -d 192.168.1.30 1024:65535 -p udp -j ACCEPT 9: -A input -i eth1 -d 192.168.1.30 1024:65535 -p tcp ! -y -j ACCEPT 10: -A input -i eth1 -d 192.168.1.30 80 -p tcp -j ACCEPT 11: -A input -p tcp -y -j DENY -l 12: -A input -p udp -j DENY -l 13: -A forward -s 192.168.0.0/255.255.255.0 -j MASQ
これで
# /etc/rc.d/init.d/ipchains restart
network ファイルはゲートウェイを変更。GATEWAYDEV は複数枚NICの場合にだけ現れる設定と思う。
FORWARD_IPV4= を yes にせよ、と書かれた記事も見かけたが、元々無い行なので追加はしないでおく。
# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=fmv5333 #GATEWAY=192.168.0.1 GATEWAY=192.168.1.1 #GATEWAYDEV=eth0 GATEWAYDEV=eth1
これも再起動しておく。
# /etc/rc.d/init.d/network restart
ルーティングはこれ。
# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 ... 3C-905B 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 ... オンボード 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth1
因みにオンボードNIC は Intel 82558B だったと思う。
一方、LAN 内のクライアントマシンは
# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=dell_red72 #GATEWAY=192.168.0.1 GATEWAY=192.168.0.30
-P |
デフォルトポリシーを変更する |
-s |
送信元のIPアドレス |
|
-A |
チェーンの最後にルールを追加する |
-d |
宛先のIPアドレス | |
-I |
チェーンの最初にルールを追加する | -p |
プロトコル(tcp, udp,
icmp等) |
|
-D |
チェーンから指定したルールを削除する | --sport |
送信元のポート番号 | |
-N |
新しいチェーンを作る | --dport |
宛先のポート番号 | |
-F |
チェーンから全てのルールを削除する |
-i |
インターフェイス(eth0,
ppp0など) |
|
-X |
空のチェーンを削除する |
-j |
ターゲット(ACCEPT, DENY, |
|
-L |
チェーンに設定されたルールを表示する |