Firewalld: ゾーンに広範かつ明示的なルールを割り当てる

Firewalld: ゾーンに広範かつ明示的なルールを割り当てる

firewalld初めてセットアップしようとしています。追加したいルールが 2 種類あります。

  • 特定のソースからの特定のポートのトラフィックのみを許可するルール。
  • 特定のソースからのすべてのトラフィックを許可するルール。

たとえば、「myZone」という新しいゾーンを作成するとします。 からのすべてのトラフィックを許可します10.95.0.0/16が、 からの LDAP 関連トラフィックのみを許可します10.96.59.23

そこで、ソースを「myZone」に追加します。

firewall-cmd --permanent --zone=myZone --add-source=10.95.0.0/16
firewall-cmd --permanent --zone=myZone --add-source=10.96.59.23

ここで、トラフィックを許可する LDAP ポートを追加します。

firewall-cmd --zone=myZone --add-port=389/tcp

しかし、これは具体的に何をするのでしょうか? これは「myZone」内のすべてのソースに適用されていると思いますか? 10.96.59.23LDAP トラフィックのみに制限し、 の ANY トラフィックを許可したいと10.95.0.0/16思います。ここで何か基本的なことを見逃しているような気がします。

理論的には、2 つのゾーン (「workstationZone」と「ldapZone」) を作成できると考えました。その後、ポート 389 を「ldapZone」に割り当てることができます。ただし、1 つのインターフェイスに複数のゾーンを割り当てることはできないようです。

# firewall-cmd --zone workstationZone --add-interface ens32 --permanent
success
# firewall-cmd --zone ldapZone --add-interface ens32 --permanent
success
#firewall-cmd --get-active-zones
workstationZone
  interfaces: ens32
  sources: 10.95.0.0/16
ldapZone
  sources: 10.96.59.23

上記では、「ens32」インターフェースが両方のゾーンに追加されることを期待していました。

私が見つけた別のオプションは「リッチ ルール」を使用することですが、メンテナンスが難しいため、使用を避けるようにという推奨事項が多数あるようです。

もう一度言いますが、私は何か根本的なことを見逃しているような気がしますが、ガイドをいくつか読んでも、理解できません。どなたか私を正す手助けをしていただけると大変助かります。

答え1

許可するトラフィックがソース/インターフェース間で異なる場合は、新しいゾーンを作成する必要があります。ゾーンは許可されるトラフィックのセットを定義し、指定されたインターフェースやソース ネットワークに適用します。

たとえば、すべてのトラフィックを許可するゾーン (デフォルトで既に存在し、 と呼ばれますtrusted)、LDAP トラフィックを許可する別のゾーン、および他の一連のサービスを許可する別のゾーンを持つことができます。

インターフェースまたはソースは 1 つのゾーンにしか存在できないため、それぞれをゾーンに割り当てる必要があります。そうすると、そのゾーンで許可されるトラフィックがそのインターフェースまたはソースに適用されます。別のゾーンを作成する必要があるかもしれませんが、これはまったく問題ありません。

あなたを覚えているいけない--permanentルールが機能していることに満足するまで、 を使用してください。そうしないと、タイプミスfirewall-cmd --runtime-to-permanentでロックアウトされ、回復するためにレスキュー環境で起動する必要が生じる可能性があります。代わりに、ルールを追加し、すべてが機能していることに満足したら、 を使用して保存します。(タイプミスでロックアウトされた場合は、firewalld またはコンピューターを再起動すると、保存されていない変更がすべて元に戻ります。)

また、入力の手間を省くことができます。Zoneゾーン名に含まれる単語は冗長です。

関連情報