iptables Problem (von extern nach intern)

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
GalaXy
Beiträge: 5
Registriert: 21.07.2014 18:05:47

iptables Problem (von extern nach intern)

Beitrag von GalaXy » 21.07.2014 18:21:32

Hallo zusammen,

nach langem herumprobieren und suchen komme ich einfach nicht zur Lösung, daher versuche ich es jetzt mal hier. :)

Folgendes Szenario:

Ich habe einen Server der einen Webdienst über Port 8443 bereitstellt.
Nun möchte ich aus dem Internet heraus auf diesen Server zugreifen, jedoch nicht direkt, sondern über einen "Zwischenserver" der die Weiterleitung übernimmt...
Zudem soll der Server von außen via Port 443 aufgerufen werden.

Internet ---> per https (443) ---> auf Server der zur Weiterleitung dient (iptables) ----> per 8443 ---> auf Webserver.

Das ganze soll über iptables gelöst werden.

Hier einmal Beispielhafte IP-Adressen:

Webserver: 172.16.1.10
Server zur Weiterleitung: 192.168.1.10
Externe IP-Adresse des Servers der die Weiterleitung übernehmen soll: 100.0.0.1
(per NAT auf die interne geschaltet)

Was ich bis jetzt gemacht habe:

Code: Alles auswählen

sysctl -w net.ipv4.ip_forward=1

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 172.16.1.10:8443
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -p tcp -i eth0 -o eth0 -d 172.16.1.10 --dport 8443 -j ACCEPT
Ich kann den Webserver von extern aufrufen, jedoch bleibt die Seite weiß 8O ??
Hab lange weiterprobiert aber komme jetzt nicht mehr weiter...

Danke schonmal für eure Hilfe,

Viele Grüße,
GaLaXy

wanne
Moderator
Beiträge: 7625
Registriert: 24.05.2010 12:39:42

Re: iptables Problem (von extern nach intern)

Beitrag von wanne » 21.07.2014 19:31:07

Wow: 4 ineinander verschachtelte NATs. Das dürfte sogar das was die Mobielfunkanbieter praktizieren übertreffen.

Zuerstmal grundliegend: 172.16.1.10 liegt erstmal nicht im Internet. Du brauchst alsi erstmal ein Gerät im Internet, dass dahin weitereliten kann. (Und im gleichen Intranet hängt.)
Dazu kommt, dass der Server auf port 8443 bei einer blosen weiterleitung natürlich auch https sprechen muss.

Sonst stimmt deine iptables regel.

Achso: Dein Gerät soll ja nur als NAT nicht als Router arbeiten. net.ipv4.ip_forward=1 und
iptables -A FORWARD -p tcp -i eth0 -o eth0 -d 172.16.1.10 --dport 8443 -j ACCEPT
Müsstest du dir entsprechend schenken können.
rot: Moderator wanne spricht, default: User wanne spricht.

GalaXy
Beiträge: 5
Registriert: 21.07.2014 18:05:47

Re: iptables Problem (von extern nach intern)

Beitrag von GalaXy » 22.07.2014 14:32:58

Also der Webserver liegt im Intranet und ist von diesem aus erreichbar. Für Updates etc. geht er über einen Proxy ins Internet.

Der Server für die Weiterleitung hängt in einem anderen Netz (DMZ) als der Webserver.
Dieser ist aus dem Internet über eine IP und einen DNS-Eintrag erreichbar.

Wenn also der Server für die Weiterleitung (192.168.1.10) per IP oder DNS-Eintrag aufgerufen wird, soll dieser eine Weiterleitung auf den internen Webserver tätigen.
Ich hatte einen Fehler am Webserver, weshalb mir nur eine weiße Seite angezeigt wurden, war also im Endeffekt mein Fehler.

So klappt es auf jeden Fall:

Code: Alles auswählen

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 172.16.1.10:8443
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -P FORWARD ACCEPT
Die FORWARD Regel muss aktiviert sein!
Warum erklärt dieses Bild: http://www.wikidorf.de/reintechnisch/up ... ruktur.gif
(Nach dem PREROUTING bzw. dem POSTROUTING geht es ja über die FORWARD weiter...

net.ipv4.ip_forward=1 kann man sich aber schenken... geht auch ohne.

Nun habe ich auf dem 192.168.1.10 INPUT und OUTPUT noch deaktivert:

Code: Alles auswählen

iptables -P INPUT DROP
iptables -P OUTPUT DROP
Ich hätte aber gerne eine FORWARD Regel welche nur die PREROUTING Regel durchlässt.. Oder spielt das Sicherheitstechnisch keine Rolle ob man diese komplett öffnet :?:


----

Und macht es Sinn anstatt MASQUERADE SNAT zu nutzen?

wanne
Moderator
Beiträge: 7625
Registriert: 24.05.2010 12:39:42

Re: iptables Problem (von extern nach intern)

Beitrag von wanne » 22.07.2014 15:34:11

Mir fälltkein weg ein, wie bei net.ipv4.ip_forward=0 etwas in die FORWARD-chain gelangen soll.
rot: Moderator wanne spricht, default: User wanne spricht.

GalaXy
Beiträge: 5
Registriert: 21.07.2014 18:05:47

Re: iptables Problem (von extern nach intern)

Beitrag von GalaXy » 22.07.2014 16:45:05

Wenn ich diese Regeln habe:

Code: Alles auswählen

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 172.16.1.10:8443
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -P FORWARD DROP
funktioniert es nicht...


nutze ich

Code: Alles auswählen

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 172.16.1.10:8443
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -P FORWARD ACCEPT
klappt es :?: :lol:

Also gehe ich davon aus das es was damit zu tun haben muss..

GalaXy
Beiträge: 5
Registriert: 21.07.2014 18:05:47

Re: iptables Problem (von extern nach intern)

Beitrag von GalaXy » 23.07.2014 10:48:52

wanne hat geschrieben:Mir fälltkein weg ein, wie bei net.ipv4.ip_forward=0 etwas in die FORWARD-chain gelangen soll.
Tschuldigung... Hast recht unter

/etc/sysctl.conf war es noch aktiv:
net.ipv4.ip_forward=1

Also es klappt mit

Code: Alles auswählen

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 172.16.1.10:8443
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.10
iptables -P FORWARD ACCEPT
(Das MASQUERADE habe ich durch SNAT getauscht, da der Server der zur Weiterleitung dient eine statische IP eingetragen hat...)

Mir fehlt jedoch immer noch eine Regel in der ich im FORWARD nur die PREROUTING Regel durchlassen kann...
(Oder macht das keinen Sinn??)

GalaXy
Beiträge: 5
Registriert: 21.07.2014 18:05:47

Re: iptables Problem (von extern nach intern)

Beitrag von GalaXy » 23.07.2014 16:54:16

Nach langer fummelei hab ichs nun :-)

Code: Alles auswählen

#Alles droppen:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#Weiterleitung Tabelle nat:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 172.16.1.10:8443
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.10

#Weiterleitung FORWARD Chain:
iptables -A FORWARD -p tcp -i eth0 -o eth0 -d 172.16.1.10 --dport 8443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 -s 172.16.1.10 --sport 8443 -o eth0 -m state --state ESTABLISHED -j ACCEPT
Vielleicht hilfts ja jemandem. :THX:

Antworten