以下のようにubuntu / jammy64で簡単なファイアウォール設定を試しています。
Source (K1) ------ (fw int) | Firewall (FW1) | (fw ext) ------ Destination (K2)
┌──(vagrant㉿k1)-[~]
└─$ ip -4 a show eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 172.16.10.51/24 brd 172.16.10.255 scope global eth1
valid_lft forever preferred_lft forever
┌──(vagrant㉿k1)-[~]
└─$ ip r
default via 10.0.2.2 dev eth0
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
172.16.10.0/24 dev eth1 proto kernel scope link src 172.16.10.51
172.16.20.0/24 via 172.16.10.10 dev eth1
----------
vagrant@firewall:~$ ip -4 a show enp0s8
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 172.16.10.10/24 brd 172.16.10.255 scope global enp0s8
valid_lft forever preferred_lft forever
vagrant@firewall:~$ ip -4 a show enp0s9
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 172.16.20.10/24 brd 172.16.20.255 scope global enp0s9
valid_lft forever preferred_lft forever
vagrant@firewall:~$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
----------
┌──(vagrant㉿k2)-[~]
└─$ ip -4 a show eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 172.16.20.51/24 brd 172.16.20.255 scope global eth1
valid_lft forever preferred_lft forever
┌──(vagrant㉿k2)-[~]
└─$ ip r
default via 10.0.2.2 dev eth0
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
172.16.10.0/24 via 172.16.20.10 dev eth1
172.16.20.0/24 dev eth1 proto kernel scope link src 172.16.20.51
ゾーンにインターフェイスとソースアドレスを追加するさまざまな組み合わせを試しましたが、Internal
トラフィックを許可する豊富なルールを使用してもk1はk2に接続できず、デバッグログに拒否メッセージが表示されます。
vagrant@firewall:~$ sudo firewall-cmd --list-all --zone=internal
internal (active)
target: default
icmp-block-inversion: no
interfaces: enp0s8
sources: 172.16.10.51/32
services: ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule protocol value="icmp" accept
rule family="ipv4" source address="172.16.10.0/24" port port="5201" protocol="tcp" log prefix="iperf" level="debug" accept
Jun 30 02:18:13 firewall kernel: "filter_FWD_internal_REJECT: "IN=enp0s8 OUT=enp0s9 MAC=08:00:27:d0:db:54:08:00:27:35:72:b5:08:00 SRC=172.16.10.51 DST=172.16.20.51 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=2173 DF PROTO=TCP SPT=43642 DPT=5201 WINDOW=64240 RES=0x00 SYN URGP=0
両方のインターフェイスを内部ゾーンに追加すると、接続は正常に機能しますが、インターフェイスの1つがそのゾーンに属していない場合、接続は機能しません。
次回の閲覧場所に関するアドバイスを共有できる人はいますか?
ありがとうございます。
答え1
この質問と私の質問に基づいてgithub問題を作成するときに戦略オブジェクトを作成するように指示されました。
関連ブログ投稿はこちら: https://firewalld.org/2020/09/policy-objects-introduction
ポリシー作成の指示に従って問題を解決しました。これが役に立つことを願っています。