arminweinmann
Goto Top

OPENVPN: Kann ich auf der Serverseite dem verbundenen Client sagen dass der Client seine Verbindung beenden soll?

Hallo an Alle

Wir benutzen für Servicezwecke OpenVPN damit unsere Kunden in Absprache mit unseren Serviceleuten eine Verbindung aufbauen können über die wir die Fernwartung durchführen. Der Client ist dabei beim Kunden platziert, der Server wird bei uns interaktiv gestartet. Dies gibt dem Kunden die Sicherheit dass sich niemand ohne sein Wissen zu ihm verbindet, auch der Weg durch Router und/oder Firewall ist einfacher.
Nun haben wir immer mal wieder den Fall, dass ein - vermutlich - gelangweiter Maschinenbediener mit dem System spielt und einen Verbindungsaufbau initiert. Es passiert erstmal nichts, er vergisst es und der OpenVPN Client ist aktiv und versucht permanent eine Verbindung zum konfigurierten OpenVPN Server aufzubauen. Damit ist dieser Server blockiert, ein anderer Kunde kann diese Verbindung nicht mehr verwenden da sich die beiden gegenseitig raus werfen. Alle Kundensysteme sind mit einer Handvoll verschiedener Konfigurationen für verschiedene Service-Rechner versehen, aber auf allen die gleichen. Wir können also auf der Serverseite erstmal nicht ohne weiteres feststellen wer der Störenfried ist.

Gibt es eine Möglichkeit auf der Serverseite dem Client zu sagen dass er sich beenden bzw. seine Verbindungsversuche einstellen soll?

Vielen Dank!
Armin

Content-ID: 419308

Url: https://administrator.de/contentid/419308

Ausgedruckt am: 04.11.2024 um 18:11 Uhr

138810
138810 19.02.2019 aktualisiert um 13:58:04 Uhr
Goto Top
aber auf allen die gleichen
Das ist dämlich umgesetzt.
Separate Accounts/Zertifikate für jeden einsetzen, dann Account blocken bzw. zusätzlich Fail2ban
Kraemer
Kraemer 19.02.2019 um 13:58:12 Uhr
Goto Top
Zitat von @ArminWeinmann:
der Server wird bei uns interaktiv gestartet.
das ist nicht interaktiv - das ist nicht zu Ende gebaut...
ArminWeinmann
ArminWeinmann 19.02.2019 um 13:58:58 Uhr
Goto Top
Ja, kann man für zukünftige Systeme machen, mit der bereits installierten Basis geht das nicht mehr so einfach
138810
138810 19.02.2019 aktualisiert um 14:02:17 Uhr
Goto Top
Damit ist dieser Server blockiert, ein anderer Kunde kann diese Verbindung nicht mehr verwenden da sich die beiden gegenseitig raus werfen
Man kann Credentials auch für Mehrfachverbindungen zulassen dann wird niemand rausgeworfen.
Sorry aber da hat einer nix zu Ende gedacht .

der bereits installierten Basis geht das nicht mehr so einfach
Hätte man mal vorher drüber nachdenken sollen. Jetzt fällt das Kartenhaus halt zwangsweise zusammen.
ArminWeinmann
ArminWeinmann 19.02.2019 um 14:02:38 Uhr
Goto Top
Hallo,
den Kommentar verstehe ich jetzt nicht so ganz ...
Wir starten eine .ovpn Datei in der die Konfiguration für den Server hinterlegt ist, dann läuft eine openvpn.exe bis man in deren Konsolenfenster 'F4' drückt.
Was kann ich daran zu Ende bauen?
138810
138810 19.02.2019 aktualisiert um 14:05:22 Uhr
Goto Top
Wenn dann schaltet man solche EinwahlAccounts explizit für eine Session frei und lässt die nicht einfach so aktiv, das ist Bullshit sorry.
ArminWeinmann
ArminWeinmann 19.02.2019 um 14:05:30 Uhr
Goto Top
Ist auch nicht auf meinem Mist gewachsen, am Anfang solls immer einfach sein, bis man dann merkt wieso komplexe Szenarien doch Vorteile haben
129580
129580 19.02.2019 aktualisiert um 14:08:42 Uhr
Goto Top
Hallo,

Gibt es eine Möglichkeit auf der Serverseite dem Client zu sagen dass er sich beenden bzw. seine Verbindungsversuche einstellen soll?

wie schon bereits geschrieben wurde, ist das bisher sehr unschön gelöst. Früher oder später wirst du das korrigieren müssen.
So bleibt dir aktuell nur die Option, den betreffenden Client via iptables zu blocken.

Viele Grüße,
Exception
138810
138810 19.02.2019 aktualisiert um 14:10:32 Uhr
Goto Top
Zitat von @ArminWeinmann:

Ist auch nicht auf meinem Mist gewachsen, am Anfang solls immer einfach sein, bis man dann merkt wieso komplexe Szenarien doch Vorteile haben
Dann hast du jetzt die Chance es besser zu machen.
Bis dahin blocke den Zugriff über die FW und lass dann adhoc nur noch die IP durch die explizit eine Anfrage per Mail/Telefon wahtever stellen.
TripleDouble
TripleDouble 19.02.2019 um 14:09:24 Uhr
Goto Top
Hallo,

ich kenne OpenVPN nur wenig, doch wird es da bestimmt eine Möglichkeit geben, client-seitig eine maximale Anzahl von Verbindungsversuchen zu konfigurieren, nach denen der Client dann "aufgibt".

TD
fredmy
fredmy 19.02.2019 um 18:35:36 Uhr
Goto Top
Hallo,
hm.. nicht zu Ende gedacht und auch so gebaut.

zu 2 .. schau in die Logs - da steht wer die Verbindung herstellt/herstellen will.


Fred
Pedant
Pedant 19.02.2019 aktualisiert um 21:17:19 Uhr
Goto Top
Hallo Armin,

Zitat von @ArminWeinmann:
Gibt es eine Möglichkeit auf der Serverseite dem Client zu sagen dass er sich beenden bzw. seine Verbindungsversuche einstellen soll?
Ja die gibt es. Lass die Verbindung zu und schieß remote den Client ab.
taskkill.exe /s VPNClientIP /u Kundenname /p Kundenkennwort /im openvpn.exe
Das funktioniert aber nur, wenn Du für "Kundenname" und "Kundenkennwort" etwas Passendes einsetzen kannst, was durchaus sein kann, wenn Ihr Fernwartung für den Kunden macht.
Da Du nicht weiß, welcher Kunde es ist, müsstest Du es mit allen in Frage kommenden Benutzernamen/Kennwort-Kombinationen ausprobieren, bis nicht mehr die Fehlermeldung erscheint:
"FEHLER: Der Benutzername oder das Kennwort ist falsch."
sondern die Erfolgsmeldung:
"ERFOLGREICH: Der Prozess "openvpn.exe" mit PID 0815 wurde beendet."

Davon unberührt gilt, was die Kollegen schon schrieben.
Mindestens separate Zertifikate pro Kunde solltest Du erstellen und kannst das auch nachträglich tun, ohne das Konstrukt funktionell ändern zu müssen.
Du musst dann nur noch die entsprechenden Dateien gezielt an die jeweiligen Kunden verteilen.
Der Aufwand dafür ist aber vergleichsweise klein.

Nachtrag:
Im Konsolenfenster Deines OpenVPN-Servers siehst Du welche externe IP die Verbindung aufbaut oder aufzubauen versucht.
Die könnte Dir die Möglichkeit geben, Rückschlüsse zu ziehen, welcher Kunde es ist oder zumindest helfen das einzugrenzen.
Ob Du es nach dem Eingrenzen dann mit Taskkill oder Telfon versuchst sei Dir überlassen.

Gruß Frank
panguu
panguu 19.02.2019 um 21:28:21 Uhr
Goto Top
Hallo Armin,

ist das (k)eine Road-Warrior Konfiguration auf eurem OpenVPN-Server? Es wundert mich, dass sich nur ein Client auf euren OpenVPN-Server verbinden kann. Du schreibst auch, dass ihr keine Möglichkeit auf Serverseite habt, festzustellen wer der Störenfried ist. Wieso nicht? Wenn einer das feststellen kann, dann doch IHR. Ihr seht doch in den Logs wer Verbindungsaufbau initiiert, ihr habt die IP-Adresse und könntet das also sehr einfach eurem Kunden zuordnen (mit großer Wahrscheinlichkeit).

Ich würde euren OpenVPN-Server umkonfigurieren, denn für euren Einsatzzweck ist der schlichtweg falsch konfiguriert. Da können eure Kunden doch nix dafür.
LordGurke
LordGurke 19.02.2019 um 21:54:16 Uhr
Goto Top
Konfiguriere OpenVPN zumindest temporär so, dass er mehrfache Verbindungen vom selben Nutzer zulässt — dann ist das Problem mit den anderen Systemen erstmal weg.

Und dann: Nutze es doch aus, dass der Client sich verbindet. Ich meine, ihr sollt doch die Wartung machen — also lasse den Client rein, verbinde dich über den Fernwartungszugang und beende dort dann den VPN-Client.
Natürlich in Absprache mit dem Kunden.
ArminWeinmann
ArminWeinmann 25.02.2019 um 08:34:20 Uhr
Goto Top
OK, ich danke allen die mir geantwortet haben, das Problem wird sich also nur grundsätzlich lösen lassen.