Hallo Freunde,
ich habe neulich einen VPN Server (OpenVPN) in meinem Firmenrouter
eingerichtet.
Da der Router für OpenVPN ausgelegt ist (Router Modell: Netgear Orbi
RBR850), war die Einrichtung des VPNs und der Portforwarding ziemlich
einfach. Mit meinem Laptop (Ubuntu mit OpenVPN3 client) kann ich eine
VPN-Verbindung herstellen und mich mit dem PC in der Firma verbinden. Es
funktioniert tadellos und bin ziemlich happy….
ABER: Nun das Problem… alles läuft super, aber wenn ich mich von Zuhause
aus versuche, mich zu verbinden, habe ich folgende Probleme:
- Internet geht nicht mehr (es geht nur wenn ich den OpenVPN Client auf
meinem Laptop stoppe)
- Jegliche ssh-Verbindung zu meinem remote-PC wird zwar hergestellt (ich
sehe das Home Verzeichnis meines Linux-PCs in der Firma. Aber die
Verbindung hängt nach einigen Sekunden… Dieses Verhalten finde ich echt
komisch, da ich sonst – auch von anderen Firmen aus – mich von überall
mit dem selben Setup und zu dem selben PC verbinden kann.
Nun habe ich mir kurz überlegt, dass es vielleicht an den zwei folgenden
Faktoren liegen kann:
- Ich schalte das Protokoll von UDP auf TCP um (OpenVPN nutzt UDP, da
dieses schneller als TCP sein sollte). Diese Option finde ich nicht ganz
elegant, da ich in vielen Quellen in Netz lesen konnte, dass UDP für
OpenVPN empfohlen und verwendet werden sollte.
ODER
- Ich muss einen Portforwarding AUCH am Router Zuhause einrichten. Dies
widerspricht meiner bisherigen Erfahrung, da ich bei anderen Routern
nichts geändert habe und trotzdem funktioniert die VPN-Verbindung
tadellos. Zudem habe ich nirgendwo gelesen, dass ich auch für den Client
eine spezielle Einrichtung am Router vornehmen sollte. Am Server ok,
aber auf der Client-Seite? Zudem wüsste ich nicht, welche Ports ich in
diesem Fall freischalten sollte (1194 auf 1194?).
Habt ihr eine Idee, wie ich endlich eine stabile und funktionierende
VPN-Verbindung über OpenVPN von Zuhause aus herstellen kann?
Zuerst dachte ich sogar an eine allgemeine Internet-Störung in meiner
Stadt. Aber Internet geht super, sobald ich den VPN-Client stoppe.
Firewall am Laptop habe ich nicht und der Router ist eine alte Fritzbox
7362 SL, die nie ein Problem hatte.
Danke im Voraus
Gruß
W.
D. A. schrieb:> - Internet geht nicht mehr (es geht nur wenn ich den OpenVPN Client auf> meinem Laptop stoppe)
Deine Default Route deines Client wird wohl auf das Remote (der von vom
VPN Server)umgebogen. Dein Client darf dann nicht über dein Firmennetz
wieder ins
internet. Das kann so gewollt sein.
Lösung1: Sorge dafür das dein Client wieder rausdarf.
dann geht jeglicher traffic über dein VPN (was gewollt sein kann)
Das ist dann die übliche Technik die auch „VPN“ Firmen anwenden.
Lösung2: Sorge dafür das nur die Netze die du per VPN erreichen willst
auch über VPN gehen und die default route so bleibt wie ohne VPN.
Beides sollte über deinen VPN Server einzurichten sein. Wie genau
keine Ahnung bei deinem Router Modell...
Ansonsten gibt es natührlich auch andere Stolpersteine wie z.B
DNS. dein Client bekommt dann den „Firmen DNS“ der dann aber für d
en Client gar nicht beantworten kann/darf.
D. A. schrieb:> - Jegliche ssh-Verbindung zu meinem remote-PC wird zwar hergestellt (ich> sehe das Home Verzeichnis meines Linux-PCs in der Firma. Aber die> Verbindung hängt nach einigen Sekunden…
„hängt“ ist für mich eher „unscharf“ und man kann da viel
reininterpretieren.
Wenn es nur „von daheim“ passiert und nicht von wo anders, dann
ist wohl „daheim“ etwas Faul. Falsche MTU ist da gerne ein Kandidat
Im Grunde kann dir ein Packet Trace da einiges verraten, dazu bedarf
es aber solide Kenntnisse um das aufzusetzen und interpretieren zu
können
Kurzes Update:
dank folgendes Artikels bin ich einen halben Zentimeter weiter gekommen:
https://www.computerbild.de/artikel/cb-Tipps-Internet-FritzBox-OpenVPN-24113743.html
Die Ports habe ich auf der Client-Seite freigegeben (exakt wie auf dem
Bild im Artikel zu sehen ist).
Dennoch habe ich immer wieder dasgleiche Problem... Die VPN-Verbindung
lässt sich aufbauen. Doch die ssh-Verbindung friert nach wenigen
Sekunden ein...
Ok,
danke für die Vorschläge.
Ich weiß auch nicht, wie man dieses Split machen kann. Ich werde mich
gründlich informieren... Das ist schon eine Richtung.
Was an SSH betrifft: Ich habe ein Screeshot hochgeladen. Die Verbindung
zum Remote-PC über ssh (beide Maschinen sind mit Ubuntu ausgestattet)
erfolgt. Dann... egal was ich für einen Befehl im Terminal eingeben,
friert die Verbindung ein. Auf dem Bild ist der Befehl "top" zu sehen.
Aber es spielt keine Rolle, was ich da eintippe. Die ssh-Verbindung
friert einfach ein...
D. A. schrieb:> Dennoch habe ich immer wieder dasgleiche Problem... Die VPN-Verbindung> lässt sich aufbauen. Doch die ssh-Verbindung friert nach wenigen> Sekunden ein...
Friert die SSH Verbindung auch ein, wenn Du nichts tippst oder nur
kleine Ausgaben erzeugst? Z.B. friert sie auch bei einem "echo hello
world!" ein? Oder erst wenn Du irgendwelche längere Ausgaben von Deinem
Server generierst, also z.B. ein Verzeichnislistung oder das Anzeigen
einer Textdatei (oder eben "top")?
Wenn die Verbindung erst bei einer (längeren) Ausgabe einfriert, deutet
das auf ein Problem mit der Paketgröße und der Path MTU hin. Sprich die
Gegenstelle schickt zu große Netzwerkpakete, die auf dem Weg zu Dir
geteilt werden müssten (aufgrund der Einkapselung für den Tunnel), aber
ein "Don't Fragment" Flag gesetzt haben und deswegen einfach verworfen
werden. Die Gegenstelle merkt das aber nicht und versucht weiter große
Pakete zu schicken. Normalerweise gibt es dafür Mechanismen, so dass die
Gegenstelle dies erkennt und dann die Pakete verkleinert. Funktioniert
aber je nach Randbedingungen nicht immer.
Wow... Danke für die Infos!
Es friert nur nach langem Befehlen ("top", "ls -l", "htop", usw.) ein.
Ich bin jetzt im Büro (hier funktioniert dieselbe VPN Verbindung prima),
daher kann ich keinen Test machen. Ich werde aber heute Abend Zuhause
versuchen, den MTU Wert anzupassen.
Danke!
https://www.anleitungen.rrze.fau.de/internet-zugang/vpn/
Du willst einen Split Tunnel wenn der Zugriff ins Internet über deinen
Heimanschluss laufen soll.
Schau dir die configs des RRZE dazu an, die sind dahingehend eigentlich
immer aktuell und als Vorlage ideal.
Ich persönlich würde auf Wireguard an deiner Stelle setzen, damit kannst
du einen weitaus höheren Durchsatz erzielen.
Sind irgendwelche Firewalls/DPI aktiv?
Wie schauen die Netze und Routen aus?
In der SSH config kannst du Keepalive usw. eintragen, manche Firewall
ist da ganz besonders. QoS muss man auch überprüfen, genauso auch
einfach die Verbindung und Kapazitäten an sich.
D. A. schrieb:> Es friert nur nach langem Befehlen ("top", "ls -l", "htop", usw.) ein.> Ich bin jetzt im Büro (hier funktioniert dieselbe VPN Verbindung prima),> daher kann ich keinen Test machen. Ich werde aber heute Abend Zuhause> versuchen, den MTU Wert anzupassen.
Ja, ich kenne mich mit OpenVPN jetzt nicht so aus, aber ggfs. musst Du
die MTU des Tunnel-Interfaces auf Deinem Linux-Rechner kleiner stellen
(1400 könnte ein guter Wert für den Anfang sein, je nachdem was der
aktuelle Wert ist).
Du könntest auch mit iptables ein "tcp mss clamping" realisieren, aber
ich würde erstmal das mit der Tunnel MTU versuchen.
So Jungs...
ich versuche seit einer Stunde dieses Problem zu lösen. Leider nichts...
Aber der Reihenfolge nach:
1) Zuhause habe ich einen Laptop (Ubuntu 20.04) und einen alten PC mit
Ubuntu 18.04. In beiden habe ich die gleichen Konfigurationsdatei des
OpenVPN-Clients installiert.
2) Bei beiden taucht das gleiche Problem auf.
3) Ich habe versucht eine VPN-Verbindung über mein Handy (Tethering über
USB-Kabel) zu realisieren: Die VPN-Verbindung funktioniert einwandfrei.
ssh friert nicht ein. Ich kann den Remote-Rechner problemlos bedienen
und zwar sowohl vom Laptop aus als auch vom alten PC aus.
4) Der MTU-Wert habe ich am VPN-Server (also der Router in der Firma)
über eine Fernverbindung über Tethering von 1500 (dieser Wert war
voreingestellt) auf 1400 umgestellt. Der MTU-Wert am OpenVPN-Client
(also Laptop und PC Zuhause) habe ich ebenfalls auf 1400 gedrosselt
(standardmäßig beträgt er 1500).
5) Versuche ich eine VPN-Verbindung über Kabel herzustellen dann habe
ich die oben oft erwähnten Probleme. Wechsle ich zum Tethering dann geht
wieder alles...
Das waren die ersten Ergebnisse. Nun habe ich einen Termin.
Später versuche ich:
a) Den MTU auf 1300 an beiden Seiten zu drosseln
b) Den Parameter "keepalive" in der SSH config Datei einzustellen.
FW habe ich nicht (nur am Router. Ein Portforwarding habe ich aber
bereits gemacht).
Es hat geklappt!!!!
Zuerst habe ich die "Keepalive" Option in der SSH-Datei eingepflegt und
leider nichts erzielt.
Dann...habe ich den Link von Peter Pan angeschaut. Da bin ich auf die
Beispiele für OpenVPN config Dateien stutzig geworden und mir die
Parameter in diesen Dateien genauer unter die Lupe genommen.
Dann bin ich auf die folgende Konfiguration gestoßen:
1
# Neue Einstellungen aus: https://blog.doenselmann.com/openvpn-durchsatz-optimieren/
2
tun-mtu 1400
3
fragmentation 1300
4
mssfix 1300
5
push "tun-mtu 1400"
6
push "fragmentation 1300"
entscheidend waren hier: fragmentation, mssfix und die beiden
Befehle push, die die Möglichkeit anbieten, den remoten Server aus dem
Client aus zu übersteuern (ich bin immer davon ausgegangen, dass ich vor
dem Router sitzen muss, um ihn zu konfigurieren).
Das Resultat ist Klasse!!! SSH friert nicht mehr ein und selbst Internet
geht.
Ich muss nun den Split-Tunnel einrichten und dann bin ich wirklich
zufrieden.
Welches Buch über Netzwerke für Laien würdet ihr empfehlen?
Gruß
D. A. schrieb:> Internet geht nicht mehr (es geht nur wenn ich den OpenVPN Client auf> meinem Laptop stoppe)
Wenn du den Internetzugriff nicht über das VPN leiten willst, darf
folgende Direktive NICHT in der Server config stehen (also
auskommentieren).