User Tools

Site Tools


it:site:netfilter

This is an old revision of the document!


Netfilter

DNAT do stejné sítě

Komunikace na veřejně publikovaný server ze stejné vnitřní sítě

Pokud provádíme port forwarding zpět do stejné sítě, musíme zajistit, že projde i paket s odpovědí přes NAT box, jinak by nedošlo k dokončení TCP handshake a spojení by se nenavázalo. Server přijímající požadavek je totiž ve stejné síti jako klient, a proto se pokusí poslat odpověď přímo klientovi (odpověď přijde z jiné adresy, než na kterou byl odeslán požadavek).

Pokud máme například DNATovaný webserver:

iptables -t nat -A PREROUTING -d $VEREJNA_IP_SERVERU -p tcp --dport 80 -j DNAT --to $INTERNI_IP_SERVERU

Je nutné pro tato popisovaná spojení přemapovat zdrojové adresy spojení na vnitřní adresu NAT boxu, aby server odpovídal přes tuto adresu.

iptables -t nat -A POSTROUTING -d $INTERNI_IP_SERVERU -s $INTERNI_SUBNET_IP -p tcp --dport 80 -j SNAT --to $INTERNI_GW_IP

V POSTROUTINGu používáme interní adresu serveru, protože PREROUTING pravidla byla aplikována už při příchodu paketu (před routing decision).

Přesměrování portů

Lokální přesměrování portů nástrojem iptables v PREROUTING chain

iptables -t nat -A PREROUTING -i eth0 -p tcp -d 10.0.1.92 --dport 443 -j REDIRECT --to-port 9091
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 10.0.1.91 --dport 443 -j REDIRECT --to-port 9081

Lokální přesměrování portů nástrojem iptables-services

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -d 10.0.1.92/32 -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 9091
-A PREROUTING -d 10.0.1.91/32 -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 9081
COMMIT
it/site/netfilter.1521639551.txt.gz · Last modified: 2019/08/02 11:18 (external edit)