OpenVPN Tunnel mit Raspberry Pi Server (Routing)

Legolasvegas

Lieutenant
Registriert
März 2010
Beiträge
520
Hallo Computerbase Community,

Ich sitze nun seit mehreren Tagen an dem Versuch einen VPN Tunnel in mein Netzwerk aufzubauen. Leider unterstützt mein Router das nicht direkt.

Was will ich haben?

Absoluter Traum wäre es einfach einen VPN Tunnel ins Netzwerk zu haben, sodass ich auf Netzwerkfestplatte und Co zugreifen kann als wäre ich im Netzwerk. Wenn dann noch der normale Internetverkehr nicht über den VPN Tunnel läuft (wegen der Geschwindigkeit) wäre es perfekt.

Also meine Konfiguration:

-Speedport W724V von der Telekom

-Raspberry Pi mit Rasbian und installierten OpenVPN

-OpenVPN Client auf meinem Laptop

Was habe ich getan?

Im ganzen habe ich mich an folgende Anleitung gehalten:

http://jankarres.de/2013/05/raspberry-pi-openvpn-vpn-server-installieren/

Was funktioniert ?

Ich komme bis auf den Pi und kann ihn auch dort an-pingen unter der Adresse des tun0 (10.8.0.1)
Ich habe auch mit wireshark geschaut ob die ICMP Pakete beim pingen meines Desktops dort ankommen. Dies ist nicht der Fall. Ich vermute, dass die Pakete garnicht von dem 10.8.0.x Netzwerk auf dem VPN Server in mein LAN 192.168.2.x kommen.



Ich hab also offensichtlich ein Problem mit dem Routing. Nach Tagen des durchlesens von Routing, IPtables und VPN Konfigurationen hab ich es immer noch nicht zum laufen gebracht.

Eine Sache macht mich etwas stuzig und zwar, dass im Log vom OpenVPN Client steht route "ADD 192.168.2.0 MASK 255.255.255.0 10.8.0.5" dies aber im CMD "route PRINT" nicht auftaucht. Nach meinem Verständnis ist doch grade genau dies die Route die sagt . Schicke alles was an 192.168.2.1-255 gerichtet ist an 10.8.0.5 (VPN Server Gateway) welcher es dann ins LAN leitet, oder?

Ist es überhaupt möglich ein Routing einzurichten ohne das ich in meinem Router eine statische Route einstellen kann?

Jetzt schonmal vielen Dank für die Hilfe.
 
ich vermute mal du hast Win7/8?
Du musst den Client als Admin starten - sonst sagt der zwar er fügt die Route hinzu, Windows erlaubt es ihm aber nicht

An deinem Router brauchst du trotzdem eine Statische Route um den Rückweg (PC-> VPN) zu gewährleisten (alternativ auch auf dem PC oder per DHCP verteilt)
 
Habe Windows 8.1 pro und habe den OpenVPN Client als Administrator ausgeführt. Habe auch schon die Route Manuell per CMD hinzuzufügen (CMD als Admin gestartet) OK! kommt zurück, aber die Route ist nicht drin.

EDIT: Also kann ich Routing schon vergessen weil ich es in meinem Router nicht einstellen kann ? Muss ich dann das ganze über ne Bridge und tap machen ?
 
die route muss drin sein, vorher braucht man garnicht weiter zu suchen...

poste mal bei verbundenem VPN ipconfig/all und route print

edit: wenn dein Router keine statischen routen kann, kannst du die entweder per DHCP verteilen lassen (z.B. vom raspi), den Raspi als Gateway nutzen oder die route im PC manuell festlegen
 
Zuletzt bearbeitet:
So einmal die Routing Tabelle :

Code:
     Netzwerkziel    Netzwerkmaske          Gateway    Schnittstelle Metrik
          0.0.0.0          0.0.0.0     192.168.43.1   192.168.43.126     25
          0.0.0.0          0.0.0.0      RWTH Tunnel   RWTH Tunnel 2
         10.0.0.0        255.0.0.0     192.168.43.1   192.168.43.126     25
         10.8.0.0    255.255.255.0   Auf Verbindung          10.8.0.4    286
         10.8.0.4  255.255.255.255   Auf Verbindung          10.8.0.4    286
       10.8.0.255  255.255.255.255   Auf Verbindung          10.8.0.4    286
        127.0.0.0        255.0.0.0   Auf Verbindung         127.0.0.1    306
        127.0.0.1  255.255.255.255   Auf Verbindung         127.0.0.1    306
  127.255.255.255  255.255.255.255   Auf Verbindung         127.0.0.1    306
      RWTH Tunnel    255.255.248.0   Auf Verbindung    RWTH Tunnel    257
   RWTH Tunnel  255.255.255.255   Auf Verbindung    RWTH Tunnel   257
   RWTH Tunnel  255.255.255.255   Auf Verbindung    RWTH Tunnel    257
    RWTH Tunnel  255.255.255.255     192.168.43.1   1RWTH Tunnel     26
       172.16.0.0      255.240.0.0     192.168.43.1   192.168.43.126     25
     192.168.43.1  255.255.255.255   Auf Verbindung    192.168.43.126     26
   192.168.43.126  255.255.255.255   Auf Verbindung    192.168.43.126    281
        224.0.0.0        240.0.0.0   Auf Verbindung         127.0.0.1    306
        224.0.0.0        240.0.0.0   Auf Verbindung    192.168.43.126    281
        224.0.0.0        240.0.0.0   Auf Verbindung          10.8.0.4    286
        224.0.0.0        240.0.0.0   Auf Verbindung    RWTH Tunnel    257
  255.255.255.255  255.255.255.255   Auf Verbindung         127.0.0.1    306
  255.255.255.255  255.255.255.255   Auf Verbindung    192.168.43.126    281
  255.255.255.255  255.255.255.255   Auf Verbindung          10.8.0.4    286
  255.255.255.255  255.255.255.255   Auf Verbindung    RWTH Tunnel    257

Code:
Ethernet-Adapter LAN-Verbindung:

   Verbindungsspezifisches DNS-Suffix:
   Beschreibung. . . . . . . . . . . : TAP-Windows Adapter V9
   Physische Adresse . . . . . . . . : 00-FF-68-EC-EE-2D
   DHCP aktiviert. . . . . . . . . . : Ja
   Autokonfiguration aktiviert . . . : Ja
   Verbindungslokale IPv6-Adresse  . : fe80::fdd4:fb3e:c19f:259f%15(Bevorzugt)
   IPv4-Adresse  . . . . . . . . . . : 10.8.0.4(Bevorzugt)
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0
   Lease erhalten. . . . . . . . . . : Donnerstag, 5. Juni 2014 19:05:36
   Lease läuft ab. . . . . . . . . . : Freitag, 5. Juni 2015 19:05:36
   Standardgateway . . . . . . . . . :
   DHCP-Server . . . . . . . . . . . : 10.8.0.0
   DHCPv6-IAID . . . . . . . . . . . : 251723624
   DHCPv6-Client-DUID. . . . . . . . : 00-01-00-01-19-E7-15-64-00-80-8A-8E-11-64

   DNS-Server  . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                       fec0:0:0:ffff::2%1
                                       fec0:0:0:ffff::3%1
   NetBIOS über TCP/IP . . . . . . . : Aktiviert
 
1. mach mal zum debuggen den RWTH-Tunnel aus - das Uni-VPN könnte sich mit dem OpenVPN in die Quere kommen
2. DHCP-Server 10.8.0.0 kann eigentlich nicht sein - bei nem /24er netz ist die .0 immer das Netzwerk und nie ein Host
3. DNS-Server sollte auch was mit IPv4 haben
 
Die Route muss auf dem Pi und ggf dem VPN Client (wenn das VPN nicht die defaultroute ist) existieren, der Router ist völlig egal weil du ja direkt per Port Fowarding auf den Pi gehst, den Router also umgehst. Auf dem Pi muss IP forwarding angemacht werden.
 
@Homini: richtig - am einfachsten ist es dennoch auf dem Default Gateway ne Route anzulegen, wenn man auf alle Geräte im LAN zugreifen möchte

würde hier erstmal strukturiert vorgehen

1. Verbindung Client<->Pi prüfen
2. Forwarding auf Pi prüfen
3. Routing im LAN prüfen
 
Wie debugge ich das eigentlich am besten? Bisher hab ich mich ins Uni Netzwerk getunnelt (oder saß in der Uni) und von da OpenVPN benutzt , dort kann ich den Pi anpingen und per SSH auf ihn zugreifen. Log ich mich z.b. über das Handy (Hotspot) ein oder gehe nicht über DynDNS sonder direkt über die IP im LAN auf den VPN Server, dann kann ihn ihn nicht anpingen.
 
Handy hotspot klingt am praktischsten - dann bist du daheim und hast trotzdem Zugriff von extern
wenn du in der uni bist, sollte es auch gehen

bei mir ists so, dass wenn ich Uni VPN anhabe das OpenVPN nicht mehr tut...
 
Bei mir ist es genau anders herum. Funktioniert nur über Uni Netzwerk. Wenn ich mich übern Handy Hotspot in die Uni Tunnel geht es auch. Morgen geht es in die Heimat dort kann ich es dann mal in einem "Normalen" Netzwerk versuchen. Aber langsam bin ich echt am verzweifeln.

EDIT: Hab grade mal die Logs verglichen , für den Fall das ich mich aus dem Uni Netz einlogge und das ich mich über den Hotspot einlogge. Die sind Haargenau identisch. Kann also sein, dass es was mit meinem Provider zu tun hat.
 
Zuletzt bearbeitet:
richte dir mal zu debug-Zwecken noch Portweiterleitung auf ssh vom raspi und rdp vom pc ein (natürlich nur mit sicheren pw auf unüblichen ports) - dann kannst du von außen zugreifen und die config ändern

edit: Mit provider zu tun haben kann, ob du von außen drauf kommst oder nicht - wenn die verbindung steht, dann machts keinen Unterschied mehr
 
Zuletzt bearbeitet:
Okay, Ich werde es morgen mal aus der Heimat ausprobieren und schauen was da sache ist.
 
Ohne Route am VPN Client wird es natürlich schwieriger. Evtl VPN Subnetz auf das Home Subnetz umstellen. VPN Clients und Geräte im HomeLAN wären dann im selben Subnetz. Ist aber etwas unsauber..

In der Konfiguration von OpenVPN kann man einstellen mit welchem Tool die Routen erstellt werden sollen, wenn ich mich noch recht entsinne. Die genaue Option muss ich nachschauen, wenn ich später am PC sitze..
Check mal ob im PI überhaupt IP forwarding eingestellt ist (net.ipv4.ip_forward=1). Ferner kannst du am PI NAT einstellen und der PI ersetzt dann die IPs von VPN Clients (10.x.x.x) mit seiner LAN IP (192.168.x.x) und dein PC, NAS, etc denken die Anfrage kommt vom PI obwohl sie aus dem VPN dahinter kommt. Ansonsten müssen die Geräte im LAN eine Route zurück ins VPN haben - sei es über das Default Gateway oder aber eine statische Route zum PI.
 
So inzwischen geht es in dem ich von Routing auf Bridge umgestiegen bin. Falls mal jemande hier drauf stößt, stellle ich mal mein config hier rein.

CLIENT
Code:
remote [DynDNS Adresse]

port 1194
# legt den zu verwendenen Port fest (muß gleich dem Port beim Server sein)

proto udp

dev tap

tls-client
# "ich bin der Client"

ca ca.crt

cert client1.crt

key client1.key

resolv-retry infinite
nobind
persist-key
persist-tun
ns-cert-type server
# der Server überprüft die Zertifikate auf Gültigkeit

comp-lzo
dev-node tap
pull
# "pull" muß in der Client-config stehen, damit die push-Anweisungen
# vom Server geholt werden

SERVER:
Code:
ca [Pfad zur ca Datei]
cert [Pfad zur Cert. Datei]
key [Pfad zur Key Datei]
dh [Pfad zur DH-Datei]
user nobody
group nogroup

port 1194
# legt den zu verwendenen Port fest

proto udp
# Verwendung des Protokolls UDP (Standard)

mode server
# "ich bin der Server"

dev tap0
# verwendet das tap-device



server-bridge [raspberry-IP] 255.255.255.0 [Anfang IP des VPN] [Ende IP des VPN] 
#Hier am besten einen Bereich wählen den euer Router nicht vergibt

client-to-client
# die Clients (falls mehrere) können sich untereinander sehen

tls-server
# schaltet TLS ein und Rolle des Servers beim Handshake


comp-lzo

push "route 192.168.x.0 255.255.255.0"
# legt (beim Client) einen Routingeintrag zum internen Netzwerk im Server-Lan $
# hier ist das interne Netz auf der Serverseite anzugeben
# z.b. route 192.168.1.0 255.255.255.0

Konfiguration der IPtables
Code:
iptables -A INPUT -i tap0 -j ACCEPT
iptables -A INPUT -i br0 -j ACCEPT
iptables -A FORWARD -i br0 -j ACCEPT

Das ganze ist eine Mischung mehrerer Anleitungen, welche ich hier natürlich nicht unerwähnt lassen will:

http://wiki.openvpn.eu/index.php/Erster_Tunnel

http://openvpn.net/index.php/open-source/documentation/miscellaneous/76-ethernet-bridging.html

http://www.pcwelt.de/ratgeber/VPN_mit_dem_Raspberry_Pi_-_so_geht_s-Sicher_surfen-8640499.html

http://jankarres.de/2013/05/raspberry-pi-openvpn-vpn-server-installieren/

EDIT: Im zweiten Link steht die beschreibung wie man die Brücke auf dem Raspi einrichtet!!!
 
Zuletzt bearbeitet:
Zurück
Oben