同じゾーンにある 2 つの Firewalld インターフェイス間のトラフィック転送

同じゾーンにある 2 つの Firewalld インターフェイス間のトラフィック転送

私のCentOS 7.3.1611システムには、3つの領域にある4つのインタフェースがあります。

# firewall-cmd --get-active-zones
dmz
  interfaces: ens192
internal
  interfaces: ens256 ens161
external
  interfaces: ens224

二つのシステムが欲しい内部ゾーンは互いに対話できます。

双方向直接ルールを追加してみました。

# firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -o ens256 -i ens161 -j ACCEPT
# firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens256 -o ens161 -j ACCEPT

...これは、内部ネットワークの1つがdmzネットワークと通信できるようにする方法であるためです。しかし、A)これはゾーン内のケースでは機能しないようです。 B) コマンドがその--permanentフラグを受け入れないためです。このようなコマンドが再起動後も生き残るかどうか疑われます。

両方の内部インターフェイスは外部(インターネット)領域と正しく通信します。

同じゾーン内の2つのインターフェイス間でトラフィックフローを許可するにはどうすればよいですか?

答え1

nftablesを含むファイアウォールの場合、--add-forward2日前に[1]ゾーンのインターフェイス間の転送を許可する新しいフラグがマージされました。このように設定可能です。

# firewall-cmd --zone=internal --add-forward

2020/09/03 更新: 新しいバージョン 0.9.0 にはこの機能が含まれています\o/

[1]https://github.com/firewalld/firewalld/pull/613

答え2

Firewalldの同様のマルチインターフェイスファイアウォールトピックを検索中に質問が見つかりました。約1年経っても、あなたの質問はまだ答えがありません。あなたが経験している - 永続的な問題が買収の順序に関連しているかどうか疑問に思います。

Enterprise Linux 7.5バージョン0.4.4.4では、Firewall-cmdのマニュアルページに--directの前に--permanentを追加する必要があります。これは、--directの後のすべてのパラメータがFirewall-cmdではなくdirectのサブパラメータであるためです。したがって、次のようにコマンドを実行します。

# firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -o ens256 -i ens161 -j ACCEPT

2つの内部インターフェイスに関して...一方では、出力を見てチェーンフローがどのように進行するかを# iptables -L描画する必要があります。ここに入力したコマンドは、優先順位が0のチェーン上部の転送チェーンにルールを挿入します。私の考えでは、「FORWARD_IN_ZONES」のように優先順位の高い別のチェーンがあるようですが、最終的にはパケットが削除されます。

また、最新バージョンの Firewalld では、ドロップされ# firewall-cmd --set-log-denied=allたパケットに関する情報を表示するために実行できます。ログには、ドロップが生成されたチェーンの名前を含める必要があります。

関連情報