![ファイアウォール: 2つのNIC、2つのゾーン。ゾーンは無視されます](https://rvso.com/image/747330/%E3%83%95%E3%82%A1%E3%82%A4%E3%82%A2%E3%82%A6%E3%82%A9%E3%83%BC%E3%83%AB%3A%202%E3%81%A4%E3%81%AENIC%E3%80%812%E3%81%A4%E3%81%AE%E3%82%BE%E3%83%BC%E3%83%B3%E3%80%82%E3%82%BE%E3%83%BC%E3%83%B3%E3%81%AF%E7%84%A1%E8%A6%96%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99.png)
CentOS/RHEL 7.7 を実行しているサーバーがあり、2 つのネットワーク インターフェイスがあります。これらのインターフェイスは構成されており、正常に動作しています。最初のインターフェイス ens33 は、firewalld の「パブリック」ゾーンの一部です。このゾーンに適用されているすべてのルールは正常に動作します。2 番目のインターフェイス ens37 も、「パブリック」ゾーンのメンバーである場合は期待どおりに動作します。2 番目のインターフェイスの機能に固有のルール セットを持つ 2 番目のゾーン「GLZ」を作成しました。GLZ ゾーンからこのインターフェイスに適用されるルールを取得できません。過去に何度も iptables を使用してこのタイプの設定を構成しましたが、firewalld では目的の効果が得られないようです。firewalld の基本的な何かが欠けているように感じますが、それが何なのかわかりません。詳細は次のとおりです。
セットアップスクリプト:
NEWZONE="GLZ"
# create the new zone
firewall-cmd --permanent --new-zone=$NEWZONE
firewall-cmd --reload
# add the second NIC to the zone
firewall-cmd --permanent --zone=$NEWZONE --change-interface=ens37
# set zone target
firewall-cmd --zone=$NEWZONE --permanent --set-target=default
firewall-cmd --reload
# open necessary ports
firewall-cmd --permanent --zone=$NEWZONE --add-rich-rule='rule family=ipv4 source address=0.0.0.0/0 port protocol=tcp port=80 accept'
firewall-cmd --permanent --zone=$NEWZONE --add-rich-rule='rule family=ipv4 source address=0.0.0.0/0 port protocol=tcp port=443 accept'
# setup forwarding (see https://docs.fedoraproject.org/en-US/Fedora/19/html/Security_Guide/sec-Configure_Port_Forwarding-CLI.html)
firewall-cmd --permanent --zone=$NEWZONE --add-masquerade
firewall-cmd --permanent --zone=$NEWZONE --add-forward-port=port=22:proto=tcp:toport=2222
firewall-cmd --reload
--info-zone の出力に基づくと、これは問題ないように見えます。両方のゾーンがアクティブで、各ゾーンに適切なネットワーク インターフェイスが割り当てられています。パブリック ゾーンに加えた変更は両方のインターフェイスのトラフィックに影響し、GLZ ゾーンに追加または削除したルールはまったく影響しません。
出力:
$ sudo firewall-cmd --info-zone=public
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="10.0.0.0/8" port port="3306" protocol="tcp" accept
rule family="ipv4" source address="10.0.0.0/8" port port="80" protocol="tcp" accept
rule family="ipv4" source address="10.0.0.0/8" port port="443" protocol="tcp" accept
rule family="ipv4" source address="10.0.0.0/8" port port="8080" protocol="tcp" accept
$ sudo firewall-cmd --info-zone=GLZ
GLZ (active)
target: default
icmp-block-inversion: no
interfaces: ens37
sources:
services:
ports:
protocols:
masquerade: yes
forward-ports: port=22:proto=tcp:toport=2222:toaddr=
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="0.0.0.0/0" port port="80" protocol="tcp" accept
rule family="ipv4" source address="0.0.0.0/0" port port="443" protocol="tcp" accept