将IPTables规则转换为Firewalld

时间:2016-08-31 11:51:12

标签: networking iptables firewalld

我正在设置Cuckoo Sandbox,我有几个IPTables规则需要转换为Firewalld规则。

以下是Cuckoo Sandbox安装指南的参考页面:http://docs.cuckoosandbox.org/en/latest/installation/guest/network/#virtual-networking

我需要从IPTables格式转换的3行是(删除子网):

iptables -A FORWARD -o eth0 -i vboxnet0 -s 0.0.0.0/0 -m conntrack --ctstate NEW -j ACCEPT

iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

iptables -A POSTROUTING -t nat -j MASQUERADE

我尝试转换规则并使用firewall-cmd实现它们,以下是我提出的三个更新规则:

firewall-cmd --permanent --direct --add-rule ipv4 -A FORWARD -o eth0 -i vboxnet0 -s 0.0.0.0/0 -m conntrack --ctstate NEW -j ACCEPT

firewall-cmd --permanent --direct --add-rule ipv4 -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

firewall-cmd --permanent --direct --add-rule ipv4 filter POSTROUTING 0 -t nat -j MASQUERADE

但是,当我尝试使用sudo firewall-cmd添加上述规则之一时,我会收到一条回复说:

wrong priority usage: --direct --add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>

我做错了什么?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

看起来您刚刚将iptables参数复制并粘贴到firewall-cmd命令的后面:这不起作用。错误消息告诉您,在ipv4&#39;:table,chain,priority和args之后,它没有找到它所期望的内容。你需要这样的东西:

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 9000 -j ACCEPT

您可以通过以下几种方式添加MASQUERADE:

firewall-cmd --permanent --zone=external --add-masquerade

firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -o eth1 -j MASQUERADE

这是开始使用firewalld的一个很好的参考:https://www.certdepot.net/rhel7-get-started-firewalld/