そしてservice iptables restart と実行したのですが下記のようなエラーが出てしまします。
「iptables ファイアウォールルールを適用中: iptables-restore: line 20 failed [失敗]」
このline 20 というのはCOMMITが書かれている行になります。
iptables -V でバージョンを調べたところ「iptables v1.3.5」でした。
OSはCentOS 5 32bitです。
お手数ですが、どなたかアドバイスいただけないでしょうか??
手元の CentOS 5.7 では、正常に動作します。
/etc/sysconfig/iptables の文法上の間違いであれば、COMMIT 以外のところでエラーが発生するはずなので、COMMIT 行でエラーになるのは、基本的には「何か使えない機能を使っている」可能性が高いです。
カーネル再構築後にiptablesでエラー - サラリーマンから起業するリアル
COMMIT で失敗するケースとして、-m で指定しているモジュールが存在していない場合があります。上記のページの方は、自分でカーネルをビルドする時に、これらのモジュールがビルドされていなかったので、ビルドされるように設定変更して再ビルドした、という話です。
ただ、実際に指定されている「state」「tcp」の各モジュールは、通常の CentOS であれば標準で入っているものなので、本来であればエラーにならないはずです。
ちなみに、iptables で -m を使って指定できるモジュールは /lib/iptables の下にあります。state モジュールであれば、libipt_state.so というファイルがモジュールの実体です。
試しに、COMMIT を途中に入れて、その COMMIT 以降の行をコメントアウトしてみる、というのを繰り返すと、原因のヒントが得られるかもしれません。
コメント(0件)