Portas Foward com regras NAT do iptables?

0

Estou tentando encaminhar portas com as regras NAT do iptables, mas parece que não funciona.

Portanto,queroqueotráfegodoNATnº1emumintervalodeportasespecíficováparaumservidorespecíficoemumgrupodeservidoresetrafeguedoNATnº2paraoutrogrupodeservidores.

Eutenhoqueusaro"servidor NAT" 192.168.1.10 como SNAT, caso contrário, o FW perderá o tráfego.

Eu tentei o seguinte no "servidor NAT",

Example A - NAT#1 port 4000 to Server Group A

sudo iptables -t nat -A PREROUTING -p tcp -d 192.168.1.20 --dport 4000 -j DNAT --to-destination 192.168.1.100
sudo iptables -t nat -A POSTROUTING -s 192.168.1.100 -j SNAT --to 192.168.1.10

Example B - NAT#2 port 5000 to Server Group B

sudo iptables -t nat -A PREROUTING -p tcp -d 192.168.1.30 --dport 5000 -j DNAT --to-destination 192.168.1.201
sudo iptables -t nat -A POSTROUTING -s 192.168.1.201 -j SNAT --to 192.168.1.10

Seria ótimo com alguma entrada, eu não trabalhei com regras de firewall Linux mais "complicadas" antes.

Atenciosamente, Bjorn

UPDATE

I have to use the "NAT server" 192.168.1.10 as SNAT otherwise the FW will drop the traffic.

Hmmm ... Isso funciona, mais ou menos.

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 destination address=192.168.1.20 forward-port port=4000-4010 protocol=tcp to-addr=192.168.1.100'
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 destination address=192.168.1.30 forward-port port=4000-4010  protocol=tcp to-addr=192.168.1.200'
sudo firewall-cmd --reload

mas não com uma zona. Enquanto escrevem no doc do firewall RedHat,

Uma regra está associada a uma zona específica. Uma zona pode ter várias regras. Se algumas regras interagem ou contradizem, a primeira regra que corresponde ao pacote se aplica.

Então eu tenho que usar duas zonas. Isso é possível com dois aliases?!?

Atenciosamente,

Bjorn

UPDATE

Isso funcionou ...

firewall-cmd --permanent --direct --add-rule ipv4 nat PREROUTING 0  -p tcp -m tcp -d "nat_alias" --dport "ext_port" -j DNAT --to-destination "server_ip":"int_port"
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -m state -p tcp -d "server_ip" --dport "int_port" --state NEW,ESTABLISHED,RELATED -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -t nat -p tcp -m tcp -s "server_ip" --sport "int_port" -j SNAT --to-source "nat_ip"

Atenciosamente

Bjorn

    
por Bjosve 13.12.2016 / 14:21

1 resposta

0

Você deve fazer NAT / SNAT primeiro depois que você usar o endereço IP NAT / SNAT para encaminhar a porta. Talvez você precise separar as regras de iptable.

    
por 13.12.2016 / 16:13