OpenVPN vor Windows Login

Besonders bei Mitarbeitern, die nur im Außendienst arbeiten, ist es interessant, vor dem Login bereits eine Verbindung über OpenVPN aufbauen zu können. Da dies leider nicht, wie mit dem Windows-eigenen VPN-Dienst, bereits aus der Loginmaske möglich ist, muss hier etwas getrickst werden.

Die Grundidee: wir starten den OpenVPN Client als Windows Dienst beim Hochfahren. Dazu muss OpenVPN so konfiguriert sein, dass die Config-Dateien in C:\Program Files\OpenVPN\config liegen. Die config dort muss „autostart.ovpn“ heißen.

In der autostart.ovpn findet sich die Zeile „auth-user-pass“; diese ersetzen wir durch „auth-user-pass login.txt“ und erstellen im selben Verzeichnis eine „login.txt“. Der Inhalt von dieser: in der ersten Zeile der Benutzername, in der zweiten das Kennwort.

Im OpenVPN-Client wurde der Config-Pfad angepasst
Wir haben Zertifkate, OVPN- und Login-Datei direkt im Config-Ordner

Als nächstes laden wir uns das Programm „non-sucking service manager“ herunter; dieses findet sich auf folgender Webseite: https://nssm.cc/. Dieses kopieren wir ebenfalls direkt in C:\Program Files\OpenVPN\config

Nun können wir prüfen, ob unser Verbindungsaufbau prinzipell funktionieren könnte:

cd "C:\Program Files\OpenVPN\config"
"C:\Program Files\OpenVPN\bin\openvpn.exe" --config autostart.ovpn

War der Verbindungsaufbau erfolgreich („Initialization Sequence Completed„) können wir die Verbindung mit STRG+X trennen. Im Anschluss installieren wir nun mit Hilfe von nssm.exe den Dienst. In diesem Fall nennen wir ihn „OpenVPN-Firma“

cd "C:\Program Files\OpenVPN\config"
nssm.exe install OpenVPN-Firma "C:\Program Files\OpenVPN\bin\openvpn.exe"
nssm.exe set OpenVPN-Firma AppDirectory "C:\Program Files\OpenVPN\config"
nssm.exe set OpenVPN-Firma AppParameters "--config autostart.ovpn"
nssm.exe set OpenVPN-Firma AppStdout "C:\Program Files\OpenVPN\log\autostart.log"
nssm.exe set OpenVPN-Firma AppStderr "C:\Program Files\OpenVPN\log\autostart.log"
nssm.exe set OpenVPN-Firma AppStdoutCreationDisposition 2
nssm.exe set OpenVPN-Firma AppStderrCreationDisposition 2
nssm.exe set OpenVPN-Firma DependOnService Dhcp tap0901
nssm.exe set OpenVPN-Firma DisplayName "VPN Autostart"
nssm.exe set OpenVPN-Firma Start SERVICE_AUTO_START
nssm.exe set OpenVPN-Firma Description "Automatischer VPN-Verbindungsaufbau beim Systemstart"
nssm.exe start OpenVPN-Firma

Falls sich jemand das branden möchte: „OpenVPN-Firma“ ist die Dienstkennung. Diese wird z.B. für „net stop“ und „net start“ genutzt. „VPN Autostart“ (Zeile 10) ist der Anzeigename in services.msc. Und „Automatischer Verbindungsaufbau…“ wird bei services.msc in der linken Seite angezeigt.

Hinweis: Teile dieser Befehle von hier sind in aus dem offiziellen OpenVPN Wiki und hier zur Vereinfachung aufgelistet. Der originale Artikel findet sich unter https://community.openvpn.net/openvpn/wiki/IntegratingOpenvpnWithNssm

Kategorien: Active Directory, OpenVPN

tino-ruge.de wird tino-kuptz.de

Im Laufe des Jahres 2024 wird dieser Blog umziehen. Alle Inhalte werden 1:1 weitergeleitet, nix geht verloren. Neue Domain, alter Autor, alter Inhalt.