Verbindung zum Access Server mit Linux
Auswahl der Client-Software
Die Verbindung zum OpenVPN Access Server von Linux aus erfordert ein Client-Programm. Es erfasst den Datenverkehr, den Sie durch den OpenVPN-Tunnel schicken wollen, verschlüsselt ihn und leitet ihn an den OpenVPN-Server weiter. Und natürlich auch umgekehrt, um den Rückverkehr zu entschlüsseln.
Besprochene Linux-Pakete
OpenVPN Access Server | openvpn-as |
OpenVPN 3 Linux Client | openvpn3 |
OpenVPN open source | openvpn |
OpenVPN 3 Linux Client
Das OpenVPN 3 Linux Projekt ist ein neuer Client, der auf der OpenVPN 3 Core Library aufbaut. Dieser Client ist das offizielle OpenVPN Linux Client Programm. Einen Überblick über die Funktionen, häufig gestellte Fragen und eine Anleitung zur Installation des openvpn3-Pakets finden Sie auf unserer OpenVPN 3 für Linux-Seite.
Nachdem Sie den dortigen Anweisungen zur Installation des Clients gefolgt sind, benötigen Sie ein Verbindungsprofil. Dies ist eine Datei, die von Ihrer OpenVPN Access Server-Installation für Ihr spezielles Benutzerkonto erstellt wird. Sie enthält die erforderlichen Zertifikate und Verbindungseinstellungen. Rufen Sie die Client-Weboberfläche Ihres Access Servers auf (die Hauptadresse, nicht den /admin-Teil). Melden Sie sich mit Ihren Benutzeranmeldeinformationen an. Es wird eine Liste der Dateien angezeigt, die Sie herunterladen können. Wählen Sie das Profil mit Benutzersperre oder das Profil mit automatischer Anmeldung, und Sie erhalten eine Datei client.ovpn. Speichern Sie diese Datei auf Ihrem Linux-Betriebssystem.
Sobald Sie die Datei auf Ihr Linux-System verschoben haben, können Sie sie importieren.
openvpn3 config-import --config ${client.ovpn}
Sie können eine neue VPN-Sitzung starten:
openvpn3 session-start --config ${client.ovpn}
Sie können eine laufende VPN-Sitzung verwalten:
openvpn3 sessions-list
Und so weiter. Weitere Details können hier gefunden werden: OpenVPN3Linux.
OpenVPN open source OpenVPN CLI Programm
Das Open Source Projekt Client Programm kann sich auch mit dem Access Server verbinden. Das Paket ist in den meisten Distributionen verfügbar und wird einfach als openvpn bezeichnet. Es unterstützt die Option, sich mit mehreren OpenVPN-Servern gleichzeitig zu verbinden, und enthält eine Dienstkomponente, die automatisch und geräuschlos alle Auto-Login-Profile starten kann, die sie im Ordner /etc/openvpn findet, noch bevor sich ein Benutzer angemeldet hat. Diese Dienstkomponente kann mit den in Ihrer Linux-Distribution verfügbaren Tools so eingestellt werden, dass sie beim Booten automatisch gestartet wird, sofern dies unterstützt wird. Unter Ubuntu und Debian wird das openvpn-Paket bei der Installation automatisch so konfiguriert, dass es beim Booten startet.
Um den OpenVPN-Client unter Linux zu installieren, ist es in vielen Fällen möglich, einfach die Version zu verwenden, die sich im Software-Repository der Linux-Distribution selbst befindet. Sollten Sie bei der Verwendung veralteter Software auf Verbindungsprobleme stoßen, kann dies an der fehlenden Unterstützung für höhere TLS-Versionen in älteren Versionen von OpenVPN liegen. Wenn Sie den OpenVPN-Client auf Ihrem Linux-System installieren möchten, folgen Sie den Anweisungen im Open-Source-Wiki der openvpn-Community.
Nach der Installation benötigen Sie ein Verbindungsprofil. Dies ist eine Datei, die von Ihrer OpenVPN Access Server-Installation für Ihr spezielles Benutzerkonto erstellt wird. Sie enthält die erforderlichen Zertifikate und Verbindungseinstellungen. Rufen Sie die Client-Weboberfläche Ihres Access Servers auf (die Hauptadresse, nicht den /admin-Teil). Melden Sie sich mit Ihren Benutzeranmeldeinformationen an. Es wird eine Liste der Dateien angezeigt, die Sie herunterladen können. Wählen Sie das Profil mit Benutzersperre oder das Profil mit automatischer Anmeldung, und Sie erhalten eine Datei client.ovpn. Speichern Sie diese Datei irgendwo auf Ihrem Linux-Betriebssystem. OpenVPN Access Server unterstützt servergesperrte, benutzergesperrte und Auto-Login-Profile, aber der OpenVPN-Befehlszeilen-Client kann sich nur mit benutzergesperrten oder Auto-Login-Verbindungsprofilen verbinden.
Wir gehen davon aus, dass Sie die Verbindung entweder über die Befehlszeile als Root-Benutzer oder über den Dienst-Daemon starten. Wenn Sie möchten, dass auch unprivilegierte Benutzer eine Verbindung herstellen können, finden Sie im Community-Wiki weitere Informationen dazu, wie Sie das implementieren können. Hier werden wir uns auf die einfachste Implementierung konzentrieren; führen Sie die Verbindung als Root-Benutzer direkt oder über den Dienst-Daemon aus.
Starten Sie eine Verbindung mit einem Auto-Login-Profil manuell:
openvpn --config client.ovpn
Starten Sie eine Verbindung mit einem Benutzer-gesperrten Profil manuell:
openvpn --config client.ovpn --auth-user-pass
Wenn Sie Google Authenticator oder einen anderen zusätzlichen Authentifizierungsfaktor verwenden, fügen Sie den Parameter auth-retry hinzu:
openvpn --config client.ovpn --auth-user-pass --auth-retry interact
Um eine Auto-Login-Verbindung über den Service-Daemon zu starten, setzen Sie client.ovpn in /etc/openvpn/ ein und benennen Sie die Datei um. Sie muss mit .conf als Dateierweiterung enden. Vergewissern Sie sich, dass der Service-Daemon so aktiviert ist, dass er nach einem Neustart ausgeführt wird, und starten Sie dann einfach das System neu. Das Profil vom Typ Auto-Login wird automatisch übernommen und die Verbindung startet von selbst. Sie können dies überprüfen, indem Sie die Ausgabe des ifconfig-Befehls überprüfen; Sie sollten einen tun0-Netzwerkadapter in der Liste sehen.
Eine wichtige Funktion, die dem Kommandozeilen-Client fehlt, ist die Möglichkeit, automatisch DNS-Server zu implementieren, die vom VPN-Server gepusht werden. Es ist zwar möglich, erfordert aber die Installation eines DNS-Verwaltungsprogramms wie resolvconf oder openresolv und kann mit der vorhandenen Netzwerkverwaltungssoftware in Ihrem Betriebssystem kollidieren oder nicht. Die Idee dabei ist, dass Sie ein Skript verwenden, das läuft, wenn die Verbindung aufgebaut wird und wenn sie abgebaut wird, und das resolvconf oder openresolv verwendet, um die DNS-Server für Sie zu implementieren. Der Grund, warum dieser Client nicht in der Lage ist, die Verwaltung komplett selbst zu übernehmen, liegt vor allem darin, dass es in einem Betriebssystem wie Windows, Macintosh, Android oder iOS bereits eine etablierte, einheitliche Methode für die Verwaltung von DNS gibt. Daher ist es für uns ein Leichtes, einen Software-Client für diese Betriebssysteme zu erstellen, der bereits weiß, wie man DNS handhabt. Aber Linux gibt es in so vielen Variationen und unterstützt auch verschiedene Programme und Methoden zur Implementierung von DNS-Servern, und so war es nur vernünftig, die eingebaute DNS-Unterstützung aus dem OpenVPN-Programm herauszulassen und stattdessen, wo möglich, ein Skript bereitzustellen, das die DNS-Implementierung übernimmt. Ein solches Skript könnte sogar von Ihnen selbst geschrieben werden, um alle Aufgaben zu erledigen, die notwendig sind, um die DNS-Server in Ihrer speziellen Situation zu implementieren.
Glücklicherweise gibt es unter Ubuntu und Debian zum Beispiel das Skript /etc/openvpn/update-resolv-conf, das mit dem openvpn-Paket geliefert wird und die DNS-Implementierung für diese Betriebssysteme übernimmt. Sie müssen nur die Verwendung dieser Skripte aktivieren, indem Sie die folgenden Anweisungen befolgen:
Öffnen Sie Ihre Datei client.ovpn in einem Texteditor:
nano client.ovpn
Fügen Sie ganz unten einfach diese Zeilen ein:
script-security 2up /etc/openvpn/update-resolv-confdown /etc/openvpn/update-resolv-conf
Die erste Zeile aktiviert die Verwendung externer Skripte zur Abwicklung der DNS-Implementierungsaufgaben. Die Zeilen „up“ und „down“ sind dazu da, um DNS-Server zu implementieren, die vom VPN-Server gepusht werden, wenn die Verbindung aufgebaut wird, und um dies wieder rückgängig zu machen, wenn die Verbindung abgebaut wird.
Ubuntu Netzwerkverwaltungsprogramm
Es gibt auch die Möglichkeit, eine Verbindung über die grafische Benutzeroberfläche herzustellen, indem man die openvpn-Erweiterung für das Gnome-Netzwerkmanager-Plugin verwendet. Allerdings ist dies derzeit etwas trickreich einzurichten. Es besteht zum Beispiel die falsche Annahme, dass alle VPNs in der Lage sind, den Internetverkehr umzuleiten, und ältere Versionen verstehen möglicherweise das .ovpn-Dateiformat nicht, so dass Sie das darin eingebettete Zertifikat in eine separate Datei aufteilen müssen. Außerdem müssten Sie wahrscheinlich in die Optionen schauen, um sicherzustellen, dass eine Standard-Internetverkehrsroute, die durch den VPN-Server führt, nicht immer standardmäßig aktiviert ist, insbesondere bei Servern, bei denen Sie nur Zugang zu einigen internen Ressourcen und nicht zum gesamten Internet gewähren. Der Vorteil der GUI-Komponente ist jedoch, dass Sie die Verbindung von der Desktop-Umgebung unter Linux aus starten und stoppen können.