DNAT + Masquerading mit iptables

18/08/2009 - 16:03 von Joern Bredereck | Report spam
Hallo,

helft mir doch bitte mal kurz auf die Sprünge:

1. Ein DSL-Router soll zum einen das Netz 192.168.116.0/24 über sein
ppp0-Interface ins Internet masquerieren (naten).

2. Der Router soll ausserdem per DNAT den POP3-Port (110) eines
POP3-Servers (192.168.116.2) im LAN aus dem Internet erreichbar machen.

3. Der POP3-Server soll unter der Adresse auf ppp0 ebenfalls aus dem LAN
erreichbar sein.


1+2 ist ein Kinderspiel. Aber 3 bekomme ich nicht hin. Sobald ich
versuche mich aus dem LAN auf den POP3-Port (110) der externe IP (ppp0)
zu verbinden, bekomme ich keine Verbindung.

Von ausserhalb funktioniert das DNAT, der POP3-Server ist erreichbar.
Und das "normale" NATing funktioniert natürlich auch.

Woran kann's liegen? Wie müssten die IPtables-Regeln für dieses Setup
korrekterweise aussehen? Müsste die Prerouting-DNAT-Regel für's Internet
nicht auch für das LAN greifen?


Gruß,

Jörn
 

Lesen sie die antworten

#1 Martin Schmitz
18/08/2009 - 16:26 | Warnen spam
Joern Bredereck wrote:
Von ausserhalb funktioniert das DNAT, der POP3-Server ist erreichbar.
Und das "normale" NATing funktioniert natürlich auch.

Woran kann's liegen? Wie müssten die IPtables-Regeln für dieses Setup
korrekterweise aussehen? Müsste die Prerouting-DNAT-Regel für's
Internet nicht auch für das LAN greifen?



Viele Router bieten sowas unter dem Stichwort "NAT loopback" an, das
wàre auch das geeignete Stichwort für eigene Google-Recherchen. Wenn
mich nicht alles tàuscht, ist das eine Kombination aus DNAT und SNAT.
Bei mir auf dem Router sieht das z.B. so aus:

# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
[...]
DNAT tcp -- 0.0.0.0/0 192.168.178.22 tcp dpt:80 to:10.247.28.3
[...]
Chain POSTROUTING (policy ACCEPT)
[...]
SNAT tcp -- 10.247.28.0/28 10.247.28.3 tcp dpt:80 to:10.247.28.1

192.168.178.22 ist meine ext. IP, das 10er-Netz mein internes. .1 der
Router, .3 der Host im LAN, der auch aus dem LAN über die öffentliche
IP erreichbar ist.

Martin

Ähnliche fragen