Moin Horst
Horst86 hat geschrieben:Mein Heimnetzwerk über einen Raspberry Pi mit OpenVPN von außen zugänglich machen. Da ich oft beruflich unterwegs bin muss ich häufig von außen an meine Daten oder auch mal etwas über VNC zuhause machen. Dabei soll der Internettraffic aber nicht durch den Tunnel geleitet werden.
Zusätzlich muss ich meiner Familie zeitweise Hilfestellung geben.
d.h.
Position A (mein Zuhause)
Position B (ich Unterwegs)
Position C (Haus meiner Mutter)
Position D (Wohnung meiner Schwester)
Von Position B also über A auf Position C und/oder D per VNC zugreifen um Hilfestellung leisten zu können. Das mache ich zur Zeit per Hamachi.
Ganz schön kompliziert.... das bedeutet also, auf dem Raspi läuft der OpenVPN-Server, und auf diesem Server A sind (u.U. auch alle gleichzeitig) also die Standorte B,C und D als Clients im Netz angemeldet oder sollen sich künftig verbinden können. Also, was jetzt imho relativ einfach ist, ist die Anmeldung der 3 Clients am Server, jeder für sich.... das würde ich als erstes umsetzen. Und im 2. Schritt schauen, ob die Clients sich untereinander anpingen können. Das müsste ich mal testen mit unseren 2 Androiden, die sich jeweils via UMTS einloggen können, ob das klappt.
Nur sobald ich einen Client verbunden habe, hat dieser kein Internet mehr.
Nach ein wenig googlen habe ich es, nach dieser Anleitung
klick geschafft eine Internetweiterleitung einzurichten. Es war nur als Test gedacht da bei dieser Konfiguration der gesamte Traffic durch den Tunnel geht und die Internetverbindung einiges an Geschwindigkeit einbüßt
Wie muss ich mein VPN konfigurieren damit der Internettraffic nicht durch den Tunnel geleitet wird?
Das einzige was ich gefunden habe ist das ich die Zeile
in der config meines Servers auskommentieren soll.
Diese Zeile ist aber gar nicht vorhanden.
Das ist eigentlich eine Default-Einstellung vom OpenVPN, dass nur der Traffic für das VPN-Netz durch den Tunnel geht und der "andere" Internet-Traffic das lokale default-Gateway nutzt. Wenn das anders sein soll, das also auch der Internet-Traffic durch den Tunnel gehen soll, muss man das eigentlich explizit vorgeben.
Meine Configdateien sind alle so wie sie das Wiki vorgeben.
Genau an dem Punkt würde ich jetzt auch anfangen, das Problem zu lösen... und zwar, in dem ich diese beiden Configs erst mal lösche...
Ich würde da jetzt mal nen kleineren Gang einlegen und mit einer Minimal-Conf erstmal eine funktionierende Verbindung aufbauen.
1. Ich würde jetzt zu Beginn die folgenden "Fakten" feststellen, bzw. prüfen:
- Wie lautet das Netzwerk, welches Dein Heim-Router zuhause repräsentiert? Es sieht aus, als wäre es das Netz 192.168.178/24. Der Router wird vermutlich also die LAN-IP 192.168.178.1 innehaben...?... ist das richtig?
- Das VPN-Netz lautet 10.8.0./24. Der VPN-Server-PC (also der Raspi) wird also zwei IP haben, zum einen die des lokalen LANs, z.b. 192.168.178.10, und zum anderen die des VPN, z.B. 10.8.0.2
2. Dann ist folgendes zu tun:
- Auf dem Router muss sichergestellt werden, dass der Raspi nach einem Systemstart IMMER die gleiche IP bekommt, sonst funktioniert das nicht mit der Port-Weiterleitung und der statischen Route. Also ist auf dem Router die IP für den Raspi unbedingt exklusiv zu reservieren.
- Nehmen wir an, der Raspi hat im VPN-Netz die IP 10.8.0.2, dann muss auf dem Router eine statische Route eingerichtet werden. Das sieht etwa so aus und definiert eine Route für ein Paket aus dem VPN-Netz zum VPN-Gateway "Raspi".
Statische Route:
Code: Alles auswählen
Name der Route: OpenVPN
Route ist privat (nur LAN): unchecked
Route ist aktiv: checked
IP-Zieladresse: 10.8.0.0
Subnet-Maske: 255.255.255.0
Gateway-IP-Adresse: 192.168.178.10
Metrik: 2 (1 o. 2)
3. Weiterhin muss auf dem Router die Portfreigabe und eine entsprechende Weiterleitung eingerichtet werden. Also in Deinem Beispiel wird der Port 1194 ebenfalls an den Raspi 192.168.178.10 weitergeleitet. Wobei ich sofort einen anderen Port wählen würde, irgendwas zwischen 49.152 und 65.535.
4. Als letztes ist der Raspi zu konfigurieren, und zwar muss das IP-Forwarding erlaubt werden, in dem du in der entsprechenden Zeile den Comment-Tag entfernst
und danach diese Änderung sofort aktivierst, ohne den PI neu starten zu müssen:
Ich habe alle auskommentierten Zeilen entfernt. Kannst du mir bei der gelegenheit gleich sagen was ein Semikolon vor einem Befehl bedeutete?
Das # ist ein Comment-Tag, welches auch in der Zeile verwendet werden kann, dass ; ist eben ein Comment für die ganze Zeile.....
Ich würde mal mit folgender Minimal-Server-Conf (/etc/openvpn/openvpn.conf ) anfangen zu testen, und ggf. Port-Nr. und die Pfade für Keys und Zertifikate ändern:
Code: Alles auswählen
server 10.8.0.0 255.255.255.0
proto udp
dev tun
port 55555
link-mtu 1432
comp-lzo
push "route 192.168.178.0 255.255.255.0"
#Server
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/Server.crt
key /etc/openvpn/keys/Server.key
dh /etc/openvpn/keys/dh1024.pem
ping-timer-rem
keepalive 20 180
persist-key
persist-tun
verb 3
mute 10
Auf dem Client würde ich folgende einfache Version versuchen, wobei Du nur die DynDns-Adresse und ggf. den Port und Pfade ändern musst.
Code: Alles auswählen
tls-client
remote horst86.no-ip.biz
proto udp
dev tun
link-mtu 1432
port 55555
pull
comp-lzo
ns-cert-type server
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/Client.crt
key /etc/openvpn/keys/Client.key
ping 60
verb 3
mute 10
Ich würde das VPN nicht als Daemon testen, sondern den Server-Dienst erst mal stoppen und killen.
Ist der Daemon aktiv?
Dann stoppen
oder
Und dann den Server von Hand über die Konsole starten. Du siehst sofort live und aktuell das Start-Protokoll und später auch genauso live das Log für die verbundenen Clients und kannst sofort Fehler erkennen.
Als nächste würde ich mein Handy nehmen, die UMTS-Verbindung ins Web öffnen und mit dem Android-OpenVPN-Client zum Server verbinden. Und wenn Du keinen Android-Client auf dem Handy hast, dann richte das Smartphone kurzhand über Tethering als WLAN-Hotspot ein und nutze die UMTS-Verbindung des Handys, um z.B. den Laptop via WLAN über das Handy-UMTS mit dem Server zu verbinden. Eigentlich sollte das auf Anhieb funktionieren.... also die Verbindung zum VPN-Server, ohne das das "restliche" Internet auch durch den Tunnel geschickt wird.
Und wenn das funktioiert, würde ich mir weitere Keys und Zertifikate für die anderen Clients erstellen und diese Clients in gleicher Manier zum Server verbinden. Erst zum Schluss würde ich mir die alte Conf anschauen und überlegen, wass ich davon noch gebrauchen kann und ob überhaupt.
Und erst jetzt prüfe ich, ob ich die VPN-Clients untereinander erreichen kann und mache ich mir dann darüber Gedanken, warum es nicht geht, wenns nicht geht.
HTH