ファイアウォールポートフォワーディングはそのポートのアウトバウンドトラフィックを中断します。

ファイアウォールポートフォワーディングはそのポートのアウトバウンドトラフィックを中断します。

私はLinuxシステムをより広いネットワークといくつかのサーバー間のゲートウェイ/ファイアウォールとして使用します。

WAN -> [ 192.x | GATEWAY (Linux) | 10.x ]  -> [ 10.0.0.100 | SERVER (Linux) ]

この構成はゲートウェイとしてうまく機能します。ダウンストリームノードはインターネットへのアクセスが良好で、.portを使用して80ゲートウェイからサーバーに要求を転送できます。8000firewall-cmd

firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.0.0.100:toport=8000

しかし、、コマンドを実行してポート転送が開始されると、サーバー()はもうポート10.0.0.100に戻ることができません。これは、サーバーがインターネット上のどのHTTPトラフィックにもアクセスできないという意味であるため、問題になります。WAN80

サーバーは任意のcurlインターネットリソースにすることができます。とは別に80転送ルールが適用されたときにポートに存在する場合。

ゲートウェイには物理ネットワークカードが 1 つしかなく、ゾーン内にあるため、偽装することexternalができます。

gateway:$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether dc:a6:32:1b:40:9e brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.0.0.1/24 brd 10.0.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::dea6:32ff:fe1b:409e/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether dc:a6:32:1b:40:9f brd ff:ff:ff:ff:ff:ff
gateway:$ ip route
default via 192.168.0.1 dev eth0 onlink
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.2

ネットワーキングに関するいくつかの基本的なテナントが欠落しており、この質問を理解していないようです。

私の仮定は、転送ルールがそうすることです。みんなポート80トラフィック(インバウンドまたはアウトバウンド)が破損しています。実際には、ポート80インバウンドトラフィックだけが私のサーバーの8000に転送しようとしています。

ネットワーク設定エラーかもしれませんか?それとも私の使い方にfirewalld間違ったことがありますか?

答え1

iptablesダウンストリームサブネットを特定のシステムにポート転送するために私のシナリオで使用することもできますが、どのように機能するfirewalldかわかりません。

gatewaysocatこれは理想的ではないかもしれませんが、私の回避策は、特定のポートからのトラフィックを特定のIPに転送するシステムサービスを自分のコンピュータに作成することでした。

gateway以下は、転送されたポートで実行されるスクリプトです8044310.0.0.100

firewall-cmd --zone=external --add-port=80/tcp
socat TCP4-LISTEN:80,fork TCP4:10.0.0.100:80 &
firewall-cmd --zone=external --add-port=443/tcp
socat TCP4-LISTEN:443,fork TCP4:10.0.0.100:443 &
wait

関連情報