Nastny Poprzedni Spis Trei

10. Docelowy NAT (DNAT) do tej samej sieci

Jeśli wykonujesz przekazywanie portów (ang. portforwarding) do tej samej sieci, musisz upewniæ siê że zarówno przyszłe pakiety jak i odpowiedzi na nie przejdą przez maszynê prowadzącą NAT (by mogły byæ zmodyfikowane). Kod odpowiedzialny za NAT blokuje obecnie (od 2.4.0-test6) wychodzące pakiety przekierowujące ICMP (ang. ICMP redirect), które produkowane są w momencie gdy pakiety po przejściu przez NAT wychodzą tym samym interfejsem do którego dotarły, ale maszyna do której są skierowane nadal stara siê odpowiedzieæ bezpośrednio do klienta (który nie rozpozna odpowiedzi).

Klasycznym przykładem jest próba dostêpu przez personel wewnêtrzny do 'publicznego' serwera WWW, który tak naprawdê przesłoniêty jest przez DNAT z publicznego adresu (1.2.3.4) na adres sieci wewnêtrznej (192.168.1.1), tak jak poniżej:

# iptables -t nat -A PREROUTING -d 1.2.3.4 \
        -p tcp --dport 80 -j DNAT --to 192.168.1.1

Jednym ze sposobów jest utrzymywanie wewnêtrznego serwera DNS który zna prawdziwe (wewnêtrzne) adresy IP publicznego serwera WWW i przekazuje wszystkie inne wywołania do zewnêtrznego serwera DNS. Oznacza to że logowanie dostêpu na twoim serwerze WWW wskaże adresy IP z sieci wewnêtrznej poprawnie.

Innym sposobem jest zapewnienie, by maszyna prowadząca NAT mapowała również źródłowy adres IP na jej własny, dla połączeñ tego typu, ogłupiając serwer i sprawiając by odpowiadał przez nią. W tym przykładzie, wykonujemy co nastêpuje (zakładając że wewnêtrzny adres IP komputera prowadzącego NAT to 192.168.1.250):

# iptables -t nat -A POSTROUTING -d 192.168.1.1 -s 192.168.1.0/24 \
        -p tcp --dport 80 -j SNAT --to 192.168.1.250

Ponieważ reguła PREROUTING jest sprawdzana pierwsza, pakiety bêdą od razu skierowane do wewnêtrznego serwera WWW: możemy stwierdziæ które wywołania pochodzą z sieci wewnêtrznej sprawdzając źródłowe adresy IP.


Nastny Poprzedni Spis Trei