OpenVPN

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
_ash
Beiträge: 1219
Registriert: 13.05.2005 12:35:02

OpenVPN

Beitrag von _ash » 29.08.2011 15:01:01

Ich habe auf einem Strato vServer einen OpenVPN Server aufgesetzt, den ich gerne unterwegs nutzen möchte, wenn ich mit Laptop in öffentlichen WLANs unterwegs bin.
Aufsetzen hat funktioniert, ich kann mich auch vom Laptop (per NetworkMananger eingerichtet) auf den VPN Server verbinden und bekomme vom Host auch Antwort auf Ping-Anfragen.
Mehr geht allerdings nicht; weder per Konsole noch per Browser werden Websitenaufrufe beantwortet.

Ich habe versucht, IP Forwarding in der sysctl.conf einzurichten, sowie Masquerading per iptables, bin aber auf keinen funktionierenden Zweig gekommen. Hat mir jmd Tipps, was ich hier wie einrichten muss? Danke.

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: OpenVPN

Beitrag von syssi » 29.08.2011 19:01:58

Hi,

du hast die entscheidenden beiden Punkte genannt. Bei Masquerade musst du sicherstellen, dass das entsprechende Modul geladen wurde:

Code: Alles auswählen

lsmod | grep ipt_MASQUERADE
Bei vielen vServer kann man keine Module laden und ist deshalb gekniffen. Such mal im Netz nach vServer und openvpn in Kombination.

_ash
Beiträge: 1219
Registriert: 13.05.2005 12:35:02

Re: OpenVPN

Beitrag von _ash » 29.08.2011 19:20:05

Grundsätzlich scheint das ja zu funktionieren, da ich vom Client (Laptop) den Host pingen kann. ifconfig auf dem vServer sagt auch u.a.:

Code: Alles auswählen

tun0      Link encap:UNSPEC  Hardware Adresse 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet Adresse:10.8.0.1  P-z-P:10.8.0.2  Maske:255.255.255.255
          UP PUNKTZUPUNKT RUNNING NOARP MULTICAST  MTU:1500  Metrik:1
          RX packets:412 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:100 
          RX bytes:30144 (29.4 KiB)  TX bytes:1344 (1.3 KiB)
Wie/wo genau muss ich Masquerading einrichten? Auf dem Server oder auf dem Client?

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: OpenVPN

Beitrag von syssi » 29.08.2011 19:30:06

Dein Server wird als Gateway benutzt, um Pakete ins Internet zu schicken. Kontaktiert ein VPN-Client, sagen wir mal dein Laptop eine Webseite im Netz, dann werden IP-Pakete ausgehend von deiner VPN-Client IP an die Webseite geschickt. Ohne Masquerading schickt dein Server IP-Pakete mit einer lokalen IP-Adresse ins Netz. Diese kommen vermutlich auch beim entsprechenden Webserver an, dieser ist jedoch nicht in der Lage eine Antwort zu dir zu routen.

Es sieht also etwa so aus (pures ip_forwarding):

Client: 10.8.0.3 -> 193.99.144.80
Server: 193.99.144.80 -> 10.8.0.3 Antwort verschwindet in einem großen Loch.

So sollte es aussehen:

Client: 10.8.0.3 -> 193.99.144.80 (das Paket passiert deinen Server, dieser baut das Paket um zu:)
oeffentliche-ip-deines-servers:neuer-port -> 193.99.144.80

Nun kann der Webserver ordentlich Antworten. Dein Server fuehrt eine "kleine" Tabelle, ueber welche er sieht, dass die Antwort an deinen Client weitergereicht werden muss.

Fazit: Du benoetigst ein Masquerading auf deinem Server oder du musst einen Proxy (vllt sogar socks5?) aufsetzen und ueber diesen deinen Traffic routen.

_ash
Beiträge: 1219
Registriert: 13.05.2005 12:35:02

Re: OpenVPN

Beitrag von _ash » 29.08.2011 19:34:46

Für die Nachwelt: die Lösung sollte dann in etwas so aussehen:

Code: Alles auswählen

iptables -t nat -A POSTROUTING -o venet0 -s 10.8.0.0/24 -j SNAT --to 12.34.56.78
Wobei die IP durch die statische des Servers zu ersetzen ist.

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: OpenVPN

Beitrag von syssi » 29.08.2011 21:02:44

Perfekte Loesung! :-)

Antworten