Posted: Tue Feb 11, 2014 9:04 Post subject: Zugriff über OpenVPN auf LAN
Hallo zusammen,
ich bin seit kurzem erst Besitzer eines TP-Link TL-WDR4900 v1.3 und habe gleich DD-WRT v24-preSP2 (02-04-2014-r23503) von Brainslayer installiert.
Nun wollte ich OpenVPN dazu verwenden mein Netzwerk hinter meinem Router zu erreichen. Leider komme ich hier nicht weiter. Habe schon einige Foreneinträge und Tutorials durchprobiert jedoch ohne Erfolg.
Der Router selbst hat die IP 192.168.1.1. Die Clients sollen über die VPN-Verbindung die IPs zwischen 192.168.1.200 und 192.168.1.210 erhalten.
Anbei meine Einstellungen. Ich hoffe Ihr werdet daraus schlau und könnt mir helfen.
client
dev tap
proto udp
remote meine-dyndns-ip.net 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ns-cert-type server
cipher AES-256-CBC
comp-lzo
verb 3
ca "C:\\Program Files\\OpenVPN\\config\\VPN\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\VPN\\CLIENT01.crt"
key "C:\\Program Files\\OpenVPN\\config\\VPN\\CLIENT01.key"
Logfile vom OpenVPN Client:
Tue Feb 11 09:27:01 2014 OpenVPN 2.3.2 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [eurephia] [IPv6] built on Aug 8 2013
Enter Management Password:
Tue Feb 11 09:27:01 2014 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25342
Tue Feb 11 09:27:01 2014 Need hold release from management interface, waiting...
Tue Feb 11 09:27:02 2014 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25342
Tue Feb 11 09:27:02 2014 MANAGEMENT: CMD 'state on'
Tue Feb 11 09:27:02 2014 MANAGEMENT: CMD 'log all on'
Tue Feb 11 09:27:02 2014 MANAGEMENT: CMD 'hold off'
Tue Feb 11 09:27:02 2014 MANAGEMENT: CMD 'hold release'
Tue Feb 11 09:27:02 2014 Socket Buffers: R=[8192->8192] S=[64512->64512]
Tue Feb 11 09:27:02 2014 MANAGEMENT: >STATE:1392107222,RESOLVE,,,
Tue Feb 11 09:27:02 2014 UDPv4 link local: [undef]
Tue Feb 11 09:27:02 2014 UDPv4 link remote: [AF_INET]134.3.73.98:1194
Tue Feb 11 09:27:02 2014 MANAGEMENT: >STATE:1392107222,WAIT,,,
Tue Feb 11 09:28:02 2014 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Tue Feb 11 09:28:02 2014 TLS Error: TLS handshake failed
Tue Feb 11 09:28:02 2014 SIGUSR1[soft,tls-error] received, process restarting
Tue Feb 11 09:28:02 2014 MANAGEMENT: >STATE:1392107282,RECONNECTING,tls-error,,
Tue Feb 11 09:28:02 2014 Restart pause, 2 second(s)
Tue Feb 11 09:28:04 2014 Socket Buffers: R=[8192->8192] S=[64512->64512]
Tue Feb 11 09:28:04 2014 MANAGEMENT: >STATE:1392107284,RESOLVE,,,
Tue Feb 11 09:28:04 2014 UDPv4 link local: [undef]
Tue Feb 11 09:28:04 2014 UDPv4 link remote: [AF_INET]134.3.73.98:1194
Tue Feb 11 09:28:04 2014 MANAGEMENT: >STATE:1392107284,WAIT,,,
Tue Feb 11 09:28:17 2014 SIGTERM[hard,] received, process exiting
Tue Feb 11 09:28:17 2014 MANAGEMENT: >STATE:1392107297,EXITING,SIGTERM,,
>>> Hier ist ein TLS Error... jedoch weiß ich nicht und aus welchen Gründen.
vielen Dank für die Antwort. Hab das Wiki schon durchforstet komme aber nicht auf die Lösung. Entweder ich bin zu doof oder aber ich bin einfach zu doof
Hast du mir vielleicht nen Tipp auf welche Sektion ich besonders acht geben sollte? Oder was ich mir nochmals genauer anschauen sollte?
ich bin jetzt zumindest einen Schritt weiter gekommen. Ich habe nochmals einen Factory Reset des Routers gemacht und alles nochmals neu konfiguriert, u.a. auch die IP-Adressen der VPN angepasst. Die SPI-Firewall habe ich aktiv gelassen und diesmal keine Eintragungen in der Administration > Commands Sektion hinterlegt.
Zunächst habe ich die VPN-Verbindung im lokalen Netzwerk getestet ob hier auch wirklich keine Probleme mit den Zertifikaten oder Keys besteht. Dazu habe ich einfach die lokale IP-Adresse des Routers in der Client-Config eingetragen.
Wenn diese eingetragen ist kann ich ohne Probleme eine Verbindung aufbauen. Das heißt für mich an der OpenVPN Config sollte zunächst einmal nichts falsch sein.
Versuche ich es jedoch mit der DynDNS-Adresse bzw. meiner öffentlichen IP-Adresse habe ich keine Chance eine Verbindung herzustellen. Mit oder ohne aktivierter SPI-Firewall ist keine Verbindung möglich.
Kann mir jemand sagen welche Einstellungen ich am Router noch machen muss damit ich die VPN-Verbindung aufbauen kann?
Ich danke Euch schon mal für Eure Hilfe!
Falls Ihr hierzu noch irgendwelche Logs oder Screenshots der Einstellungen benötigt kann ich die gerne nachreichen.
vielen Dank für deine Antwort. Ich habe bereits eine Lösung für mich gefunden. Vielleicht auf eine etwas unorthodoxe Weise aber die VPN-Verbindung kommt zumindest mal zu stande.
Ich habe ein Port-Forwarding mit dem Port 1194 auf die IP-Adresse des Routers eingerichtet. Damit läufts, ohne das ich ein Firewall Script eintragen musste.
- Ich hoffe das mit dem Port-Forwarding alles soweit in Ordnung ist oder kann es dort zu Problemen kommen (z.B. Sicherheit)?
- Wieso sollte man generell TUN anstatt TAP verwenden? Gibt es hierfür einen speziellen Grund?
Hallo,
ja es gibt Gründe.
"TAP" erzeugt mehr Netzwerklast, da die Broadcasts mit übermittelt werden.
Für die eher langsamen A/VDSL-Verbindungen ist das nicht ratsam.
Ich empfehle die Lektüre der Wiki-Seiten auf dd wrt.
Für "TUN" müssen Routen und Firewall-Regeln gesetzt werden. Deine Firewall-Regeln beziehen sich auf TUN.
Läuft bei dir der VPN-Client nicht auf dem Router? D.h. bei dir ist der Router nicht das Gerät mit dd-wrt?
Dann musst du natürlich ein Portforwarding einrichten.
Normalerweise läuft der VPN-Service aber auf dem Router, dann benötigt man kein Portforwarding
ich habe die Konfiguration jetzt nochmals komplett neu aufgebaut und wie von bospre auf TUN umgestellt und von UDP auf TCP gewechselt. Die Verbindung klappt und ich komme auch auf das Netzwerk hinter dem Router Vielen Dank nochmals hierfür.
Zu deinen Fragen bospre:
Quote:
Läuft bei dir der VPN-Client nicht auf dem Router? D.h. bei dir ist der Router nicht das Gerät mit dd-wrt?
Dann musst du natürlich ein Portforwarding einrichten.
Auf dem Router auf dem DD-WRT läuft, läuft auch der OpenVPN Server. Die Verbindung zum VPN-Server nehme ich überwiegend mit Windows-Clients auf.
Quote:
Normalerweise läuft der VPN-Service aber auf dem Router, dann benötigt man kein Portforwarding
Der VPN-Service läuft auf dem Router, jedoch kann ich nur eine Verbindung aufbauen wenn ich Portforwarding mache auf den von mir genutzten Port. Wie sieht denn so eine Route aus von der du gesprochen hast? Muss ich diese bei Setup > Advanced Routing hinterlegen und wenn ja wie muss die aussehen?
Destination LAN NET: lokales Netz mit 192er Adresse?
Gateway: Das Gateway des lokalen Netzes oder die VPN-IP 10.10.10.1?
Interface: Auf ANY?
Hallo,
du benötigst kein Portforwarding.
Aber in der ersten Firewall-Regel muss der richtige Port angegeben werden, also bei dir 1194 anstatt der dort eingetragenen 8888.
Ich bin kein Firewall und auch kein Linux Guru, ich beziehe mein Wissen nur aus diversen Wikis, aber überall steht, dass man UDP bevorzugen sollte und TCP nur unter bestimmten Voraussetzungen nehmen soll.
Dass solltest du vielleicht auch noch ändern.
vielen Dank für den Tipp... aber leider ist es so, egal was ich mache wenn ich das Portforwarding nicht aktiviere kommt keine Verbindung zu stande. Egal ob mit UDP/TCP und egal mit welchem Port.
Wenn ich nur die Firewall-Einstellungen habe kann die Verbindung nicht aufgebaut werden.
Hallo,
ich habe noch einen Fehler in deine Konfiguration gefunden.
Bei mir steht in der zweiten Zeile der Firewall-Regeln:
iptables -I FORWARD 1 --source 192.168.200.0/24 -j ACCEPT
Die 192.168.200.0/24 ist das "Tunnelnetz"
Es werden für beide Punkte des Tunnels IP-Adressen definiert. Bei mir sind das z.B. 192.168.200.221 für die eine und 192.168.200.222 für die andere Seite.
Dieses Routing musst du natürlich zulassen.
Ich bin mit der halb-vorgefertigten Konfiguration des DD WRT nicht klar gekommen, daher habe ich sozusagen die Expertenkonfiguration als Daemon durchgeführt, da kann ich alle openvpn-Parameter eintragen, ohne dass mir das WebGui irgend etwas ändert. Daher weiß ich jetzt nicht, welches Transportnetz bei dir benutzt wird. Im Zweifelsfall hilft ein Blick (über SSH) in die /temp/openvpn/openvpn.conf.
Wenn ich es richtig sehe müsste das bei dir 10.10.10.0/24 heissen. Probiere es mal aus.
habe die Änderungen vorgenommen. In den Firewall Einstellungen steht jetzt die IP des VPN-Netzes (10.10.10.0). Jedoch habe ich keine Chance eine Verbindung herzustellen solange ich nicht das Portforwarding aktiviert habe.
Egal welche Ports ich verwende oder welches Protokoll (TCP oder UDP) es hängt immer wieder am Portforwarding. Wenn ich das nicht aktiviere wird keine Verbindung aufgebaut. Bzw. wenn ich UDP verwende geht es gar nicht ob mit oder ohne Portforwarding.
Hi,
nach dem Lesen deines Postings war ich zunächst etwas ratlos.
Wenn TCP funktioniert muss auch UDP funktionieren.
Wie sieht denn deine Portforwarding-Regel aus? Ist auch UDP forwarded?
Poste doch doch mal den Inhalt der /tmp/openvpn/opnevpn.conf.
Da stehen noch ein paar Sachen drin, die das WebGui hinzufügt. Daran kann man (ich) besser erkennen wo der Wurm drin steckt.
Protocol: TCP oder wahlweise UDP (je nachdem was in der GUI auch eingestellt wird)
Source Net: 0.0.0.0/0
Port from: 8888
IP-Address: 192.168.1.1
Port to: 8888
hier meine openvpn.conf
dh /tmp/openvpn/dh.pem
ca /tmp/openvpn/ca.crt
cert /tmp/openvpn/cert.pem
key /tmp/openvpn/key.pem
keepalive 10 120
verb 3
mute 3
syslog
writepid /var/run/openvpnd.pid
management 127.0.0.1 14
management-log-cache 100
topology subnet
script-security 2
port 8888
proto tcp-server
cipher aes-256-cbc
auth sha1
client-config-dir /tmp/openvpn/ccd
comp-lzo yes
tls-server
client-to-client
tcp-nodelay
tun-mtu 1500
mtu-disc yes
server 10.10.10.0 255.255.255.0
dev tun2
tun-ipv6 <<< ist das korrekt? Sollte da nicht ipv4 stehen?
push "route 192.168.1.0 255.255.255.0"
push "dhcp-options DNS 192.168.1.1"