web-dev-qa-db-ja.com

Fedora19ルーターでfirewalldを使用して転送を許可する方法

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オプションは許可されません。再起動後もこれを永続的にするにはどうすればよいですか?

7
banjo67xxx

最後に、私は答えを見つけました...

# 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

8
banjo67xxx

Fedora25の時点で、これはFirewalldリッチルールを使用して解決できます。 FirewalldリッチルールはiptablesDSLに似ていますが、はるかに高い柔軟性を約束します。

また、iptablesと同様の連鎖に従います。詳細については、こちらをご覧ください: https://fedoraproject.org/wiki/Features/FirewalldRichLanguage#firewalld_Rich_Language

0
ksinkar