使用 iptables-restore 应用 iptables 规则时出错

2 ubuntu vps firewall iptables

嗨,我在 VPS 上使用 Ubuntu 9.04。如果我应用 iptables 规则,我会收到错误消息。这是我所做的。

1.保存现有规则

iptables-save > /etc/iptables.up.rules

创建 iptables.test.rules 并添加一些规则

纳米 /etc/iptables.test.rulesnano /etc/iptables.test.rules

这是我添加的规则

*filter


 #  Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT


#  Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


#  Allows all outbound traffic
#  You can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT


# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT


#  Allows SSH connections
#
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
#
-A INPUT -p tcp -m state --state NEW --dport 22- j ACCEPT


# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT


# log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7


# Reject all other inbound - default deny unless explicitly allowed policy
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT
Run Code Online (Sandbox Code Playgroud)

编辑后,当我尝试应用规则时

iptables-restore < /etc/iptables.test.rules
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

iptables-restore:第 42 行失败

第 42 行是 COMMIT,我评论说我得到

iptables-restore: COMMIT 预期在第 43 行

我不确定是什么问题,它期待 COMMIT 但如果 COMMIT 在那里,它就会出错。可能是因为我使用的是 VPS?我的提供商使用 OpenVZ 进行虚拟化。

小智 5

在这一点上很旧的帖子,但它是谷歌的顶级结果,所以我想我会用我的解决方案更新......

COMMIT 后必须有一个空行,否则 iptables-restore 将失败,并在 COMMIT 所在的行出现“未指定命令”错误。