DNAT do stejné sítě

V menších firmách, bez odděleného DMZ okruhu, probíhá na routeru redirekce na některý ze strojů ve vnitřní LAN. Pokud však zároveň stroje z LAN přistupují k příslušné veřejné adrese, provede i v jejich případě router redirekci. Protože v rámci takového DNAT nedojde k úpravě zdrojové adresy, cílový server odpovídá zdroji napřímo. Tím jde odpověď mimo router a nemůže dojít ke zpětné modifikaci DNATového spoje.

Tento problém lze řešit nejlépe zavedením DMZ nebo alespoň úpravou DNS záznamů tak, aby stroje vnitřního okruhu mohly jít v rámci LAN přímo. Pokud to není možné, tak je nutno použít kombinace DNAT a SNAT.

Nejprve router přesměruje tok ze své veřejné adresy A.B.C.D na vnitřní K.L.M.N, jak je běžné:

# iptables -t nat -A PREROUTING -d A.B.C.D -p tcp --dport 80 -j DNAT --to K.L.M.N

V rámci preroutingu tímto procesem projdou i pakety ze strojů z lokální LAN, pokud přistupují k A.B.C.D. Opravíme tedy u takto zmodifikovaných paketů ještě zdrojovou adresu tak, aby se cílovému serveru zdálo, ze s ním komunikuje router a že mu tedy musí odpovídat. Tím se mohou na odpovědi provést všechny potřebné reverzní operace. Adresa routeru v LAN nechť je O.P.Q.R a maska LAN je MASK:

# iptables -t nat -A POSTROUTING -d K.L.M.N -s K.L.M.N/MASK -p tcp --dport 80 -j SNAT --to O.P.Q.R

Finální nastavení pak má například tuto podobu (cílový server je 192.168.0.56 a adresy routeru jsou 4.4.4.4 a 192.168.0.1):

# iptables -t nat -A PREROUTING -d 4.4.4.4 -p tcp --dport 80 -j DNAT --to 192.168.0.56
# iptables -t nat -A POSTROUTING -d 192.168.0.56 -s 192.168.0.0/24 -p tcp --dport 80 -j SNAT --to 192.168.0.1

-- LeoGalambos - 27 Oct 2018
Topic revision: r1 - 27 Oct 2018, LeoGalambos
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback