Fedora 19をインストールしたばかりで、iptablesの代わりにfirewalldを使用していますが、新しい用語の解釈に問題があります。
NICが2枚あります。 1つはifcfg- *ファイルでZONE = "internal"ともう1つは「external」と指定されています。/etc/sysctl.confでipv4.forwarding = 1を設定し、firewall-cmd --zone = external--addを実行します。 -仮面舞踏会
ただし、内部ネットワーク上の任意のマシンからルーティングしようとすると、宛先ホストが禁止されます。もちろん、ファイアウォールを無効にすると、エラーは発生しなくなりますが、マスカレードが失われます。
IptablesにはFORWARDと呼ばれるルールセットがありましたが、firewalldでは--add-port-forwardしか見つかりません。これは同じことではありません。
Firewalldでルーティングを許可するにはどうすればよいですか?
...私はいくつかの進歩を遂げました...
#firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens4 -o eth1 -j ACCEPT
ルーティングは許可されますが、永続的ではなく、-permanentオプションは許可されません。再起動後もこれを永続的にするにはどうすればよいですか?
最後に、私は答えを見つけました...
# 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>
この機能はfirewalld-0.3.4-1.fc19に登場しましたが、firewall-cmdはまだサポートされておらず、マニュアルページは省略されていますが、機能します。
最終的には次のメーリングリストで見つかりました http://www.spinics.net/linux/Fedora/fedora-security/msg01688.html
Fedora25の時点で、これはFirewalldリッチルールを使用して解決できます。 FirewalldリッチルールはiptablesDSLに似ていますが、はるかに高い柔軟性を約束します。
また、iptablesと同様の連鎖に従います。詳細については、こちらをご覧ください: https://fedoraproject.org/wiki/Features/FirewalldRichLanguage#firewalld_Rich_Language