o encaminhamento de porta do firewalld interrompe o tráfego de saída nessa porta

o encaminhamento de porta do firewalld interrompe o tráfego de saída nessa porta

Estou usando um computador Linux como gateway/firewall entre a rede mais ampla e alguns servidores.

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

Esta configuração funciona bem como gateway. Os nós downstream podem acessar a Internet sem problemas e posso encaminhar solicitações 80do gateway para 8000o servidor com firewall-cmd.

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

No entanto, depois que eu executo esse comando e o encaminhamento de porta é iniciado, o servidor ( 10.0.0.100) não consegue mais acessar a WANporta on 80. Isso é um problema porque significa que o servidor não consegue alcançar nenhum tráfego HTTP na Internet.

O servidor pode curlqualquer recurso da Internetexcetose estiver na porta 80enquanto a regra de encaminhamento estiver em vigor.

O gateway possui apenas uma NIC física e está na externalzona, o que permite o mascaramento.

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

Provavelmente estou sentindo falta de algum princípio fundamental sobre redes que está me impedindo de entender esse problema.

Minha suposição é que a regra de encaminhamento torna isso tãotodoso tráfego da porta 80 (entrada ou saída) está ficando confuso, quando na verdade eu só quero que o tráfego de entrada de 80 seja encaminhado para 8000 para meu servidor.

A configuração da rede está possivelmente errada? Ou há algo firewalldinválido sobre como estou usando?

Responder1

Talvez iptablesou firewalldpossa ser usado no meu cenário para encaminhar para máquinas específicas na sub-rede downstream, mas não consegui descobrir como fazê-lo funcionar.

Isso pode não ser o ideal, mas minha solução alternativa foi criar um serviço systemd em minha gatewaymáquina que socatencaminha o tráfego em uma porta específica para um IP específico.

Este é o script que é executado para gatewayencaminhar portas 80e 443para arquivos 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

informação relacionada