vine-users ML アーカイブ



[vine-users:058242] Re: iptables で、しばしば接続が途切れます

  • From: HOTTA Michihide <hotta@xxxxxxxxxxxxxx>
  • Subject: [vine-users:058242] Re: iptables で、しばしば接続が途切れます
  • Date: Fri, 07 Feb 2003 16:09:26 +0900
堀田@諫早市です。

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>