Wie richtet man OpenVPN mit MFA auf OPNsense ein?
Road Warriors sind mobile Benutzer, die sicheren Zugang zur Infrastruktur einer Organisation benötigen. OPNsense verwendet OpenVPN für seine SSL VPN Road Warrior-Konfiguration und integriert OTP (One Time Password) mit Standard-Token und Google Authenticator.
OpenVPN ist ein Open-Source-VPN-Protokoll, das sichere Punkt-zu-Punkt- oder Site-to-Site-Verbindungen mithilfe von Virtual Private Network (VPN)-Techniken erstellt. Es wurde 2001 von James Yonan entwickelt und ist heute eines der beliebtesten VPN-Protokolle unter VPN-Nutzern. Es wird unter der GNU General Public License vertrieben. (GPL). An dem Projekt arbeiten OpenVPN Inc. und eine große Anzahl von Open-Source-Entwicklern.
Es unterstützt alle gängigen Betriebssysteme, einschließlich macOS, FreeBSD, Windows, Linux, iOS und Android.
Das OpenVPN-Protokoll hat ein hohes Sicherheitsniveau. Es kommt mit 256-Bit-Verschlüsselung über OpenSSL. OpenVPN kann zwei verschiedene Protokolle für die Datenübertragung verwenden: TCP und UDP. Das am häufigsten verwendete und empfohlene Protokoll ist UDP. Vorgeschlüsselte Schlüssel, zertifikatbasierte Authentifizierung, Benutzername/Passwort-Authentifizierung und MFA werden alle von OpenVPN unterstützt.
Die Faktoren Benutzername/Passwort und ein Token sind für die Zwei-Faktor-Authentifizierung erforderlich. Eine weitere Schicht, nämlich ein Benutzerzertifikat, wird von OPNsense unterstützt. Das bedeutet, dass das Benutzersiegel jeden Benutzer eindeutig identifizieren wird.
In diesem Tutorial erklären wir Ihnen, wie Sie den OpenVPN-Server auf Ihrer OPNsense-Firewall installieren und konfigurieren, damit Ihre Remote-Clients sicher über Ihren VPN-Tunnel auf das Internet zugreifen können. Wir werden auch MFA für die VPN-Benutzerauthentifizierung konfigurieren, indem wir die folgenden Mehrfaktoren verwenden:
-
Benutzerzertifikat
-
Benutzername/Passwort
-
Token (TOTP)
Es wird dringend empfohlen, dass Sie Zenarmor auf Ihrem OpenVPN-Server installieren, um die Sicherheit Ihres Netzwerks zu erhöhen. Sie können Sicherheitsbedrohungen, die von Ihrer OpenVPN-Tunnel-Schnittstelle ausgehen, blockieren, indem Sie Zenarmor konfigurieren, Webfilterung verwenden und Anwendungskontrolle anwenden.
Die OpenVPN-Konfiguration ist sehr einfach. Sie können das OpenVPN-Tunnel mit MFA in der OPNsense-Firewall einrichten, indem Sie einfach die sieben unten aufgeführten Schritte befolgen.
-
Erstellen Sie eine Zertifizierungsstelle
-
Konfigurieren Sie OpenVPN in OPNsense
-
Erstellen Sie einen VPN-Benutzer
-
TOTP-Zugriffsserver hinzufügen
-
Erstellen Sie den SSL-VPN-Dienst
-
Firewall-Regeln hinzufügen
-
OpenVPN-Client exportieren
Um dieser OpenVPN-Installation im OPNsense-Firewall-Tutorial folgen zu können, müssen Sie über die folgenden Geräte und Root-Rechte verfügen.
-
OPNsense 21.7.6 Firewall, konfiguriert als OpenVPN VPN-Server.
-
Als OpenVPN-VPN-Client wird ein Windows-PC oder ein Android-Gerät eingerichtet.
-
Google Authenticator-Anwendung installiert.
1. Erstellen einer Zertifizierungsstelle
OpenVPN benötigt Zertifikate, um den VPN-Dienst durch Verschlüsselung und Authentifizierung zu schützen. Der erste Schritt bei der Konfiguration von OPNsense besteht darin, eine Zertifizierungsstelle zu erstellen. Um fortzufahren, müssen alle Optionen auf dieser Seite ausgewählt und alle Formulare korrekt ausgefüllt werden. Wenn Sie bereits einen haben, können Sie diesen Schritt überspringen.
Sie können eine neue Zertifizierungsstelle erstellen, indem Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu System → Trust → Authorities.
Abbildung 1. Verwalten von Zertifizierungsstellen in OPNsense
-
Klicken Sie auf die Schaltfläche "Hinzufügen" mit dem
+
-Symbol in der oberen rechten Ecke des Formulars, um ein neues zu erstellen. -
Füllen Sie das Feld Descriptive Name für die Zertifizierungsstelle aus, z. B.
OPNsenseOpenVPNCA
. -
Wählen Sie Create an internal Certificate Authority für die Method-Option.
-
Wählen Sie
RSA
für Key Type. -
Setzen Sie die Key length (bits) auf
4096
. Eine längere Bitlänge erhöht die Sicherheit des Schlüssels, aber sie verlängert auch die Verarbeitungszeit. Es wird nicht empfohlen, dass die Schlüssellänge weniger als 2048 Bit beträgt. -
Digest Algorithm auf
SHA512
. -
Setzen Sie Lifetime (days) auf 365, was bedeutet, dass alle von dieser CA signierten Zertifikate nach einem Jahr ungültig werden. Für eine Firewall im Heimnetzwerk können Sie eine längere Lebensdauer einstellen.
-
Stellen Sie den Country Code ein, z.B.
DE
. -
Setze State, wie
Kalifornien
. -
Setze City, wie
Sunnyvale
. -
Setzen Sie Organisation, wie
MyCompany
. -
Geben Sie die Email Address ein.
-
Setzen Sie Common Name auf
internal-openvpn-ca
. -
Klicken Sie auf Save.
Abbildung 2. Erstellte Zertifizierungsstellen auf OPNsense
2. Erstellen eines Serverzertifikats
Sie können ein neues Serverzertifikat erstellen, das von den Clients verwendet wird, um die Identität des Servers bei der Verbindung zu überprüfen, indem Sie die folgenden Schritte befolgen.
-
Navigieren Sie zu System → Trust → Certificates.
Abbildung 3. Erstellte Serverzertifikate in OPNsenseKontext
infoText zu übersetzen: :::infoEs gibt bereits einige Zertifikate in der Liste, wie Sie vielleicht bemerkt haben. Dieses Zertifikat wird derzeit von der Web-Admin-Seite verwendet, die Sie gerade ansehen. Da HTTPS standardmäßig aktiviert ist, wurde es während der OPNsense-Installation erstellt.Bitte geben Sie den Text ein, den Sie übersetzen möchten.
-
Klicken Sie auf die Schaltfläche „Hinzufügen“ mit dem
+
-Symbol in der oberen rechten Ecke des Formulars, um ein neues zu erstellen. -
Wählen Sie
Erstellen Sie ein internes Zertifikat
für die Method-Option. -
Füllen Sie das Feld Description für das Serverzertifikat aus, z. B.
OpenVPN Serverzertifikat
. -
Setzen Sie die Certificate Authority auf
OPNsenseOpenVPNCA
. -
Setzen Sie Type auf
Serverzertifikat
. -
Setzen Sie die Key length (bits) auf
4096
. -
Digest Algorithm auf
SHA512
. -
Setzen Sie Lifetime (days) auf 365.
-
Stellen Sie den Speicherort des Private key auf
Auf dieser Firewall speichern
ein,Abbildung 4. Einstellungen der Serverzertifikat-Optionen in OPNsense-1
-
Stellen Sie den Country Code ein, z. B.
US
. -
Setze State, wie
Kalifornien
. -
Setze City, wie
Sunnyvale
. -
Setzen Sie Organization, wie
MyCompany
. -
Geben Sie die Email Address ein.
-
Setzen Sie den Common Name auf
OpenVPN Server Certificate
. -
Lassen Sie die anderen Einstellungen auf den Standardwerten.
Abbildung 5. Einstellungen der Serverzertifikat-Optionen in OPNsense-2
-
Klicken Sie auf Save.
Sie können Ihre Serverzertifikate auf der Zertifikate-Seite Ihrer OPNsense-Firewall verwalten. Es ermöglicht Ihnen, Benutzerzertifikate und Benutzerschlüssel anzuzeigen, zu löschen und zu exportieren, indem Sie die Aktionsschaltflächen am Ende der Zertifikatreihe verwenden.
Abbildung 6. Verwalten von Serverzertifikaten in OPNsense
3. Erstellen eines VPN-Benutzers
OPNsense bietet die folgenden Optionen zur Benutzerauthentifizierung an:
-
Zugriff für lokale Benutzer: Sie können VPN-Benutzer mit dem lokalen Benutzer-Manager von OPNsense verwalten.
-
RADIUS: Sie können Benutzer auf einem externen RADIUS-Authentifizierungsserver verwalten.
-
LDAP: Sie können den Benutzerzugriff verwalten, indem Sie Windows Active Directory-Dienste oder G Suite LDAP-Integration mit OPNsense implementieren.
Für die Authentifizierung in diesem Tutorial verwenden wir Local User Access
. Bei der Verwendung von Local User Access können pro Benutzer Zertifikate einfach in der OPNsense-GUI verwendet und verwaltet werden. Dies ist weitaus sicherer, aber je nach Anzahl der Personen, die auf den Dienst zugreifen, kann es weniger bequem sein als die Verwendung eines zentralen Authentifizierungssystems.
Um VPN-Benutzer, Passwörter und Zertifikate in der OPNsense-Firewall zu verwalten, können Sie die folgenden beiden Hauptschritte befolgen:
-
Lokalen OPNsense-Benutzer hinzufügen
-
Zertifikat für den VPN-Benutzer erstellen
1. Hinzufügen eines lokalen OPNsense-Benutzers
Wir werden in diesem Tutorial nur ein Benutzerkonto erstellen, aber das Verfahren gilt für so viele Benutzer, wie wir wollen. Sie können die unten aufgeführten Schritte befolgen, um einen lokalen Benutzer zu Ihrer OPNsense-Firewall hinzuzufügen:
-
Navigieren Sie zu System → Access → Users in Ihrer OPNsense-Firewall.
-
Geben Sie einen eindeutigen Username für das VPN-Konto ein, wie zum Beispiel
vpnuser1
. -
Geben Sie ein starkes Password für den VPN-Benutzer ein.
-
Füllen Sie das Feld Full Name aus.
-
Sie können eine E-Mail eingeben.
Abbildung 7. Erstellen eines VPN-Benutzerkontos in OPNsense-1
-
Sie können die Login shell als
/sbin/nologin
belassen, wenn das VPN-Konto nur für den VPN-Zugriff verwendet wird. Diese Option verhindert, dass sich der Benutzer in die OPNsense-Weboberfläche einloggen kann. -
Sie können ein Expiration date eingeben oder leer lassen, wenn das Konto nicht ablaufen soll.
-
Aktivieren Sie Click to create a user certificate für die Certificate-Option. Damit ein Benutzerzertifikat gleichzeitig mit der automatischen Erstellung des Benutzerkontos erstellt werden kann.
-
Aktivieren Sie
Neues Geheimnis generieren
für die OTP seed-Option, um MFA für Ihre VPN-Benutzer zu aktivieren. -
Sie können die anderen Einstellungen als Standard belassen.
-
Klicken Sie auf die Save-Schaltfläche, um die Einstellungen anzuwenden. Dies wird Sie zur Zertifikatsseite weiterleiten, um das VPN-Benutzerzertifikat zu erstellen. Die Erstellung des Zertifikats für das VPN-Benutzerkonto wird im nächsten Abschnitt erklärt.
Abbildung 8. Erstellen eines VPN-Benutzerkontos in OPNsense-2
2. Erstellen eines Zertifikats für den VPN-Benutzer
Wir werden nur ein Zertifikat für den Benutzer erstellen, den wir im vorherigen Abschnitt erstellt haben. Sie können das gleiche Verfahren für alle Benutzer anwenden, die Sie möchten. Befolgen Sie die folgenden Schritte, um ein Zertifikat für den VPN-Benutzer hinzuzufügen, den Sie zuvor in Ihrer OPNsense-Firewall erstellt haben:
-
Wählen Sie
Ein internes Zertifikat erstellen
für die Method-Option. -
Sie können das Feld Descriptive Namee so belassen, wie es ist, in unserem Beispiel
vpnuser1
. -
Setzen Sie die Certificate auf
OPNsenseOpenVPNCA
. -
Setzen Sie Type auf
Client-Zertifikat
. -
Setzen Sie die Key length (bits) auf
4096
. -
Stellen Sie den Digest Algorithm auf
SHA512
ein. -
Setzen Sie Lifetime (days) auf 365.
-
Setzen Sie den Speicherort des Private key auf
Auf dieser Firewall speichern
,Abbildung 9. Einstellungen der Client-Zertifikatoptionen in OPNsense-1
-
Lassen Sie die anderen Einstellungen auf den Standardwerten.
Abbildung 10. Einstellen der Client-Zertifikatsoptionen in OPNsense-2
-
Klicken Sie auf die Save-Schaltfläche. Dies wird Sie zur Benutzerseite weiterleiten.
-
Scrollen Sie nach unten zur Option OTP QR code.
-
Klicken Sie auf die Schaltfläche Click to unhide, um Ihren neu erstellten Seed mit Ihrer Google Authenticator-kompatiblen App zu aktivieren. Ihnen wird ein QR-Code gegeben, den Sie mit Ihrem Handy scannen können.
Abbildung 11. Aktivierung des OTP-Samens in OPNsense
-
Senden Sie den QR-Code auf sichere Weise an den Benutzer.
Abbildung 12. Erhalt des OTP-QR-Codes in OPNsense
-
Klicken Sie auf die Save-Schaltfläche, um die Einstellungen zu aktivieren.
-
Sie können das für den VPN-Benutzer erstellte Zertifikat anzeigen, indem Sie in Ihrer OPNsense-Firewall zu System → Trust → Certificates navigieren.
Abbildung 13. Anzeigen des VPN-Client-Zertifikats in OPNsenseKontext:
warnungWarnungVergessen Sie nicht, den neu generierten OTP-QR-Code auf sichere Weise an den VPN-Benutzer, hier
vpnuser1
, zu senden.
4. TOTP-Zugangsserver hinzufügen
Da wir in diesem Tutorial einen OpenVPN-Dienst mit MFA konfigurieren werden, müssen wir einen TOTP (Time-based One Time Password) Server in der OPNsense-Firewall erstellen.
Wenn Sie den OpenVPN-Server installieren, um auf Ihr Heimnetzwerk zuzugreifen, und möglicherweise keine zusätzliche Sicherheitsebene durch die Implementierung von MFA für Ihre VPN-Verbindung benötigen, können Sie diesen Schritt überspringen.
Um einen TOTP-Server in Ihrem OPNsense-System hinzuzufügen, können Sie die folgenden Anweisungen befolgen:
-
Navigieren Sie zu System → Access → Server in Ihrer OPNsense-Weboberfläche.
Abbildung 14. Zugriff-Server in OPNsense
-
Klicken Sie auf die Schaltfläche "Hinzufügen" mit dem
+
-Symbol in der oberen rechten Ecke des Formulars, um ein neues zu erstellen. -
Füllen Sie das Feld Descriptive name für den Server aus, zum Beispiel
TOTP VPN Access Server
. -
Stellen Sie den Type auf
Local + Timebased One time Password
ein. -
Lassen Sie die anderen Optionen auf Standard, wenn Sie Google Authenticator wie in unserem Tutorial verwenden. Für andere Tokens müssen Sie möglicherweise die Option Token Length ändern.
-
Klicken Sie auf Save, um den TOTP-Server hinzuzufügen.
Abbildung 15. Hinzufügen eines TOTP-Zugriffservers in OPNsense
5. OpenVPN-Server hinzufügen
Nachdem Sie die VPN-Benutzer und Zertifikate erstellt haben, können Sie mit der Einrichtung des OpenVPN-Servers in Ihrer OPNsense-Firewall beginnen. Das Hinzufügen eines neuen OpenVPN-Servers ist ein einfacher Prozess. In diesem Tutorial fügen wir einen hinzu, der die Multi-Faktor-Authentifizierung nutzt. Diese Konfiguration bietet angemessenen Schutz und ist einfach auf den Clients zu implementieren, da jeder die gleiche Konfiguration verwenden kann.
Es gibt fünf Abschnitte in der OpenVPN-Serverkonfiguration in OPNsense:
-
Allgemeine Informationen
-
Kryptografische Einstellungen
-
Tunnel-Einstellungen
-
Kundeneinstellungen
-
Erweiterte Konfiguration
Um einen OpenVPN-Server in Ihrer OPNsense-Firewall einzurichten, können Sie die folgenden Schritte befolgen:
-
Navigieren Sie zu VPN → OpenVPN → Server in Ihrer OPNsense-Weboberfläche.
Abbildung 16. OpenVPN-Server in OPNsense
-
Klicken Sie auf die Schaltfläche "Hinzufügen" mit dem
+
-Symbol in der oberen rechten Ecke des Formulars, um ein neues zu erstellen.tippEs gibt ein Zauberer-Symbol neben dem
+
-Symbol auf der OpenVPN-Server-Seite. Durch Klicken auf das Wizard-Symbol können Sie den Setup-Assistenten verwenden, um einen OpenVPN-Server zu konfigurieren. Es könnte für einige Benutzer bequemer sein.
-
Füllen Sie das Feld Descriptive name für den Server aus, z.B.
Mein OpenVPN-Server
. -
Wählen Sie
Remote Access (SSL/TLS + User Auth)
für den Server Mode, da wir MFA verwenden werden. -
Wählen Sie
TOTP VPN Access Server
für Backend for authentication.tippWenn Sie den OpenVPN-Server installieren, um auf Ihr Heimnetzwerk zuzugreifen und keine zusätzliche Sicherheitsebene durch die Implementierung von MFA für Ihre VPN-Verbindung benötigen, können Sie Local Database als Backend für die Authentifizierung auswählen. Dann werden Ihre VPN-Clients mit 2FA authentifiziert, indem lokale Benutzernamen, Passwörter und Zertifikate verwendet werden, die für ein Heimnetzwerk sicher genug sind.
-
Stellen Sie das Protocol auf
UDP
ein. -
Wählen Sie
tun
für den Device Mode. -
Setzen Sie die Interface auf
WAN
. Wenn Sie mehrere WAN-Schnittstellen haben, können Sieany
auswählen. -
Sie können den Local Port auf dem Standardwert
1194
belassen. Oder, Sie können es aus Sicherheitsgründen nach Belieben ändern.Abbildung 17. Einstellung der allgemeinen Informationsoptionen für einen OpenVPN-Server mit MFA in OPNsense
-
Stellen Sie TLS Authentication auf
Aktiviert-Authentifizierung & Verschlüsselung
ein. -
Aktivieren Sie
Automatisch einen gemeinsamen TLS-Authentifizierungsschlüssel generieren
für die TLS Shared Key-Option. -
Setzen Sie die Peer Certificate Authority auf
OPNsenseOpenVPNCA
. -
Setzen Sie Server Certificate auf
Open VPN Serverzertifikat
-
Setzen Sie die DH Parameters Length auf
4096 Bit
. -
Sie können den Encryption algorithm auf
AES-256-GCM (256-Bit-Schlüssel, 128-Bit-Block)
einstellen. -
Setzen Sie den Auth Digest Algorithm auf
SHA512
. -
Stellen Sie die Certificate Depth auf
Eins (Client+Server)
ein. -
Sie können die Option
Strikte Benutzer/CN-Übereinstimmung
aktivieren, um eine Übereinstimmung zwischen dem Common Name des Client-Zertifikats und dem Benutzernamen, der beim Login angegeben wird, für mehr Sicherheit durchzusetzen.Abbildung 18. Kryptografische Einstellungen für einen OpenVPN-Server mit MFA in OPNsense
-
Geben Sie den IP-Adressbereich im CIDR-Format für das IPv4 Tunnel-Network ein. Dies ist der IP-Adressbereich, der von Ihren VPN-Clients verwendet wird. Wählen Sie als Ihr Tunnel-Netzwerk einen IP-Bereich, der derzeit nicht in Ihrem Netzwerk verwendet wird. In diesem Tutorial wählen wir
192.168.10.0/24
als das Tunnelnetzwerk. -
Wählen Sie die Option Redirect Gateway, um Clients zu zwingen, über Ihre Firewall auf das Internet zuzugreifen. Wenn Sie diese Option nicht aktivieren möchten, können Sie Ihre LAN-Adresse für das IPv4 Local Network eingeben. Damit Ihre VPN-Clients von Ihrem lokalen Netzwerk, wie z.B.
10.10.10.0/24
, aus zugänglich sind. -
Sie können das IPv4 Tunnel Network einrichten, indem Sie das/die entfernte(n) LAN(s) eingeben, um ein
Site-to-Site-VPN
einzurichten. Sie können dies leer lassen, wenn Sie kein Site-to-Site-VPN einrichten müssen. -
Sie können einen Wert für die Option Concurrent Connections festlegen. Diese Option legt die maximale Anzahl der Clients fest, die gleichzeitig mit dieser OpenVPN-Serverinstanz verbunden werden können. Dies ist eine globale Einschränkung, die für alle verbundenen Clients gilt, nicht eine pro Benutzer. Der OpenVPN-Server erlaubt standardmäßig eine unbegrenzte Anzahl von Verbindungen zu Ihrem Server. Es wird empfohlen, dies auf einen angemessenen Wert zu setzen, selbst wenn es nur der Vernunft wegen ist.
-
Wählen Sie
legacy LZO algorithm with adaptive compression
für Compression. Wenn OpenVPN feststellt, dass die Daten in den Paketen nicht effizient komprimiert werden, wird dieser Modus die Kompression vorübergehend dynamisch deaktivieren. -
Sie können die Option Inter-client communicationn aktivieren, um die Kommunikation zwischen VPN-Clients, die mit Ihrem OpenVPN-Server verbunden sind, zu ermöglichen. Meistens müssen Sie diese Option nicht aktivieren.
-
Sie können die Option Duplicate Connections aktivieren, um mehrere gleichzeitige Verbindungen von VPN-Clients mit demselben Common Name zuzulassen.
Obwohl diese Option nicht empfohlen wird, müssen Sie sie in einigen Fällen möglicherweise aktivieren.
Abbildung 19. Tunnel-Einstellungen für einen OpenVPN-Server mit MFA in OPNsense
-
Sie können die Dynamic IP-Option aktivieren, die es einem bereits verbundenen Client ermöglicht, seine IP-Adresse zu ändern, ohne sich erneut zu verbinden.
-
Aktivieren Sie die Option Address Pool, um VPN-Clients eine IP-Adresse für den virtuellen Adapter bereitzustellen.
-
Aktivieren Sie die Topology-Option, damit VPN-Clients nur eine einzelne IP und nicht ein isoliertes IP-Subnetz erhalten. Zur Kompatibilität mit älteren Windows OpenVPN-Clients ist es standardmäßig deaktiviert.
-
Wenn Sie eine DNS Default Domain angeben, wird dieser Wert als DNS-Suffix für Ihre VPN-Clients verwendet. Wenn Ihre Kunden Ihre internen Hostnamen ohne Verwendung eines FQDNs nachschlagen möchten, kann dies nützlich sein.
-
Sie können die DNS Servers überprüfen und dann die IP-Adressen der DNS-Server eingeben, wenn Sie möchten. Wenn Sie einen internen DNS-Server haben, sollten Sie hier seine IP-Adresse eingeben.
-
Sie können die Option Force DNS cache update aktivieren, um Windows-Clients dazu zu bringen, die gepushten DNS-Server zu erkennen, wenn Sie möchten.
-
Sie können die Option Prevent DNS leaks aktivieren, um DNS-Server auf anderen Netzwerkadaptern zu blockieren, wenn Sie möchten.
-
Sie können die NTP Servers überprüfen und dann die IP-Adressen der NTP-Server eingeben, wenn Sie möchten.
-
Sie können die NetBIOS Options überprüfen, um NetBIOS über TCP/IP zu aktivieren, wenn Sie möchten.
Abbildung 20. Client-Einstellungen für einen OpenVPN-Server mit MFA in OPNsense
-
Wählen Sie
3
für das Verbosity-Level, um TLS-Verhandlungen & Routeninformationen anzuzeigen. -
Setzen Sie Renegotiate time auf
0
, um den Neuaushandlungszeitpunkt des Datenkanalschlüssels zu deaktivieren, da wir in unserem Tutorial OTP verwenden werden. -
Lassen Sie die anderen Optionen auf den Standardeinstellungen.
tippDie Option
Strict User/CN Matching
wird verwendet, um die Verwendung des gleichen Benutzernamens wie den CN des Zertifikats zu erzwingen, wodurch verhindert wird, dass Personen sich mit anderen Anmeldeinformationen als dem angegebenen Zertifikatsnamen anmelden. (Beispielsweise kann sichvpnuser1
nicht als root anmelden.)Abbildung 21. Erweiterte Konfiguration für einen OpenVPN-Server mit MFA in OPNsense
-
Klicken Sie unten auf der Seite auf Save, um die Einstellungen zu aktivieren.
Sie können Ihren neuen VPN-Server auf der OpenVPN-Serverseite der OPNsense-Firewall anzeigen und verwalten.
Abbildung 22. OpenVPN-Server in OPNsense
6. Firewall-Regeln hinzufügen
Standardmäßig ist sämtlicher Verkehr, der sich mit einem OpenVPN-Server verbindet oder durch VPN-Tunnel fließt, verboten. Daher müssen Sie die folgenden Firewall-Regeln in Ihrem OPNsense definieren:
-
Erlaube Verkehr von Clients zum VPN-Server
-
Erlauben Sie VPN-Clients den Zugang zum Internet über VPN.
1. Erlaube den Verkehr von Clients zum VPN-Server
Der Zugriff auf den OpenVPN-Serverport, standardmäßig UDP/1194, auf der WAN-Schnittstelle ist erforderlich, um SSL-VPN-Clientverbindungen zu ermöglichen. Sie sollten eine Firewall-Regel definieren, die VPN-Clients den Zugriff auf Ihren OpenVPN-Server ermöglicht.
Abbildung 23. Zugriffsregel für OpenVPN-Server in OPNsense
2. VPN-Clients den Zugang zum Internet über VPN erlauben
Um VPN-Clients über den VPN-Tunnel ins Internet zuzulassen, können Sie die folgenden Schritte befolgen:
-
Navigieren Sie zu Firewall → Rules → OpenVPN in Ihrer OPNsense-Weboberfläche.
Abbildung 24. OpenVPN-Schnittstellen-Firewall-Regeln in OPNsense
-
Klicken Sie auf die Schaltfläche "Hinzufügen" mit dem
+
-Symbol oben rechts auf der Seite. -
Setzen Sie Action auf
Pass
. -
Stellen Sie Interface auf
OpenVPN
ein. -
Setzen Sie Direction auf
in
. -
Wählen Sie
Einzelner Host oder Netzwerk
für die Source und setzen Sie den VPN-IP-Adressbereich wie192.168.10.0/24
.Abbildung 25. Definieren von OpenVPN-Firewall-Regeln in OPNsense-1
-
Wählen Sie
any
für das Destination. -
Sie können
VPN-Regeln
in das Feld Category eingeben. -
Füllen Sie das Description-Feld aus, wie
VPN-Clients den Zugriff erlauben
. -
Sie können die anderen Einstellungen auf den Standardwerten belassen.
Abbildung 26. Definieren von OpenVPN-Firewall-Regeln in OPNsense-2
-
Klicken Sie auf die Schaltfläche Save am unteren Rand der Seite, um die Regel zu speichern.
-
Klicken Sie auf Apply Changes, um die neue Firewall-Regel zu aktivieren.
Abbildung 27. Aktivierung der OpenVPN-Firewall-Regeln in OPNsense
Die Firewall-Konfiguration für die OpenVPN-Tunnelverbindung ist abgeschlossen. Sie müssen nun die Konfigurationsdateien exportieren, damit sie in den OpenVPN-Client eingegeben werden können, den der Benutzer auf seinem Gerät installieren wird.
7. OpenVPN-Client exportieren
Sie können die OpenVPN-Client-Konfigurationsdatei ganz einfach nach Ihren Bedürfnissen exportieren. Um die OpenVPN-Client-Konfiguration herunterzuladen, können Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu VPN → OpenVPN → Client Export in Ihrer OPNsense-Weboberfläche.
-
Wählen Sie den neu erstellten VPN-Server aus der Liste aus, wie zum Beispiel
Mein OpenVPN-Server UDP:1194
, für den Remote Access Server. -
Wählen Sie
File Only
für den Export Type. Da Sie diese textbasierte Konfigurationsdatei problemlos in OpenVPN-Client-Anwendungen auf verschiedenen Plattformen wie Windows, macOS, Android und iOS importieren können.tippSie können
Archie
als Exporttyp auswählen, wenn Ihr VPN-Client unter Windows oder macOS läuft. In diesem Fall enthält dieArchie
-Datei, wie zum BeispielMy_OpenVPN_Server_vpnuser1.zip
, ein Verzeichnis, das die Konfigurationsdatei (.ovpn
), das Benutzerzertifikat (.p12
) und den TLS-Schlüssel (.key
) enthält. -
Lassen Sie die anderen Einstellungen auf den Standardwerten. In den meisten Fällen muss
Hostname
die öffentliche IP-Adresse Ihrer OPNsense-Firewall sein undPort
muss die Portnummer sein, die Sie für den VPN-Dienst festgelegt haben, standardmäßig 1194.Abbildung 28. Exportieren des OpenVPN-Clients in OPNsense
-
Scrollen Sie bis zum Ende der Seite. Die Liste der konfigurierten Benutzer befindet sich im Bereich
Accounts / certificates
, und der Download-Button mit einem kleinen Wolkensymbol befindet sich auf der rechten Seite der entsprechenden Zeile. -
Klicken Sie auf die Schaltfläche zum Herunterladen neben dem VPN-Client-Benutzer
vpnuser1
.Abbildung 29. Herunterladen des OpenVPN-Clients in OPNsense
Nachdem Sie die OpenVPN-Client-Konfigurationsdatei, wie z.B. My_OpenVPN_Server_vpnuser1.ovpn
, exportiert haben, sollten Sie sie an den Benutzer senden. Damit der Benutzer es in die OpenVPN-Client-App auf seinem Gerät importieren kann, um über das OpenVPN-Tunnel mit dem LAN zu verbinden.
Wie verbinde ich mich mit OPNsense OpenVPN?
In diesem Abschnitt erklären wir, wie man den OPNsense OpenVPN-Server mit MFA unter Verwendung eines Windows-PCs oder eines Android-Geräts verbindet. Wir gehen davon aus, dass Sie die OpenVPN-Client-Konfigurationsdatei bereits heruntergeladen und an den VPN-Benutzer gesendet haben.
Verbindung von einem Windows-PC-Client
Sie können Ihren OPNsense OpenVPN-Server ganz einfach mit MFA von einem entfernten Windows-Client aus verbinden, indem Sie die folgenden Anweisungen befolgen:
-
Laden Sie die neueste OpenVPN GUI-Installationsdatei von der offiziellen Website
openvpn.net
herunter. -
Installieren Sie den OpenVPN-Installer, lassen Sie alles auf den Standardeinstellungen und stimmen Sie allem mit
Yes
zu. Die Installation eines TAP-Netzwerktreibers kann erforderlich sein; tun Sie dies, wenn Sie dazu aufgefordert werden. -
Nach Abschluss der OpenVPN-Installation auf einem Windows-Client-Computer erscheint ein kleines Monitor-Symbol mit einem Schloss darauf in Ihrer Taskleiste. Klicken Sie mit der rechten Maustaste darauf und wählen Sie
Datei importieren
, um die Client-Konfigurationsdatei zu importieren.Abbildung 30. Importieren der OpenVPN-Clientkonfiguration unter Windows 10
warnungWenn Sie eine
Archie
-Datei heruntergeladen haben, wie z.B.My_OpenVPN_Server_vpnuser1.zip
im vorherigen Abschnitt, müssen Sie diese in das OpenVPN-Konfigurationsverzeichnis, wie z.B.C:\Users\Administrator\OpenVPN\config
, entpacken, um sie zu importieren. -
Nachdem Sie die OpenVPN-Client-Konfiguration erfolgreich importiert haben, klicken Sie mit der rechten Maustaste auf das OpenVPN-Symbol in der Taskleiste und wählen Sie die neu importierte Konfigurationsdatei aus.
Abbildung 31. Verbindung zum OPNsense OpenVPN-Server vom Windows 10-Client
-
Klicken Sie auf Connect, um die VPN-Verbindung zu starten.
-
Geben Sie Ihren VPN Username ein.
-
Starten Sie die Google Authenticator-Anwendung auf Ihrem Mobilgerät.
-
Holen Sie sich das Token für Ihr VPN-Konto, wie zum Beispiel
vpnuser1
.Abbildung 32. Token, das von Google Authenticator für den OpenVPN-Client-Benutzer generiert wurde
-
Kehren Sie zur OpenVPN-GUI auf Ihrem Windows-PC zurück.
-
Füllen Sie das Feld Password mit dem Token und dem von Ihnen festgelegten OPNsense-Lokalanwenderpasswort aus.
infoDenken Sie daran, dass Sie das Token vor oder nach Ihrem Passwort eingeben müssen. (depending on your configuration). Zum Beispiel, wenn der Google Authenticator-Token
387914
ist und Ihr lokales PasswortMyPassword
lautet, dann sollten Sie387914MyPassword
in das Passwortfeld der OpenVPN-GUI-Anwendung eingeben.Bitte geben Sie den Text ein, den Sie übersetzen möchten.Abbildung 33. OpenVPN-Client-Authentifizierung mit MFA auf Windows 10
-
Klicken Sie auf OK, um sich zu verbinden.
Sie werden unten rechts auf dem Bildschirm benachrichtigt, und das OpenVPN-Symbol in der Taskleiste wird grün, wenn die Verbindung erfolgreich ist.
Abbildung 34. OpenVPN Windows 10-Client mit MFA verbunden
Verbindung von einem Android-Gerät herstellen
Sie können Ihren OPNsense OpenVPN-Server ganz einfach von einem Android-Client aus verbinden, indem Sie die folgenden Anweisungen befolgen:
-
Installieren Sie die offizielle OpenVPN-Anwendung aus dem Google Play Store auf Ihrem Android-Gerät.
Abbildung 35. Installation des OpenVPN Connect-Clients auf einem Android-Gerät
-
Starten Sie die Anwendung und importieren Sie die Konfigurationsdatei, indem Sie die Datei im Menü
Import Profile
unter dem TabFILE
auswählen.Abbildung 36. Importieren der OpenVPN-Clientkonfiguration auf einem Android-Gerät
-
Geben Sie den VPN-Benutzernamen ein.
-
Auswahl der Option Connect after import.
-
Tippen Sie auf die ADD-Schaltfläche.
Abbildung 37. Importieren der OpenVPN-Clientkonfiguration auf einem Android-2
-
Starten Sie die Google Authenticator-Anwendung auf Ihrem mobilen Gerät.
-
Holen Sie sich das Token für Ihr VPN-Konto, wie zum Beispiel
vpnuser1
. -
Kehren Sie zur OpenVPN-Client-App auf Ihrem Mobilgerät zurück.
-
Geben Sie das VPN-Passwort ein, indem Sie sowohl den Token als auch das OPNsense-Lokalkonto-Passwort verwenden, das Sie definiert haben, um sich mit dem VPN-Server zu verbinden. Dann tippen Sie auf OK.
infoDenken Sie daran, dass Sie den Token vor oder nach Ihrem Passwort eingeben müssen. (depending on your configuration). Zum Beispiel, wenn der Google Authenticator-Token
085256
ist und Ihr lokales PasswortMyPassword
lautet, dann sollten Sie085256MyPassword
in das Passwortfeld der OpenVPN GUI-Anwendung eingeben.Abbildung 38. Eingabe des VPN-Passworts für die OpenVPN-Verbindung auf einem Android-Gerät
-
Jetzt sollten Sie von Ihrem Android-Gerät aus mit einem VPN-Server verbunden sein.
Abbildung 39. Verbundenes OpenVPN-Client auf Android
-
Um die Verbindung zum VPN zu trennen, können Sie oben auf den grünen Umschalter tippen.
Überprüfung der VPN-Verbindung
Die Konfiguration des OpenVPN-Servers und der Client-Konfigurationen ist abgeschlossen. Um die Konfigurationen zu testen, können Sie die folgenden Schritte befolgen.
-
Anzeigen von VPN-Verbindungen auf OPNsense:
Navigieren Sie zu VPN → OpenVPN → Connection Status in Ihrer OPNsense-Weboberfläche. Sie sollten in der Lage sein, Informationen über die verbundenen VPN-Clients zu sehen. Die folgenden Details werden angezeigt:
- VPN-Benutzername,
- die echte IP-Adresse des verbundenen Clients,
- die VPN-IP-Adresse des verbundenen Clients,
- die Zeit seit der letzten Verbindung,
- die Menge der übertragenen und empfangenen Daten.
- Status des OpenVPN-ServersAußerdem können Sie die folgende Aufgabe ausführen:
- Starten oder stoppen Sie den OpenVPN-Dienst, indem Sie die Aktionsschaltflächen in der oberen rechten Ecke der Seite verwenden.
- Beenden Sie die VPN-Client-Verbindung, indem Sie die
X
-Taste am Ende der VPN-Client-Verbindung verwenden.
Abbildung 40. OpenVPN-Status in OPNsense
-
Ping-Test
Sie sollten in der Lage sein, Ihren OpenVPN-Server vom Client aus erfolgreich zu pingen und umgekehrt:
ping 192.168.10.1
-
IP-Kontrolle
Auf Ihrem Client-Computer gehen Sie zu dieser Website
https://www.whatismyip.com
, um Ihre öffentliche IP-Adresse zu überprüfen. Wenn Ihr OpenVPN-Tunnel gut funktioniert, sollten Sie die öffentliche IP-Adresse Ihres VPN-Servers anstelle der öffentlichen IP-Adresse Ihres Client-Computers im Browser sehen. -
Traceroute-Test
Sie sollten die OpenVPN-Server-VPN-IP-Adresse in der Ausgabe des traceroute-Befehls sehen.
-
Anzeigen von Firewall-Protokollen
Sie sollten sehen, dass Ihre VPN-Clients mit 192.168.10.X-IP-Adressen über die VPN-Tunnel-Schnittstelle, wie z.B.
ovpns
, auf das Internet zugreifen, indem Sie im Firewall-Live-View zu Firewall → Log Files → Live View navigieren und die Quelle nach VPN-Client-IP, wie z.B.192.168.10.6
, filtern.Abbildung 41. Anzeigen von Firewall-Protokollen für den Internetverkehr des OpenVPN-Clients in OPNsense
Was sind die Vorteile von SSL VPN für Road Warriors?
Die Hauptvorteile der Verwendung von SSL VPN für Road Warriors anstelle von IPsec sind wie folgt:
-
Mehrere Server oder client-spezifische Überschreibungen können für eine granulare Zugriffskontrolle verwendet werden.
-
Mit dem Client Configuration Export von OPNsense ist die Konfiguration auf fast allen mobilen Clients einfach.
-
Keine Probleme durch NAT ohne NAT-T