Netzwerk hinter OPENVPN-Client erreichen
Hallo zusammen,
ich versuche schon seit ein paar Tagen ein Netzwerk hinter einem OVPN-Client zu erreichen bzw. zu routen.
Nach vielem Lesen diverser Anleitungen weiß ich nun nicht mehr was nun am besten auf meine Anforderung zutrifft.
Die Verbindung vom Client (192.168.57.X) zum OVPN Server (10.0.0.100) und dem Netzwerk hinter dem Server erreiche ich ganz normal.
Nun wollte ich vom 10.0.0.0 Netzwerk auf die Geräte/Server hinter dem Client zugreifen.
Nun Frage ich mich wo die Route bzw. das "push", "route" und/oder das "iroute" schreibe.
Und ist zwingend eine statische Route in den jeweiligen Routern notwendig?
Meine Konstellation:
OVPN-Server auf einer Synology mit der IP 10.0.0.100/8
Transfernetz :172.16.8.0
server.conf:
die config des Clients (lokales Netzwerk: 192.168.56.0/21):
Entschuldigt meine vielleicht etwas verwirrte Erklärung. Sollte ich etwas vergessen haben, einfach Fragen
ich versuche schon seit ein paar Tagen ein Netzwerk hinter einem OVPN-Client zu erreichen bzw. zu routen.
Nach vielem Lesen diverser Anleitungen weiß ich nun nicht mehr was nun am besten auf meine Anforderung zutrifft.
Die Verbindung vom Client (192.168.57.X) zum OVPN Server (10.0.0.100) und dem Netzwerk hinter dem Server erreiche ich ganz normal.
Nun wollte ich vom 10.0.0.0 Netzwerk auf die Geräte/Server hinter dem Client zugreifen.
Nun Frage ich mich wo die Route bzw. das "push", "route" und/oder das "iroute" schreibe.
Und ist zwingend eine statische Route in den jeweiligen Routern notwendig?
Meine Konstellation:
OVPN-Server auf einer Synology mit der IP 10.0.0.100/8
Transfernetz :172.16.8.0
server.conf:
push "route 10.0.0.0 255.0.0.0"
push "route 172.16.8.0 255.255.255.0"
route 10.0.0.0 255.0.0.0
dev tun
management /var/run/openvpn.sock unix
server 172.16.8.0 255.255.255.0
dh /var/packages/VPNCenter/target/etc/openvpn/keys/dh3072.pem
ca /var/packages/VPNCenter/target/etc/openvpn/keys/ca.crt
cert /var/packages/VPNCenter/target/etc/openvpn/keys/server.crt
key /var/packages/VPNCenter/target/etc/openvpn/keys/server.key
max-clients 5
comp-lzo
persist-tun
persist-key
verb 3
#log-append /var/log/openvpn.log
keepalive 10 60
reneg-sec 0
plugin /var/packages/VPNCenter/target/lib/radiusplugin.so /var/packages/VPNCent>
client-cert-not-required
username-as-common-name
duplicate-cn
status /tmp/ovpn_status_2_result 30
status-version 2
proto udp6
port 1194
cipher AES-256-CBC
auth SHA512
die config des Clients (lokales Netzwerk: 192.168.56.0/21):
dev tun
tls-client
remote mein.dyndns 1194
pull
proto udp
script-security 2
comp-lzo
reneg-sec 0
cipher AES-256-CBC
auth SHA512
auth-user-pass login.conf
Entschuldigt meine vielleicht etwas verwirrte Erklärung. Sollte ich etwas vergessen haben, einfach Fragen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2159764577
Url: https://administrator.de/contentid/2159764577
Ausgedruckt am: 04.11.2024 um 18:11 Uhr
26 Kommentare
Neuester Kommentar
ein Netzwerk hinter einem OVPN-Client zu erreichen bzw. zu routen.
Einfach mal die Suchfunktiuon benutzen ! Hier steht wie es geht:
OpenVPN - Erreiche Netzwerk hinter Client nicht
Das grundlegende Rüstzeug dafür:
Merkzettel: VPN Installation mit OpenVPN
Hi,
in der "server.conf" sollte das Remote-Netz eingetragen sein.
Hier...
Desweiteren bedarf es einer CCD (ClientConfigDirectory), deren Pfad in der "server.conf" eingetragen ist....
Bsp.:
...deren Eintrag nur den iroute-Verweis auf das Clientnetz beinhaltet.
Das sollte dann funktionieren.
Gruß orcape
in der "server.conf" sollte das Remote-Netz eingetragen sein.
Hier...
route 192.168.57.0 255.255.255.0
Bsp.:
client-config-dir /var/etc/openvpn/server6/csc
iroute 192.168.57.0 255.255.255.0
Gruß orcape
Nun bringt die Syno die routen etwas durcheinander:
Warum ? Was ist denn da durcheinander ?Wichtig ist nur das die Syno auch überhaupt IP Forwarding (Routing) im System aktiviert hat !! Ansonsten ist das generell zum Scheitern verurteilt.
Merkzettel: VPN Installation mit OpenVPN
Du musst die Tunnelendpunkte pingen können.
Also 172.16.8.2 vom Netz 10.0.0.0/ aus. Genauso IP's im remoten Netz 192.168.56.0/29 .
Was bei Deiner Routing Tabelle gänzlich fehlt, ist der Verweis auf das Remote Netz über die OpenVPN-Client-IP.
Bsp.: In Deinem Fall müsste das ungefähr so aussehen....
Leider habe ich nur ein FreeBSD-System, so das die Routing-Tabelle ein wenig anders ausschaut.
Ich schätze mal bei Dir fehlt in der Server-Config noch der...
...Eintrag.
Also 172.16.8.2 vom Netz 10.0.0.0/ aus. Genauso IP's im remoten Netz 192.168.56.0/29 .
Was bei Deiner Routing Tabelle gänzlich fehlt, ist der Verweis auf das Remote Netz über die OpenVPN-Client-IP.
Bsp.: In Deinem Fall müsste das ungefähr so aussehen....
192.168.56.0/29 172.16.8.2 UG tun0
Ich schätze mal bei Dir fehlt in der Server-Config noch der...
route 192.168.56.0 255.255.248.0
Zitat von @cosmo87:
Stimmt, entschuldigung, ich habe vergessen dazuzuschreiben, dass es eben ohne Zugriff auf dem Router auf der Client Seite funktionieren soll.
Stimmt, entschuldigung, ich habe vergessen dazuzuschreiben, dass es eben ohne Zugriff auf dem Router auf der Client Seite funktionieren soll.
wenn das so wirklich ist... wirst du wohl aug allen Endgeräten eine zusätzliche Route eintragen müssen (dein VPN-Endpunkt liegt ja nicht im Standardgateway). Das wird schwierig bei dynamischer IP-Vergabe für die Clients , wenn der Verwalter des (Haupt)Routers nichts merken soll ??!!
Oder hab ich den Satz nur falsch verstanden ? Dann setze per DHCP einfach die notwendigen Routen mit...
fred
Zitat von @fredmy:
Das wird schwierig bei dynamischer IP-Vergabe für die Clients , wenn der Verwalter des (Haupt)Routers nichts merken soll ??!!
Oder hab ich den Satz nur falsch verstanden ? Dann setze per DHCP einfach die notwendigen Routen mit...
fred
Oder hab ich den Satz nur falsch verstanden ? Dann setze per DHCP einfach die notwendigen Routen mit...
fred
Ich glaube mal eher, der TE meint, nur ohne persönlich vor Ort zu müssen.
Bei solche "Operationen am Herzen" eines OpenVPN-Tunnels, ist es manchmal nicht verkehrt, wenn man sich noch eine Hintertür offen lässt. Ich habe in solchen Anfangsphasen bei der Tunneleinrichtungen meist den Webzugriff per ssh oder telnet, auf das Interface des Clientrouters zugelassen und diesem eine DynDNS-Adresse verpasst.
Gruß orcape
wirst du wohl aug allen Endgeräten eine zusätzliche Route eintragen müssen
Das ist dann zwangsläufig ein MUSS wenn man den Router im Netz (der ja wie der Name schon sagt routen soll !) nicht anfassen will oder darf.Bedeutet dann zwingend immer eine statische Route auf jedem Client Rechner ala route add xyz...
Und am Ende dann das "-p" nicht vergessen sonst ist die nach jedem Reboot wie der wech !
Ich kann nicht nachvollziehen, wo das Problem liegen soll.
Du hast einen Router, auf dem der OpenVPN-Client läuft und der eine Verbindung zum OpenVPN-Server initiiert.
Wobei es beim OpenVPN-Client egal ist, ob das ein LTE-Netz oder ein DSL-Lite Anschluß ist. Hat der Client die entsprechende Adresse im WWW in seiner Config, wird er auch eine Verbindung aufbauen.
Da auf dem Client-Router, vorausgesetzt das es ein TUN-Tunnel ist, sowieso ein anderes Netzwerk erforderlich ist, wie auf dem Hauptrouter oder wie beim TE das Synologie, ist es doch egal ob ich da DHCP fahre oder nicht.
Will ich einen bestimmten PC im Clientnetz, vom Synologie aus oder von einem Admin-PC aus dem Servernetz erreichen, sollte dieser PC im Clientnetz logischerweise eine feste IP ausserhalb des DHCP-Range haben.
Das Gateway im Client-Netz, ist in dem Fall die IP des OpenVPN-Client-Routers und die sollte selbstverständlich dort bei jedem PC oder Gerät eingetragen sein.
Alles andere betreffs Routen, ist in den OpenVPN-Servereinstellungen zu hinterlegen. Firewall des Client Routers nicht vergessen.
Gruß orcape
Du hast einen Router, auf dem der OpenVPN-Client läuft und der eine Verbindung zum OpenVPN-Server initiiert.
Wobei es beim OpenVPN-Client egal ist, ob das ein LTE-Netz oder ein DSL-Lite Anschluß ist. Hat der Client die entsprechende Adresse im WWW in seiner Config, wird er auch eine Verbindung aufbauen.
Da auf dem Client-Router, vorausgesetzt das es ein TUN-Tunnel ist, sowieso ein anderes Netzwerk erforderlich ist, wie auf dem Hauptrouter oder wie beim TE das Synologie, ist es doch egal ob ich da DHCP fahre oder nicht.
Will ich einen bestimmten PC im Clientnetz, vom Synologie aus oder von einem Admin-PC aus dem Servernetz erreichen, sollte dieser PC im Clientnetz logischerweise eine feste IP ausserhalb des DHCP-Range haben.
Das Gateway im Client-Netz, ist in dem Fall die IP des OpenVPN-Client-Routers und die sollte selbstverständlich dort bei jedem PC oder Gerät eingetragen sein.
Alles andere betreffs Routen, ist in den OpenVPN-Servereinstellungen zu hinterlegen. Firewall des Client Routers nicht vergessen.
Gruß orcape
Nicht vergessen deinen Thread hier dann auch zu schliessen wenn keine Fragen mehr sind!!
Wie kann ich einen Beitrag als gelöst markieren?
Wie kann ich einen Beitrag als gelöst markieren?
kann man auch in die ccd Datei schreiben, oder?
Nein! Denn das ist ein globales Server Kommando und gehört normalerweise nie in die Client spezifische Konfig Datei des Servers. (Siehe Tutorial oben)Du hast das sicher mit dem "iroute" Kommando verwechselt, kann das sein?!
braucht es dann noch die "route" in der server.conf?
Ja. Das bedient die Kernelroutetabelle des Servers. Wenn du einmal einen bescheidenen Blick in die OpenVPN Dokumentation geworfen hättest wäre diese Frage überflüssig gewesen. dass in der CCD das "iroute" nach einer gewissen zeit rausgelöscht wird
Das dürfte niemals passieren. Ist bei dir irgendein Cronjob oder sowas aktiv der das macht oder diese Datei zyklich überschreibt?Bei einer normalen OpenVPN Installation verschwinden diese Einträge natürlich niemals. Wie denn auch bei einer statischen Textdatei, denn OpenVPN selber fasst sie nicht an.
Die 169.254 ist eine typische APIPA bzw. ZeroConf IP. Da hast du also Recht mit deiner Vermutung. Bekommt ein Interface aber auch ausschliesslich nur bei dynamischer Adressierung die es bei OpenVPN nur in Ausnahmefällen gibt.
Ohne dann deine Server Konfig und auch die des betroffenen Clients zu kennen ist eine Hilfe schwer möglich...
2 Dinge:
Hilfreich wären nochmal die Routing Tabellen von Server und Client bei aktivem Tunnel. route print oder netstat -r -n -A inet oder ip r je nachdem welches OS du bei Client und Server verwendest.
- Compression zu benutzen ist gefährlich wegen der Voracle Attacke: https://openvpn.net/security-advisory/the-voracle-attack-vulnerability/ Es bringt heutzutage gar nichts den Tunnel Traffic zu komprimieren weil 90% aller Daten bereits vorkomprimiert sind. Solltest du gem. der OpenVPN Empfehlung besser entfernen!
- Du arbeitest beim Server Setup noch mit dem stark veralteten net30 Verfahren was /30er Masken nutzt. Deine Client ccd Konfig ist aber mit Masken die das moderne subnet Verfahren nutzen konfiguriert! Das ist also eine Fehlkonfig die die Abarbeitung der User spezifischen ccd Konfig dann scheitern lässt. Das musst du mit topology subnet und push "topology subnet" im Server anpassen oder die ccd Subnetzmasken entsprechend anpassen.
Hilfreich wären nochmal die Routing Tabellen von Server und Client bei aktivem Tunnel. route print oder netstat -r -n -A inet oder ip r je nachdem welches OS du bei Client und Server verwendest.
auf beiden Seiten den Eintrag "comp-lzo" entfernen oder?
Ja. Siehe: https://www.equinux.com/us/faq/1797/2/I-am-using-the-Option-comp-lzo-no- ...net30 hatte ich noch in meinem Eingangspost
Sorry übersehen.... Irgendwas stimmt an der Routing Tabelle des Servers nicht. Das 10er Netz hast du doch wohl hoffentlich nicht mit einem 8er Prefix geroutet, oder ??
Kann sich hier das IPv4 und das IPv6 gegenseitig stören?
Ja, das kann passieren wenn das nicht bei Client und Server gleich ist!Beim Server sollte stehen:
...
dev tun
proto udp4
port 1194
...
und dann analog beim Client:
dev tun
proto udp4
remote <server_ip> 1194
...
Wenn du nur mit IPv4 arbeiten willst ansonsten wird wie üblich IPv6 präferiert. Siehe OpenVPN Kommando Referenz!