[gelöst] Iptables für OpenVPN.... wofür?

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
TomL

[gelöst] Iptables für OpenVPN.... wofür?

Beitrag von TomL » 04.09.2016 20:57:05

Moin

Jetzt gerade lese ich in einem anderen Forum den Hilfegesuch eines Foristen zum Einrichten von OpenVPN auf seinem RPi. Er weist dabei auf ein HowTo im Netz hin. Ich kannte dieses HowTo schon und habs aus Neugier aber trotzdem noch mal angeklickt. Und spannenderweise ist mir jetzt ein Absatz aufgefallen, den ich vorher noch nie registriert hatte:
Nun richten wir die Internetweiterleitung ein, damit später der durch OpenVPN verbundene Computer auch Internetzugriff erhält. Sofern du nicht die Ethernetbuchse deines Raspberry Pis nutzt (z.B. W-LAN) musst du eth0 im folgenden Kommando durch den Namen deines Netzwerkadapters ersetzen. Wie dieser heißt, findest du mittels ifconfig heraus.

sudo sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Beim Lesen dachte ich mir "Häh, habe ich doch noch nie gemacht.... und es funktioniert seit jeher trotzdem perfekt.". Ich habe darauf noch mal gezielt in andere (früher mal gesicherte) HowTo-Urls reingesehen und prinzipiell das gleiche vorgefunden. Alle sehen diese iptables vor. Warum brauch man diesen Eintrag, wenn es doch anscheinend auf meinem RPi problemlos auch ohne möglich ist, von unterwegs via DynDNS-Zugriff sicher mit Handy oder Notebook oder Tablett über den OpenVPN-Client zu surfen?

Nachtrag:
Habe jetzt gerade hier auch noch mal reingesehen, da steht auch das gleiche drin, als wenn das unbedingt sein muss. Ich bin jetzt ein wenig unsicher, ob bei mir was faul ist, weils auch ohne geht.
http://wiki.openvpn.eu/index.php/Konfig ... ng_und_NAT
Zuletzt geändert von TomL am 05.09.2016 21:27:07, insgesamt 1-mal geändert.

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Re: Iptables für OpenVPN.... wofür?

Beitrag von pdreker » 04.09.2016 21:59:38

Der erste Eintrag erlaubt prinzipiell überhaupt, dass der Linux Rechner Pakete weiterleitet, die nicht für Ihn selbst bestimmt sind und die iptables Rule sorgt dafür, dass da ein entsprechendes Source-NAT (eigtl.: Masquerading) aufgesetzt wird, damit die alle die IP des Routers in Richtung Internet verwenden.

Wenn dein OpenVPN Endpoint nicht auch gleichzeitig Dein Internet Router ist (also ein Fritz!Box o.ä. z.B. noch bei Dir läuft, die den Internet-Anschluss managed), dann kann es gut sein, dass Dein eigentlicher INet Router das erledigt. Wenn die OpenVPN Kiste im LAN ist und Du ein L3 VPN hast, dann fallen die Pakete normalerweise einfach irgendwo raus (tun device) und jetzt müssen die irgendwo hin... Dafür braucht man die obigen Einträge. Wenn Du ein L2 VPN hast (tap Device), dann ist das üblicherweise an eine Bridge im Linux angeschlossen und das ist nicht nötig.

Hast Du ein separates Subnetz, für die VPN Clients? Also internes LAN ist 192.168.1.0/24 und die VPN Clients bekommen 192.168.123.0/24? Dann brauchst Du Routing und die obigen Einträge (d.h.: L3 VPN). Wenn Deine VPN Clients im gleichen Netz landen, wie Dein internes LAN (192.168.1.0/24 also), dann ist das ein L2 VPN und Du brauchst das nicht.

Alle Klarheiten beseitigt? ;-)

lg,
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

TomL

Re: Iptables für OpenVPN.... wofür?

Beitrag von TomL » 04.09.2016 22:41:08

Hi Patrick

Danke für Deine Hilfe!
pdreker hat geschrieben:Alle Klarheiten beseitigt?
Nee, jetzt hast Du vollends für Verwirrung gesorgt :D Ok, ich versuch mal, das Dilemma zu erklären.
pdreker hat geschrieben:Hast Du ein separates Subnetz, für die VPN Clients? Also internes LAN ist 192.168.1.0/24 und die VPN Clients bekommen 192.168.123.0/24? Dann brauchst Du Routing und die obigen Einträge (d.h.: L3 VPN ). Wenn Deine VPN Clients im gleichen Netz landen, wie Dein internes LAN (192.168.1.0/24 also), dann ist das ein L2 VPN und Du brauchst das nicht.
Das IP-Forwarding war mir klar, das ist natürlich aktiviert. Aber das mit den iptables ist jetzt vollends konfus. Gemäß Deiner Erklärung habe ich wohl ein L3 VPN. Das heisst, weil meine Clients (die Mobilgeräte) ein eigenes Netz haben. Mein LAN zuhause hat das Netz 10.10.1./24, die VPN-Clients unterwegs das Netz 10.10.2/24.

Die OpenVPN-Server-Conf enthält die (meiner Meinung nach hier relevanten) folgenden Einträge:

Code: Alles auswählen

push "redirect-gateway def1 bypass-dhcp"
#verwendete DNS-Server lt. Fritzbox
push "dhcp-option DNS 62.220.18.8"
push "dhcp-option DNS 89.246.64.8" 
push "route 10.10.1.0 255.255.255.0"
Und ja, mein RPi hängt natürlich via eth0 hinter meiner Fritte, die das heimische Netz 10.10.1/24 repräsentiert. Die Fritte erledigt auch die Port-Weiterleitung für OpenVPN auf den PI. Dieser Pi hat natürlich eine ganz reguläre LAN-IP. Die Mobil-Geräte verbinden sich mit der heimischen WAN-IP via DynDNS. Und sofort ist der heimische Server mit allen Ressourcen erreichbar, und ich sehe auf dem Mobil-Gerät auf WhatIsMyIP die heimische IP anstatt der von EPlus, die ich sonst sehe, wenn ich über mein Handy ins Netz gehe. Also es funktioniert bestens, obwohl ich keine iptables gesetzt habe und obwohl Du der Meinung bist, ich würde das brauchen...... und das verstehe ich einfach nicht :roll:

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Re: Iptables für OpenVPN.... wofür?

Beitrag von pdreker » 04.09.2016 23:29:01

In dem Fall reicht das IP Forwarding - Dein INet Router macht das Masquerading wahrscheinlich unabhängig von der Source IP einfach für alle. Anders gesagt: Dein INet Router macht schon genau das, was die iptables Regel macht ;-)
Definitely not a bot...
Jabber: pdreker@debianforum.de

TomL

Re: AW: Iptables für OpenVPN.... wofür?

Beitrag von TomL » 05.09.2016 11:33:05

Moin Patrick

Danke für die Erklärungen. Jetzt habe ich nur noch eine Schlussfolgerungsfrage. Wenn ich meine alte Fritte gegen einen moderneren (Consumer-)Wlan-Router mit mehr als nur einen Gigabit-Port tauschen möchte, könnte es dann sein, dass der das anders handelt und ich dann die iptables benötige? Oder ist so ein Routerverhalten -wie das meiner Fritte- eher als Standard zu betrachten ?

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Re: Iptables für OpenVPN.... wofür?

Beitrag von pdreker » 05.09.2016 21:18:41

Nö, sollte nicht so sein. "Sollte" weil ich nicht weiss, was hier alles so auf dem Markt rumfliegt ;-) Bei meiner Juniper SRX musste ich das explizit aktivieren, das ist aber auch eine andere Liga ;-) Das Verhalten ist für alles, was ein "normaler" DSL Router ist, als Standard anzusehen.

lg,
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

TomL

Re: Iptables für OpenVPN.... wofür?

Beitrag von TomL » 05.09.2016 21:26:49

Danke! :THX:

Antworten