OpenVPN Clients hinter Router erreichen

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Alternativende
Beiträge: 2090
Registriert: 07.07.2006 18:32:05

OpenVPN Clients hinter Router erreichen

Beitrag von Alternativende » 27.12.2018 14:21:00

Hallo zusammen,
ich bin dabei nach einer halben Ewigkeit mal wieder einen OpenVPN Server einzurichten. Das erste mal auf einem OpenWRT Router. Ich habe die Zertifikate nach folgender Anleitung angelegt (https://blog.buettner.xyz/zertifikate-o ... enerieren/) und den Router nach folgender Anleitung vorbereitet (https://openwrt.org/docs/guide-user/ser ... nvpn/basic). Zumindest den Teil der die Firewallregeln konfiguriert und die Pakete installiert, denn die Zertifikate sind wie gesagt nach der anderen Anleitung erstellt. Grund hierfür war das ich Verbindungen auch ohne Passworteingabe aufbauen können möchte.

Was funktioniert bis dato:
Ich kann eine VPN Verbindung aufbauen und aus dieser heraus auf meinen Router zugreifen, Webinterface, SSH läuft alles.

Was nicht funktioniert:
Alle Rechner dahinter, NAS etc. kann ich nicht pingen, kein SSH etc..

Ich denke das Problem liegt entweder an falschen routen oder der Router leitet den Traffic nicht sauber durch. Leider bin ich in beiden Fällen nicht wirklich erfahren, daher einmal hier die routen vom Testclient mit aktiver VPN Verbindung und die Config vom Server, sowie die OVPN-Datei vom Client.

vpnvonfig

Code: Alles auswählen

config openvpn 'vpnserver'
	option enabled '1'
	option verb '3'
	option dev 'tun0'
	option topology 'subnet'
	option port '1194'
	option proto 'udp'
	option server '192.168.200.0 255.255.255.0'
	option client_to_client '1'
	option compress 'lzo'
	option keepalive '10 120'
	option persist_tun '1'
	option persist_key '1'
	option dh '/etc/openvpn/dh.pem'
	option ca '/etc/openvpn/ca.crt'
	option cert '/etc/openvpn/issued/server.crt'
	option key '/etc/openvpn/private/server.key'
	list push 'redirect-gateway def1'
	list push 'route 192.168.178.0 255.255.255.0'
#	list push 'dhcp-option DNS 192.168.178.1'
	list push 'compress lzo'
	list push 'persist-tun'
	list push 'persist-key'
	list push 'dhcp-option DOMAIN lan'

ovpn Datei

Code: Alles auswählen

#OpenVPN Client conf
client
nobind
dev tun
proto udp
tun-mtu 1500
remote home.faleo.de 1194
comp-lzo
verb 3
persist-key
persist-tun
ca ca.crt
cert Pey.crt
key Pey.key
Ausgabe von route auf dem verbundenen Client:

Code: Alles auswählen

root@PartedMagic:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.200.1   128.0.0.0       UG    0      0        0 tun0
default         10.15.48.5      0.0.0.0         UG    600    0        0 wlan0
10.15.48.0      *               255.255.240.0   U     303    0        0 wlan0
10.15.48.0      *               255.255.240.0   U     600    0        0 wlan0
p4FEF1519.dip0. 10.15.48.5      255.255.255.255 UGH   0      0        0 wlan0
loopback        *               255.0.0.0       U     0      0        0 lo
128.0.0.0       192.168.200.1   128.0.0.0       UG    0      0        0 tun0
192.168.178.0   192.168.200.1   255.255.255.0   UG    0      0        0 tun0
192.168.200.0   *               255.255.255.0   U     0      0        0 tun0
Edit:
Hier noch ein paar Screenshots aus der OpenWRT Config:

http://wikisend.com/download/238926/Bil ... -32-24.png

http://wikisend.com/download/266040/Bil ... -32-11.png

http://wikisend.com/download/791222/Bil ... -31-59.png


Vielleicht hat da ja jemand den richten Einfall :).

Gruß

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: OpenVPN Clients hinter Router erreichen

Beitrag von mat6937 » 27.12.2018 17:24:07

Alternativende hat geschrieben: ↑ zum Beitrag ↑
27.12.2018 14:21:00
Was funktioniert bis dato:
Ich kann eine VPN Verbindung aufbauen und aus dieser heraus auf meinen Router zugreifen, Webinterface, SSH läuft alles.

Was nicht funktioniert:
Alle Rechner dahinter, NAS etc. kann ich nicht pingen, kein SSH etc..

Ich denke das Problem liegt entweder an falschen routen oder der Router leitet den Traffic nicht sauber durch.
Teste mal mit tcpdump auf deinem Router, ob der Ping vom Client, auf beiden Interfaces (tun-Interface und LAN-Interface) gesehen wird.

Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: OpenVPN Clients hinter Router erreichen

Beitrag von ingo2 » 28.12.2018 17:47:45

Ich habe gerade mal deine server.conf durchgesehen und folgende Konfiguration gesehen:

Code: Alles auswählen

option client_to_client '1'
Die Doku dazu (https://serverfault.com/questions/73627 ... -to-client)sagt:
Uncomment out the client-to-client directive if you would like connecting clients to be able to reach each other over the VPN. By default, clients will only be able to reach the server.
Also, laß mal die '1' weg.
Ich selbst gehe sogar noch weiter und erlaube durch den Tunnel vom server aus auch Zugriff aufs Internet. Damit kann ich dann quasi vom Client durch den Tunnel meinen Internet-Zugang von zuhause inklusive IP-Telefonie mit Debianlinphone nutzen. Dazu mußt du dann noch NAT im Kernel für das WAN-Interfachce (bei mir br0) aktivieren:

Code: Alles auswählen

	    /etc/rc.local
		iptables -t nat -A POSTROUTING -o br0 -s 10.8.0.0/24 -j MASQUERADE
Gruß,
Ingo

Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: OpenVPN Clients hinter Router erreichen

Beitrag von ingo2 » 28.12.2018 19:35:08

Habe noch was gefunden:

Ich mußte im Kernel IP-forwarding aktivieren:

Code: Alles auswählen

/etc/sysctl.conf

net.ipv4.ip_forward=1
Du willst ja eigenlich aus dem VPN-Subnet 10.8.0.0 ins lokale 192.168.0.0 weiterleiten, das sollte das forwarding machen.
Die Option 'client_to_client' sollte sich eigentlich auf mehrere Clients im VPN beziehen. Was die '1' bedeutet weiß ich nicht - ist nirgends dokumentiert.

Benutzeravatar
Huck Fin
Beiträge: 1202
Registriert: 10.03.2008 17:10:30

Re: OpenVPN Clients hinter Router erreichen

Beitrag von Huck Fin » 29.12.2018 11:42:03

Ich nutze das hier am VPN-Server...

Code: Alles auswählen

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -d 192.168.22.0/24 -j MASQUERADE
danach kann ich alles im Servernetz anpingen / erreichen

10.0.0.0/24 = Netz vom VPN
192.168.22.0/24 = Netz vom Server

... und im router eine static route
aber die ist vermutlich unbedeutend...

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: OpenVPN Clients hinter Router erreichen

Beitrag von MSfree » 30.12.2018 15:53:22

Huck Fin hat geschrieben: ↑ zum Beitrag ↑
29.12.2018 11:42:03

Code: Alles auswählen

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -d 192.168.22.0/24 -j MASQUERADE
Wozu soll das gut sein? Wenn man die Routen mit route add ... korrekt konfiguriert, ist NAT unnötig.

ReturnToSender
Beiträge: 123
Registriert: 23.10.2018 18:06:09

Re: OpenVPN Clients hinter Router erreichen

Beitrag von ReturnToSender » 30.12.2018 18:28:04

MSfree hat geschrieben: ↑ zum Beitrag ↑
30.12.2018 15:53:22
Wozu soll das gut sein? Wenn man die Routen mit route add ... korrekt konfiguriert, ist NAT unnötig.
Muss man dann auf allen Client-Geräten die Rückroute zum VPN-Server setzen, weil ja das 10'er Netz als Ziel für ein TCP-Paket eigentlich unbekannt ist und deshalb zum Default-Gateway geschickt werden würde, wobei es doch eigentlich vom VPN-Server verarbeitet werden müsste?

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: OpenVPN Clients hinter Router erreichen

Beitrag von MSfree » 30.12.2018 19:54:41

ReturnToSender hat geschrieben: ↑ zum Beitrag ↑
30.12.2018 18:28:04
Muss man dann auf allen Client-Geräten die Rückroute zum VPN-Server setzen
Hier muß man zwischen den VPN-Clients und den Rechnern im LAN unterscheiden. Den VPN-Clients kann man Routen vom VPN-Server schicken lassen, in der Regel wird man hier einfach eine Default-Route schicken, was allerdings bedeutet, daß der gesamte Netzwerkverkehr durch den VPN-Tunnel hin und her geht. Man könnte hier aber z.B. auch nur eine Route in das LAN mitgeben.
weil ja das 10'er Netz als Ziel für ein TCP-Paket eigentlich unbekannt ist
Das kommt drauf an. Wenn der Internetrouter auch der VPN-Server ist, der allen LAN-Rechner als Default-Gateway bekannt ist, braucht man gar nichts zu tun, das sortiert der Router dann schon richtig aus.

Wenn der VPN-Server auf einem anderen Gerät läuft, reicht es aus, auf dem Internetrouter eine Route zum 10-er Netz mit Gateway-IP des separaten VPN-Servers einzurichten. Der Nachteil dabei ist, daß alle LAN-Rechner erstmal den gesamten Verkehr an den Internrouter schickt, von wo aus er an den VPN-Server (wahrscheinlich nochmal) durch das LAN übertragen wird. In der Regel ist aber der VPN-Verkehr nicht so umfangreich wie der normale LAN-Verkehr, so daß der zusätzlich Overhead die Netzwerkgeschwindigkeit nicht nennenswert einschränkt, jedenfalls solange das Internet nur mit max. 100MBit Uplink angebunden ist.

Wer den Luxus eines symmetrischen GBit Internetanschlußes hat, wird wohl auch im LAN schon 10GBit fahren und als VPN-Gateway nicht gerade einen Raspberry verwenden. :wink:

Letztlich ist auch noch eine einfachere Konfguration möglich, bei der man dem VPN keinen anderen IP-Bereich wie 10.x.x.x gibt sondern einfach den Bridge-Modus verwendet und mit dem VPN im IP-Bereich des LANs bleibt.

ReturnToSender
Beiträge: 123
Registriert: 23.10.2018 18:06:09

Re: OpenVPN Clients hinter Router erreichen

Beitrag von ReturnToSender » 30.12.2018 20:29:00

Danke für Deine Erklärung. Daraus konnte ich jetzt ableiten, wenn man einen Raspberry PI als VPN-Server einsetzt ist der Weg über Iptables-NAT immer noch der beste Weg, einfach einzurichten und ohne Umwege.

Antworten