web-dev-qa-db-ja.com

iptables-restoreがルールのロードに失敗する

私は今しばらく探し回っていましたが、何も私の問題を解決しません。メールサーバーを設定していますが、iptablesに書き込むときにエラーが発生します。

iptables-restore:2行目に失敗しました。

次の/etc/iptables.test.rulesを使用しようとしています。

# Allows SMTP access
-A INPUT -p tcp --dport 25 -j ACCEPT

# Allows pop and pops connections 
-A INPUT -p tcp --dport 110 -j ACCEPT
-A INPUT -p tcp --dport 995 -j ACCEPT

# Allows imap and imaps connections 
-A INPUT -p tcp --dport 143 -j ACCEPT
-A INPUT -p tcp --dport 993 -j ACCEPT

この後、次のコマンドを発行しています。

Sudo iptables-restore < /etc/iptables.test.rules

しかし、私はこれを返します:

iptables-restore: line 2 failed.

何が問題なのかわかりません。誰でも明確にできますか?

Ubuntu 10.10 LTSを使用しています

8

それは、そのファイルが予期した形式ではないためです。ルールを最初に手動で追加してから、iptables-saveを使用して、期待される形式のファイルを取得する必要があります。

ただし、iptables-restoreが期待する形式を「模倣」するのは非常に簡単です。

ファイルの先頭に*filterだけの行を追加します。

一番下にCOMMITだけの行を追加します。

したがって、次のようになります。

*filter    

# Allows SMTP access
-A INPUT -p tcp --dport 25 -j ACCEPT

# Allows pop and pops connections 
-A INPUT -p tcp --dport 110 -j ACCEPT
-A INPUT -p tcp --dport 995 -j ACCEPT

# Allows imap and imaps connections 
-A INPUT -p tcp --dport 143 -j ACCEPT
-A INPUT -p tcp --dport 993 -j ACCEPT

COMMIT

他にもいくつかあるはずのスニペットがありますが、それが機能するはずです。これを行った後、iptables-save >filenameを使用して、完全に正しくフォーマットされた保存ファイルをfilenameに取得できます。

iptables-saveを使用すると、ファイル内のコメントが失われることに注意してください(ファイル全体が独自の類似フォーマットのファイルに置き換えられます)。

12
Caesium

実行:

iptables-save > /etc/sysconfig/iptables

その後、iptablesサービスを開始/再起動します

0
Younes