堀田@諫早市です。 On Fri, 07 Feb 2003 15:30:57 +0900 Subject: [vine-users:058241] iptables で、しばしば接続が途切れます Hirohisa Kobayashi <hk-ml@xxxxxxxxxxxxxxxxx> wrote: > お世話になっております。小林です。 > 早速質問させていただきます。 > > メールサーバー兼LAN内用のHTTP・FTPサーバーを立ち上げており、 > 当初は問題なく動作していたのですが、 > その後、iptablesの設定を変えてから、しばしば接続できなくなって > しまいました。 どこを変えたか思い出せれば、一件落着なんでしょうけどね:-) > 環境は、 > OS VineLinux2.6 > eth0 202.xxx.xxx.xxx > eth1 192.168.1.5 > スーパーサーバー inetd > ファイアウォール iptables > > しばしば切断されても、しばらく(数分程)するとまた繋がります。 > そしてまた切断されます。 > > 当初原因がわからず、ずっとinetdを疑っていましたがどうにも解決せず、 > 今度はiptablesを調べてみることにしました。 > > 最初、下記のようなスクリプトでiptablesを設定しておりました(一部抜粋)。 > -------------< old_iptables.sh start >----------------------------------- > MYHOST='192.168.1.5' > LOCALNET='192.168.1.0/24' > > # http > /sbin/iptables -A INPUT -p tcp -s $LOCALNET --destination-port 80 -d $MYHOST -i eth1 -j ACCEPT > /sbin/iptables -A OUTPUT -p tcp --source-port 80 -s $MYHOST -d $LOCALNET -o eth1 -j ACCEPT > # FTP > /sbin/iptables -A INPUT -p tcp -s $LOCALNET --destination-port 21 -d $MYHOST -i eth1 -j ACCEPT > /sbin/iptables -A OUTPUT -p tcp --source-port 21 -s $MYHOST -d $LOCALNET -o eth1 -j ACCEPT > # POP3 > /sbin/iptables -A INPUT -p tcp -s $LOCALNET --destination-port 110 -d $MYHOST -j ACCEPT > /sbin/iptables -A OUTPUT -p tcp --source-port 110 -s $MYHOST -d $LOCALNET -j ACCEPT > -------------< old_iptables.sh end >----------------------------------- 一部抜粋となっていますが、これ以外の設定があるけど省略していると いうことでしょうか? ポリシーの設定 ( iptables -P ) がどうなっているかで、上記にマッチ しないパケットが発生した場合の挙動が異なってきますので、できれば iptables -L -n -v の結果を貼り付けるほうがわかりやすいと思います。 ポリシーが上記以外すべて許可になっているのであれば、フィルタをか けた意味があまりないような気もします。反対にポリシーがデフォルト DROP/REJECT になっている場合、上記のルールだけでは arp などが通ら なくなり、いろんな障害が起こるかもしれません。 とりあえず、まずはデフォルトすべて許可にしておいて、 > httpとFTPはLAN内からしか必要ありませんので、 > できるだけ"-i eth1"は指定したいです。 というような要件がある場合は「eth0 からのパケットは、必要なもの 以外落とす」ような記述をしてみたらいかがでしょうか。 なお、-m state --state ESTABLISHED,RELATED を使うと、応答パケット を記述する必要がなくなるので便利ですが、前もって modprobe ip_conntrack をやっておくとか、FTP に関しては、 modprobe ip_conntrack_ftp などが必要になるかもしれません。 また、inetd 経由で http サービスをしているのであれば、inetd の 仕様で一定時間(一分間)にアクセスできる最大接続数の制限があった かと思いますので、man inetd も参考にしてください。これで引っかか っている場合は、/var/log/{messages,secure} あたりに何か出ている かもしれません。 -- HOTTA Michihide <hotta@xxxxxxxxxxxxxx> <http://www.net-newbie.com>