如何允许在 Fedora 19 路由器上使用 firewalld 转发

ban*_*xxx 8 networking linux routing iptables

我刚刚安装了 Fedora 19 并且我使用的是 firewalld 而不是 iptables,但是我在解释新术语时遇到了困难。

我有 2 个网卡。一个是在 ifcfg-* 文件中指定的 ZONE="internal" 和另一个“external”,我在 /etc/sysctl.conf 中设置了 ipv4.forwarding = 1,并运行 firewall-cmd --zone=external --add -化妆舞会

但是,当我尝试从内部网络上的任何机器进行路由时,我收到了禁止目标主机的消息,当然,如果我禁用了 firewalld,错误就会消失,但随后我就失去了伪装。

在 iptables 中有一个名为 FORWARD 的规则集,但在 firewalld 中我只能找到 --add-port-forward 这不是一回事。

如何在 firewalld 中允许路由?

......我取得了一些进展......

# firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens4 -o eth1 -j ACCEPT

将允许路由,但它不是持久的,并且不允许 --permanent 选项。如何在重新启动后保持这种持久性?

ban*_*xxx 8

终于,我找到了答案……

# cat /etc/firewalld/direct.xml
<?xml version="1.0" encoding="utf-8"?>
<direct>
   [ <rule ipv="ipv4" table="filter" chain="FORWARD_direct" priority="0"> -i eth0 -o eth1 -j ACCEPT </rule> ]
</direct>
Run Code Online (Sandbox Code Playgroud)

此功能出现在 firewalld-0.3.4-1.fc19 中,但还没有 firewall-cmd 支持,并且省略了手册页,但它有效

最终在下面的邮件列表中 找到了 http://www.spinics.net/linux/fedora/fedora-security/msg01688.html