[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:28167] [Summary] routing on Debian with ipchains
柴田(あ)です。
とても古い話ですが、一応解決したのでご報告申し上げます。
From: masy@xxxxxxxxxxxxxxxx
Subject: [debian-users:25655] Re: routing with Debian
Date: Mon, 4 Dec 2000 10:57:54 +0900
> 小野澤です。
ご無沙汰しております。
> shibata> > IP: ICMP masquerading
> shibata> > これが必要になると思いますが、入ってますかね ?
> shibata>
> shibata> これよんだ瞬間に思い出しましたが、 firewall に
> shibata> するにはカーネルの再構築が必要ですね。
>
> install したままの Kernel でも module は用意されているでしょうから
> そいつを load すれば良いと思います。
>
> /lib/modules/2.2.17/ipv4/
>
> あたりを見てみてください。
> (2.2.18 かしら?)
2.2.18 にて再構築しました。
ただ、そういう問題ではなく、 ipchains の問題であることが
わかり、最近再び手をつけて約一ヶ月モガいて松田陽一さんや碇さんの
協力にて下記スクリプトを作成して希望通りの状態になりました。
> JF の Linux IP Masquerade mini HOWTO あたりを参考にされてはいかがでしょうか。
> http://www.linux.or.jp/JF/JFdocs/IP-Masquerade.html
かなり読み込んだつもりだったのですが、結局あまり理解の
助けにはなりませんでした。
http://tlec.linux.or.jp/docs/ipchains.html
を当方の環境に合わせて変更して使えるようになりました。
ほとんど上記の ppp0 を eth0 相当にして使っている
だけの状態ですので、ご自分の環境に合わせるには
/sbin/ifconfig の結果を確認されてインターフェースの
部分と ip アドレスの部分を書き換えるとつかえるように
なるハズです。
その際には松田さんにはビシバシとご指摘いただいた
おかげでなんとなく理解したつもりになりましたが、
先人の理解力の高さには感服せずにはおられません。
関係の皆様のご協力にこの場を借りて感謝いたします。
> あと、僕は使ったことないので何をしてくれるのかよくわからないのですが、
> ipmasq って package があります。
これなんですけど、とってもタコい状態にしてくれるので、
使用をあきらめました。
なんか使い方もよくわからないのです。
で、こちらをお読みの方にも参考になるかもしれませんが、
一応上記松田陽一さんが作成されたドキュメント URL の
改変版を下記に添付いたしますので、参考にどうぞ。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
#!/bin/sh
#
# eth0 : 172.16.10.15/16 : Over 172.16.0.2 is internet-line.
# eth1 : 192.168.10.3/24 : inner net
#
# 組み込み済みチェインの初期化
/sbin/ipchains -F input
/sbin/ipchains -F output
/sbin/ipchains -F forward
/sbin/ipchains -F eth0-in
/sbin/ipchains -F eth0-out
# 組み込み済みチェインのポリシー変更
# output チェインを DENY にすると、ローカルネットワークから外に出る
# 全てのアクセスを列挙しなければならないので、敢えて ACCEPT にする
/sbin/ipchains -P input DENY
/sbin/ipchains -P forward DENY
/sbin/ipchains -P output ACCEPT
# 組み込み済みチェインにルールを追加
# システム起動時に portmap がループバックインターフェース経由で動作
# するので、 input チェインを DENY にする際にはこの定義は必須。
/sbin/ipchains -A input -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
# ローカルネットワーク内から発する接続は全て ACCEPT 。
/sbin/ipchains -A input -s 192.168.10.0/24 -d 0/0 -j ACCEPT
# ローカルネットワーク内から外への forward は全て MASQ 。
/sbin/ipchains -A forward -s 192.168.10.0/24 -d ! 192.168.10.0/24 -j MASQ
# eth0-in チェインを作成
/sbin/ipchains -N eth0-in
# eth0-in チェインを定義
/sbin/ipchains -A input -i eth0 -j eth0-in
# eth0-out チェインを作成
/sbin/ipchains -N eth0-out
# eth0-out チェインを定義
/sbin/ipchains -A output -i eth0 -j eth0-out
# フラグメントを DENY してログ記録。
/sbin/ipchains -A eth0-in -s 0/0 -d 172.16.10.15 -f -j DENY -l
# IP偽装対策、ローカル IP は eth0 から来る筈がないので、 DENY してログ記録。
/sbin/ipchains -A eth0-in -s 10.0.0.0/8 -j DENY -l
#/sbin/ipchains -A eth0-in -s 172.16.0.0/12 -j DENY -l
/sbin/ipchains -A eth0-in -s 192.168.0.0/16 -j DENY -l
/sbin/ipchains -A eth0-in -s 0.0.0.0/8 -j DENY -l
/sbin/ipchains -A eth0-in -s 127.0.0.0/8 -j DENY -l
/sbin/ipchains -A eth0-in -s 169.254.0.0/16 -j DENY -l
/sbin/ipchains -A eth0-in -s 192.0.2.0/24 -j DENY -l
/sbin/ipchains -A eth0-in -s 224.0.0.0/4 -j DENY -l
/sbin/ipchains -A eth0-in -s 240.0.0.0/4 -j DENY -l
# ローカル IP が外に洩れない様にする。
#/sbin/ipchains -A eth0-out -s 0/0 -d 10.0.0.0/8 -j DENY -l
#/sbin/ipchains -A eth0-out -s 0/0 -d 172.16.10.15 -j DENY -l
/sbin/ipchains -A eth0-out -s 0/0 -d 192.168.0.0/16 -j DENY -l
# SMB プロトコルが外に洩れない様にする。
/sbin/ipchains -A eth0-out -s 0/0 -d 0/0 137:139 -p udp -j DENY
/sbin/ipchains -A eth0-out -s 0/0 -d 0/0 137:139 -p tcp -j DENY
# ローカルネットワーク内に Windows2000 があれば以下の設定も。
/sbin/ipchains -A eth0-out -s 0/0 -d 0/0 445 -p tcp -j DENY
/sbin/ipchains -A eth0-out -s 0/0 -d 0/0 445 -p udp -j DENY
# ssh を ACCEPT
/sbin/ipchains -A eth0-in -p tcp -s 0/0 -d 172.16.10.15 ssh -j ACCEPT
# www を ACCEPT
/sbin/ipchains -A eth0-in -p tcp -s 0/0 -d 172.16.10.15 www -j ACCEPT
# auth を REJECT
/sbin/ipchains -A eth0-in -p tcp -s 0/0 -d 0/0 auth -j REJECT
# 上記以外の tcp syn パケットを DENY してログを取る。
/sbin/ipchains -A eth0-in -s 0/0 -d 172.16.10.15 -p tcp -y -j DENY -l
# 上記以外の tcp syn パケット以外を ACCEPT
/sbin/ipchains -A eth0-in -s 0/0 -d 172.16.10.15 -p tcp ! -y -j ACCEPT
echo syn_accept
# DNS 参照の udp パケットを ACCEPT
# より望ましくはソースアドレスをプロバイダが提供する DNS サーバに
# し、 tcp も許可すべきでしょう。
/sbin/ipchains -A eth0-in -s 0/0 domain -d 172.16.10.15 -p udp -j ACCEPT
# ntp 参照の udp パケットを ACCEPT
# より望ましくはソースアドレスをプロバイダが提供する ntp サーバに
# すべきでしょう。
/sbin/ipchains -A eth0-in -p udp -s 0/0 ntp -d 172.16.10.15 -j ACCEPT
# 必要な ICMP パケットを ACCEPT
# echo-request と echo-reply は ping に必要
# destination-unreachable は 全ての tcp/udp トラフィックに必要
# time-exceeded は traceroute に必要
/sbin/ipchains -A eth0-in -p icmp -s 0/0 echo-reply -d 0/0 -j ACCEPT
/sbin/ipchains -A eth0-in -p icmp -s 0/0 destination-unreachable -d 0/0 -j ACCEPT
/sbin/ipchains -A eth0-in -p icmp -s 0/0 echo-request -d 0/0 -j ACCEPT
/sbin/ipchains -A eth0-in -p icmp -s 0/0 time-exceeded -d 0/0 -j ACCEPT
# 上記以外の全てのパケットを DENY してログを取る。
/sbin/ipchains -A eth0-in -j DENY -l
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
で、上記を実行したあとの状態
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
$ sudo /sbin/ipchains -n -L
Password:
Chain input (policy DENY):
target prot opt source destination ports
ACCEPT all ------ 127.0.0.0/8 127.0.0.0/8 n/a
ACCEPT all ------ 192.168.10.0/24 0.0.0.0/0 n/a
eth0-in all ------ 0.0.0.0/0 0.0.0.0/0 n/a
Chain forward (policy DENY):
target prot opt source destination ports
MASQ all ------ 192.168.10.0/24 !192.168.10.0/24 n/a
Chain output (policy ACCEPT):
target prot opt source destination ports
eth0-out all ------ 0.0.0.0/0 0.0.0.0/0 n/a
Chain eth0-in (1 references):
target prot opt source destination ports
DENY all ---fl- 0.0.0.0/0 172.16.10.15 n/a
DENY all ----l- 10.0.0.0/8 0.0.0.0/0 n/a
DENY all ----l- 192.168.0.0/16 0.0.0.0/0 n/a
DENY all ----l- 0.0.0.0/8 0.0.0.0/0 n/a
DENY all ----l- 127.0.0.0/8 0.0.0.0/0 n/a
DENY all ----l- 169.254.0.0/16 0.0.0.0/0 n/a
DENY all ----l- 192.0.2.0/24 0.0.0.0/0 n/a
DENY all ----l- 224.0.0.0/4 0.0.0.0/0 n/a
DENY all ----l- 240.0.0.0/4 0.0.0.0/0 n/a
ACCEPT tcp ------ 0.0.0.0/0 172.16.10.15 * -> 22
ACCEPT tcp ------ 0.0.0.0/0 172.16.10.15 * -> 80
REJECT tcp ------ 0.0.0.0/0 0.0.0.0/0 * -> 113
DENY tcp -y--l- 0.0.0.0/0 172.16.10.15 * -> *
ACCEPT tcp !y---- 0.0.0.0/0 172.16.10.15 * -> *
ACCEPT udp ------ 0.0.0.0/0 172.16.10.15 53 -> *
ACCEPT udp ------ 0.0.0.0/0 172.16.10.15 123 -> *
ACCEPT icmp ------ 0.0.0.0/0 0.0.0.0/0 0 -> *
ACCEPT icmp ------ 0.0.0.0/0 0.0.0.0/0 3 -> *
ACCEPT icmp ------ 0.0.0.0/0 0.0.0.0/0 8 -> *
ACCEPT icmp ------ 0.0.0.0/0 0.0.0.0/0 11 -> *
DENY all ----l- 0.0.0.0/0 0.0.0.0/0 n/a
Chain eth0-out (1 references):
target prot opt source destination ports
DENY all ----l- 0.0.0.0/0 192.168.0.0/16 n/a
DENY udp ------ 0.0.0.0/0 0.0.0.0/0 * -> 137:139
DENY tcp ------ 0.0.0.0/0 0.0.0.0/0 * -> 137:139
DENY tcp ------ 0.0.0.0/0 0.0.0.0/0 * -> 445
DENY udp ------ 0.0.0.0/0 0.0.0.0/0 * -> 445
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
--
SHIBATA Akira 既往は咎めず
shibata@xxxxxxxxxxxxxx Let bygones be bygones