Einrichtung SSL VPN Road Warrior
Road Warriors sind Remote-Benutzer, die einen sicheren Zugang zur Infrastruktur des Unternehmens benötigen. Schulrouter Plus nutzt OpenVPN für seine SSL-VPN-Road-Warrior-Einrichtung und bietet eine OTP-Integration (One Time Password) mit Standard-Tokens und Googles Authenticator.
Wussten Sie, dass der Schulrouter Plus eine Zwei-Faktor-Authentifizierung im gesamten System bietet? Siehe für weitere Informationen: Zwei-Faktor-Authentifizierung
Die wichtigsten Vorteile der Verwendung von SSL-VPN für Road Warriors anstelle von IPsec sind:
Einfache Einrichtung auf fast allen mobilen Clients durch den Client Configuration Export des Schulrouter Plus.
Feinkörnige Zugriffskontrolle durch Verwendung mehrerer Server oder Client Specific Overrides.
Keine Probleme mit NAT ohne NAT-T
Mit diesem How-to zeigen wir Ihnen, wie Sie das SSL-VPN des Schulrouter Plus für Road Warriors konfigurieren und geben Ihnen Konfigurationsbeispiele für:
Zwei-Faktor-Authentifizierung (2FA)
Multi-Faktor-Authentifizierung ( Client-Zertifikat + Passwort + OTP )
Client-Konfiguration auf Windows, macOS, iOS und Android
Für das Beispiel werden wir eine private IP für unsere WAN-Verbindung verwenden. Dazu müssen wir die Standard-Blockierregel für das WAN deaktivieren, um privaten Datenverkehr zuzulassen. Gehen Sie dazu auf Schnittstellen ‣ [WAN] und entfernen Sie das Häkchen bei „Private Netzwerke blockieren“. (Vergessen Sie nicht, zu speichern und anzuwenden)*.
Beispiel-Setup
Für die Beispielkonfiguration konfigurieren wir den Schulrouter Plus
Firmennetzwerk mit Remote Client
Firmennetzwerk
Hostname | fw1 |
WAN IP | 172.18.0.129 |
LAN IP | 192.168.1.1/24 |
LAN DHCP-Bereich | 192.168.1.100-192.168.1.200 |
SSL-VPN-Clients | 10.10.0.0/24 |
Schritt 0 - Vorbereitung
Für unser Beispiel werden wir die Zwei-Faktor-Authentifizierung (2FA) und die Multi-Faktor-Authentifizierung verwenden. Bevor wir also mit der SSL-VPN-Konfiguration beginnen, benötigen wir einen TOTP-Server und eine gültige Signierzertifizierungsstelle.
Der Vollständigkeit halber werden wir in dieser Anleitung auch einen Benutzer vorbereiten.
TOTP-Server konfigurieren
Um ein zeitbasierten Einmalpasswort-Server zu konfigurieren, gehen Sie auf System ‣ Zugang ‣ Server und klicken Sie auf Hinzufügen in der oberen rechten Ecke des Formulars.
Sie können auch die Schnellsuche verwenden, um direkt in die Konfiguration des Access Servers zu springen. Probieren Sie es aus, indem Sie Zug… eingeben und sehen Sie selbst:
Ändern Sie nun zunächst den Typ auf Lokal + Zeitbasiertes Einmal-Passwort Geben Sie einen Beschreibenden Namen ein, z. B. TOTP VPN Access Server.
Für unser Beispiel belassen wir alles andere in der Standardeinstellung, da wir den Authenticator von Google verwenden werden und die Standardeinstellungen dafür korrekt sind.
Wenn Sie andere Token verwenden, müssen Sie eventuell die Tokenlänge ändern.
Klicken Sie auf Speichern, um den neuen Server hinzuzufügen.
Zertifizierungsstelle hinzufügen
Der VPN-Server benötigt eine Zertifizierungsstelle, um Client- oder Server-Zertifikate zu signieren.
Um eine neue Zertifizierungsstelle einzurichten, gehen Sie auf System ‣ Sicherheit ‣ Aussteller und klicken Sie auf Hinzufügen in der oberen rechten Ecke des Formulars.
Für unser Beispiel werden wir die folgende Einstellung verwenden:
Beschreibender Name | SSL VPN CA |
Methode | Erstellen einer internen Zertifizierungsstelle |
Schlüssellänge (Bits) | 4096 |
Digest-Algorithmus | SHA512 |
Lebensdauer (Tage) | 365 |
Ländercode | DE |
Staat oder Provinz | BE |
Stadt | Berlin |
Organisation | Schulrouter Plus |
E-Mail-Adresse | spam@schule.org |
Gebräuchlicher Name | intern-sslvpn-ca |
Klicken Sie auf Speichern, um die neue Zertifizierungsstelle hinzuzufügen.
Erstellen eines Server-Zertifikats
Nach dem Erstellen der Authority benötigen wir auch ein Zertifikat. Um ein neues Zertifikat zu erstellen, gehen Sie zu System ‣ Sicherheit ‣ Zertifikate und klicken Sie auf Hinzufügen in der oberen rechten Ecke des Formulars.
Füllen Sie das Formular mit aus (lassen Sie den Rest voreingestellt):
Methode | Erstellen eines internen Zertifikats |
Beschreibender Name | SSLVPN-Server-Zertifikat |
Zertifizierungsstelle | SSL VPN CA |
Typ | Server-Zertifikat |
Schlüssellänge (Bits) | 4096 |
Digest-Algorithmus | SHA512 |
Lebensdauer (Tage) | 365 |
Ländercode | DE |
Staat oder Provinz | BE |
Stadt | Berlin |
Organisation | Schulrouter Plus |
E-Mail-Adresse | spam@schule.org |
Gebräuchlicher Name | SSLVPN-Server-Zertifikat |
Klicken Sie auf Speichern, um das Zertifikat zu erstellen.
Hinzufügen eines Benutzers
Um einen neuen Benutzer hinzuzufügen, gehen Sie auf System ‣ Zugang ‣ Benutzer und klicken Sie auf Hinzufügen in der oberen rechten Ecke.
Das Erstellen eines Benutzers erfolgt in zwei Schritten. Der erste Schritt ist das Hinzufügen eines Basisbenutzers mit einem Benutzernamen, einem Passwort, einem TOTP-Seed und einem Benutzerzertifikat. Der zweite Schritt (nach dem Speichern) besteht darin, die generierte OTP-Seed mit einer Google Authenticator-kompatiblen App zu aktivieren.
Für den ersten Schritt geben wir ein:
Benutzername | Donald |
Passwort (2x) | S3cr3tP@ssw0rd |
Vollständiger Name | Donald Duck |
Zertifikat | Haken Sie „Klicken Sie, um ein Benutzerzertifikat zu erstellen „ an. |
OTP-Seed | Häkchen bei „Neues Geheimnis generieren „ |
Klicken Sie auf Speichern und Sie werden zum Erstellen des Benutzerzertifikats weitergeleitet. Füllen Sie das Zertifikatsformular mit den folgenden Angaben für unser Beispiel aus (lassen Sie alles, was nicht aufgeführt ist, auf den vorgestellten Standardwerten):
Methode | Erstellen eines internen Zertifikats |
Beschreibender Name | Voreinstellung verlassen (Donald) |
Zertifizierungsstelle | SSL VPN CA |
Typ | Client-Zertifikat |
Schlüssellänge | 4096 |
Digest-Algorithmus | SHA512 |
Klicken Sie auf Speichern und Sie werden auf die Benutzerseite weitergeleitet. Nun aktivieren wir Ihren neu erstellten Seed mit Ihrer Google Authenticator-kompatiblen App. Klicken Sie dazu in der Zeile OTP QR-Code auf die Schaltfläche Klick zum Einblenden und Sie erhalten einen QR-Code, den Sie mit Ihrem Smartphone scannen können. Siehe auch: 2FA TOTP & Google Authenticator konfigurieren
Achten Sie immer darauf, die gleiche Zertifizierungsstelle wie die zuvor erstellte Zertifizierungsstelle zu verwenden, da diese die Clients / Benutzer mit dem richtigen openvpn-Server verbindet.
Schritt 1 - SSL-Server hinzufügen
Das Hinzufügen eines neuen SSL-VPN-Servers ist relativ einfach. Wir beginnen damit, einen hinzuzufügen, der unsere Zwei-Faktor-Authentifizierung verwendet. Diese Einrichtung bietet einen guten Schutz und ist auf den Clients einfach einzurichten, da jeder Client die gleiche Konfiguration verwenden kann.
Gehen Sie zu VPN ‣ OpenVPN ‣ Server und klicken Sie auf Hinzufügen in der oberen rechten Ecke des Formulars.
Für unser Beispiel werden die folgenden Einstellungen verwendet:
Die Einstellung Hardware Crypto wird bei neuen Systemen, die mit AES-NI ausgestattet sind, nicht verwendet, wenn das aesni-Modul geladen wird, wird es automatisch verwendet.
Beschreibung | Mein SSL-VPN-Server |
Server-Modus | Fernzugriff (SSL/TLS + Benutzerauthentifizierung) |
Backend für die Authentifizierung | TOTP VPN Access Server |
Protokoll | UDP |
Gerätemodus | tun |
Schnittstelle | WAN |
Lokaler Anschluss | 1194 |
TLS-Authentifizierung | Beides eingeschaltet lassen (angehakt) |
Sperrliste für Peer-Zertifikate | N/A |
Server-Zertifikat | SSLVPN-Server-Zertifikat (CA: SSL VPN CA) |
DH-Parameter Länge | 4096 Bit |
Verschlüsselungsalgorithmus | AES-256-CBC (256-Bit-Schlüssel, 128-Bit-Block)* |
Auth Digest Algorithmus | SHA512 (512-Bit) |
Hardware Krypto | Keine Hardware-Krypto-Beschleunigung |
Zertifikatstiefe | Ein (Client+Server) |
IPv4-Tunnelnetzwerk | 10.10.0.0/24 |
IPv6-Tunnelnetzwerk | Leer lassen |
Umleitungs-Gateway | Verlassen Sie Nicht ausgewählt |
IPv4 Lokales Netzwerk/e | 192.168.1.0/24 |
IPv6 Lokales Netzwerk/e | Leer lassen |
IPv4 Entferntes Netzwerk/e | Leer lassen |
IPv6 Entferntes Netzwerk/e | Leer lassen |
Gleichzeitige Verbindungen | Leer lassen |
Kompression | Aktiviert mit adaptiver Komprimierung |
Dienstart | Verlassen Sie Nicht ausgewählt |
Verbindungen duplizieren | Verlassen Sie Nicht ausgewählt |
IPv6 deaktivieren | Ausgewählt |
Dynamische IP | Verlassen Sie Nicht ausgewählt |
Adresspool | Verlassen Sie Ausgewählt |
Topologie | Verlassen Sie Nicht ausgewählt |
DNS-Standarddomäne | Verlassen Sie Nicht ausgewählt |
DNS-Server | Verlassen Sie Nicht ausgewählt |
DNS-Cache-Aktualisierung erzwingen | Verlassen Sie Nicht ausgewählt |
NTP-Server | Verlassen Sie Nicht ausgewählt |
NetBIOS-Optionen | Verlassen Sie Nicht ausgewählt |
Client Management Port | Verlassen Sie Nicht ausgewählt |
Nachverhandlungszeit | 0 |
Neuverhandlungszeit wird verwendet, um den Schlüssel des Datenkanals nach n Sekunden neu zu verhandeln (Standard=3600). Wenn Sie ein Einmal-Passwort verwenden, beachten Sie, dass Ihre Verbindung automatisch getrennt wird, weil Ihr Passwort nicht mehr gültig ist. Setzen Sie es auf 0, um es zu deaktivieren, denken Sie daran, Ihren Client zu ändern, wenn es später geändert wird.
Klicken Sie auf +, um den neuen Server hinzuzufügen.
Verwenden Sie Strict User/CN Matching, um die Verwendung desselben Benutzernamens als Zertifikats-CN zu erzwingen. Dadurch wird verhindert, dass sich Personen mit anderen Anmeldeinformationen als dem angegebenen Zertifikatsnamen anmelden. (z. B. fred kann sich nicht als root anmelden)
Die Option Lokale Gruppe erzwingen kann verwendet werden, um den Zugriff nur auf Benutzer in einer bestimmten (Reihe von) Gruppe(n) zu beschränken
Schritt 2 - Firewall-Regeln
Um SSL-VPN-Client-Verbindungen zu ermöglichen, sollten wir den Zugriff auf den OpenVPN-Server-Port an der WAN-Schnittstelle erlauben. Wenn Sie mehrere Server verwenden, müssen wir jeden Port freigeben.
Für unsere Konfiguration verwenden wir nur einen Server, der über den UDP-Port 1194 erreichbar ist.
Als Nächstes müssen wir auch den Verkehr von den VPN-Clients zu unserer LAN-Schnittstelle zulassen. In unserem Beispiel werden wir den Clients den Zugriff auf alles in unserem lokalen Netzwerk erlauben, Sie können jedoch auch nur den Datenverkehr zu einem oder mehreren Servern erlauben.
Schritt 3 - Clientkonfiguration exportieren
Über das Dropdown-Menü Remote Access Server können Sie den Server auswählen, für den Sie Client-Dateien herunterladen möchten. Wenn Zertifikate verbunden sind (unter Verwendung der gleichen Autorität), werden alle verfügbaren Client-Zertifikate und zugehörigen Benutzer aufgelistet.
macOS & Windows
Für macOS & Windows-Benutzer empfehlen wir die Verwendung von Viscosity von Sparklabs (https://www.sparklabs.com/viscosity/). Viscosity ist sehr einfach einzurichten und zu verwenden und funktioniert gut auf beiden Plattformen.
Gehen Sie auf VPN ‣ OpenVPN ‣ Clientexport und wählen Sie den neu erstellten VPN-Server in der Liste aus. Belassen Sie alles in der Standardeinstellung und laden Sie den Typ Viskosität aus der Liste der Exportoptionen unter Exporttyp herunter.
Entpacken Sie nun auf Ihrem Mac oder Windows-PC das Bundle und importieren Sie die Datei Viscosity.visc. Ein Doppelklick auf die Datei sollte ausreichen, um sie zu importieren. Wenn Sie nach einer Anwendung gefragt werden, mit der Sie die Datei öffnen möchten, suchen Sie und wählen Sie Viscosity.
Einige Beispiel-Screenshots (macOS):
Konfiguration importieren
Verbinden & Anmelden
Geben Sie im Passwortfeld zuerst Ihren TOTP-Token und dann Ihr Passwort ein.
Verbunden
Android
Für Android-Benutzer empfehlen wir die Verwendung von OpenVPN für Android (https://play.google.com/store/apps/details?id=de.blinkt.openvpn) von Arne Schwabe.
Gehen Sie auf VPN ‣ OpenVPN ‣ Clientexport und wählen Sie den neu erstellten VPN-Server aus der Liste aus. Belassen Sie alles in der Standardeinstellung und laden Sie die Inline-Konfiguration Nur Datei aus der Liste der Exportoptionen unter Exporttyp herunter.
Importieren Sie die Datei hostname-udp-1194-android-config.ovpn in OpenVPN für Android. Ein Klick auf die Datei sollte ausreichen, um sie zu importieren. Wenn Sie nach einer Anwendung gefragt werden, mit der die Datei geöffnet werden soll, wählen Sie OpenVPN für Android.
iOS
Für iOS-Benutzer empfehlen wir die Verwendung von OpenVPN Connect (https://itunes.apple.com/us/app/openvpn-connect/id590379981) von OpenVPN Technologies.
Gehen Sie auf VPN ‣ OpenVPN ‣ Clientexport und wählen Sie den neu erstellten VPN-Server aus der Liste aus. Belassen Sie alles in der Standardeinstellung und laden Sie die Inline-Konfiguration Nur Datei aus der Liste der Exportoptionen unter Exporttyp herunter.
Importieren Sie die Datei hostname-udp-1194-ios-config.ovpn in OpenVPN Connect. Ein Klick auf die Datei sollte ausreichen, um sie zu importieren. Wenn Sie nach einer Anwendung gefragt werden, mit der die Datei geöffnet werden soll, wählen Sie OpenVPN Connect.
Schritt 4 - Multi-Faktor-Authentifizierung
Für die Zwei-Faktor-Authentifizierung benötigen Sie die Faktoren Benutzername/Passwort und ein Token. Der Schulrouter Plus unterstützt eine weitere Schicht, nämlich ein Benutzerzertifikat. Das bedeutet, dass jeder Benutzer durch das Benutzerzertifikat eindeutig identifiziert wird. In diesem Fall sind die Mehrfaktoren:
Benutzerzertifikat
Benutzername/Passwort
Wertmarke (TOTP)
Gehen Sie zu VPN ‣ OpenVPN ‣ Server und klicken Sie auf das Bleistiftsymbol neben dem Server, den wir gerade erstellt haben, um die 2FA in eine Mehrfaktor-Authentifizierung zu ändern.
Ändern Sie nun Server Mode auf Remote Access (SSL/TLS + User Auth) und lassen Sie alles andere unverändert. Klicken Sie am unteren Rand des Formulars auf Speichern.
Wenn Sie nun zum Client-Exporter gehen, sehen Sie, dass jeder Benutzer separat aufgelistet ist. In unserem Fall sehen wir Donald aufgelistet. Das Exportieren und Importieren dieser Konfiguration funktioniert genauso wie zuvor, der einzige Unterschied ist, dass jeder Benutzer ein Benutzerzertifikat und somit eine eigene Konfiguration benötigt.