
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.23
LDAP トラフィックのみに制限し、 の 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
ゾーン名に含まれる単語は冗長です。