Die Portweiterleitung von Firewalld unterbricht den ausgehenden Datenverkehr auf diesem Port

Die Portweiterleitung von Firewalld unterbricht den ausgehenden Datenverkehr auf diesem Port

Ich verwende einen Linux-Computer als Gateway/Firewall zwischen dem größeren Netzwerk und einigen Servern.

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

80Diese Konfiguration funktioniert gut als Gateway. Downstream-Knoten können problemlos auf das Internet zugreifen, und ich kann Anfragen für das Gateway an 8000den Server mit weiterleiten firewall-cmd.

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

Jedoch, sobald ich diesen Befehl ausführe und die Portweiterleitung beginnt, 10.0.0.100kann der Server ( ) nicht mehr den WANPort 80erreichen. Das ist ein Problem, weil es bedeutet, dass der Server keinen HTTP-Verkehr im Internet erreichen kann.

Der Server kann curljede Internetressourceaußerwenn es sich am Port befindet, 80während diese Weiterleitungsregel aktiv ist.

Das Gateway verfügt nur über eine physische Netzwerkkarte und befindet sich in der externalZone, die Masquerading ermöglicht.

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

Wahrscheinlich übersehe ich einen grundlegenden Grundsatz zur Vernetzung, der mich daran hindert, dieses Problem zu verstehen.

Ich gehe davon aus, dass die Weiterleitungsregel dies ermöglicht.alleDer Datenverkehr auf Port 80 (eingehend oder ausgehend) wird durcheinandergebracht, obwohl ich eigentlich nur möchte, dass der eingehende Datenverkehr von Port 80 an 8000 für meinen Server weitergeleitet wird.

Ist die Netzwerkkonfiguration möglicherweise falsch? Oder ist etwas an meiner Nutzung firewalldungültig?

Antwort1

Vielleicht iptablesoder firewalldkann es in meinem Szenario verwendet werden, um die Portweiterleitung an bestimmte Maschinen im Downstream-Subnetz durchzuführen, aber ich konnte nicht herausfinden, wie ich es zum Laufen bekomme.

Dies ist möglicherweise nicht ideal, aber meine Problemumgehung bestand darin, auf meiner gatewayMaschine einen systemd-Dienst zu erstellen, der socatden Datenverkehr auf einem bestimmten Port an eine bestimmte IP weiterleitet.

Dies ist das Skript, das auf meinem Server ausgeführt wird, gatewayum die Ports weiterzuleiten 80und 443an 10.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

verwandte Informationen