iptables-restore无法加载我的规则


10

我已经搜寻了一段时间,但没有任何解决方法。我正在设置邮件服务器,但是在写入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

Answers:


13

这是因为该文件的格式不正确。您应该在第一次手动添加规则,然后使用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了该注释,则该文件中的注释将丢失(它将用其自己的相似格式替换整个文件)。


0

跑:

iptables-save > /etc/sysconfig/iptables

然后启动/重新启动您的iptables服务

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.