長南です。 寺西さんのメールより [vine-users:061831] > > /sbin/iptables-save > /etc/sysconfig/iptablesというコマンドで > 再起動時に/etc/rc.d/init.d/iptables startを実行するわけですね。 > 起動時にiptablesの設定がロードされているのに、/etc/rc.d/rc.localに > /etc/rc.d/rc.ip-masqを書くと再度rc.ip-masqに書かれたiptablesのスクリプト > が実行され、結果的に2回iptablesの設定がロードされているというわけですね。 わかっていらっしゃるようですが、私の説明も不十分だったので、 念のため前半について説明し直してみます。 仮にテキストログインで Linux を使っているとします。その場合、 /sbin/chkconfig --list iptables の結果が runlevel 3 で on になっていれば、 起動時に /etc/rc.d/rc3.d/S08iptables(実体は /etc/rc.d/init.d/iptables) が start を引数にして実行されます(参照: /etc/inittab、/etc/rc.d/rc)。 ところで、/sbin/iptables-save > /etc/sysconfig/iptables をやると、 iptables のルール設定が /etc/sysconfig/iptables に書き出されます。 そうすると、/etc/sysconfig/iptables が存在しているので、次の起動時に /etc/rc.d/init.d/iptables start が実行されるとき、そのスクリプト中で /sbin/iptables-restore が /etc/sysconfig/iptables を読み込んで(ここの ところは実際にスクリプトを見てください)、ルール設定を復元するわけです。 まだ、説明がこんがらがっていますか。セキュリティ関係のことはご心配で しょうから、/sbin/iptables -L や /sbin/iptables -L -t nat で、うまく 行っているかどうか、結果を確認してください( -v オプションをつけると よいかもしれません)。ついでに、/sbin/lsmod で必要なモジュールがロード されていることも確かめること。 > > /etc/sysctl.conf で net.ipv4.ip_forward = 1 になっていれば、必要ないはず。 > > これはnetcfgのルーティングの設定のところでネットワークパケット > フォワーディング(IPv4)をチェックすれば済みますね。 いや、それだけでは、/etc/sysconfig/network の FORWARD_IPV4 を yes にしてくれるだけだったと思います。昔はそれでよかったようですが、 今では /etc/sysctl.conf の net.ipv4.ip_forward を 1 にしなければ なりません。私はエディターで書き込んだように憶えています。 こちらも、cat /proc/sys/net/ipv4/ip_forward で結果を確認。 -- 長南洋一 cyoichi@xxxxxxxxxxxxxxx