pfSense OpenVPN Server und User einrichten – Tutorial

pfSense OpenVPN Server

Die wohl bekannteste Open Source Firewall pfSense hat neben viele Funktionen wie der integrierte pfSense OpenVPN Server. Dieses Tutorial zeigt, wie man einen pfSense OpenVPN Server und Clients konfiguriert.

Inhalt:

Zertifikate erstellen
Server „Certificate Authorities“ erstellen
Server Zertifikat erstellen
User und User-Cert anlegen
pfSense OpenVPN Server erstellen
OpenVPN Clients konfigurieren

Zertifikate erstellen

Sowohl die pfSense Firewall als auch der Client benötigt für das VPN ein Zertifikat. Diese lassen sich ganz einfach in der Weboberfläche von pfSense erstellen. Das erstellen eines Zertifikats kann je nach CPU-Power und Key Länge bis zu 5 Minuten in Anspruch nehmen.

Alle Zertifikate werden in pfSense unter System -> Cert. Manager erstellt.

Server „Certificate Authorities“ erstellen

Klicken Sie unter System -> Cert.Manager -> CAs auf „Add“.

pfSense OpenVPN Server

„Descriptive name“: Geben Sie einen beliebigen Namen für die Beschreibung an.

„Method“: Wählen Sie hier „Create an internal Certificate Authority“ aus, um ein neues Zertifikat zu erstellen.

„Key length (bits): Hier können Sie die Key Länge des Zertifikats auswählen. Es sollte mindestens 4096 ausgewählt werden. Wir empfehlen 8192!

„Digest Algorithm“: Hier wählen Sie den Verschlüsselungs Algorithmus aus. Es kann ohne Probleme der höchste Wert, also „sha512“ verwendet werden.

„Lifetime (days): Dieser Wert kann beim Standard belassen werden.

„Common Name“: Hier können Sie einen beliebigen Namen (ohne Leer- und Sonderzeichen oder Zahlen außer „-„) für das Zertifikat angeben.

„Country Code“: Wählen Sie Ihren Ländercode aus.

„State or Province“: Geben Sie Ihr Bundesland/Kanton an.

„City“: Geben Sie Ihre Stadt an.

„Organization“: Dieses Feld kann leer-gelassen werden.

„Organizational Unit“: Dieses Feld kann leer-gelassen werden.

Anschließend müssen Sie auf „Save“ klicken, um das Zertifikat generieren zu lassen. Dies kann bis zu 5 Minuten dauern.

Server Zertifikat erstellen

Klicken Sie unter System -> Cert.Manager -> Certificates auf „Add/Sign“.

pfSense OpenVPN Server

„Method“: Belassen Sie hier die Auswahl auf „Create an internal Certificate“.

„Descriptive Name“: Geben Sie hier einen Namen Ihrere Wahl an.

„Certificate authority“: Wählen Sie hier die zuvor erstellte CA aus.

„Key length“: Hier können Sie wieder die Key Länge des Zertifikats auswählen. Es sollte mindestens 4096 ausgewählt werden. Wir empfehlen 8192!

„Digest Algorithm“: Hier wählen Sie wieder den Verschlüsselungsalgorithmus aus. Es kann ohne Probleme der höchste Wert, also „sha512“ verwendet werden.

„Lifetime (days)“: Dieser Wert kann wieder bei 3650 belassen werden.

„Common Name“: Hier können Sie ihre Domain oder IP Addresse angeben, die auf den pfSense Server verweist.

„Country Code, State or Province, City, Organization und Organizational Unit“: Diese Werte können Sie gleich wie im ersten Schritt ausfüllen.

„Certificate Type“: Hier müssen Sie „Server Certificate“ auswählen.

„Alternative Names“: Geben Sie hier bei der Auswahl „FQDN or Hostname“ ihre Domain an, die auf die pfSense verweist.

Sie haben keine Domain? Dann wählen Sie unter „Type“ „IP address“ aus. Dann können Sie auch Ihre Public-IP angeben.

Klicken Sie anschließend auf „Save“.

User und User-Cert anlegen

Klicken Sie unter System -> User Manager -> Users auf „Add“.

pfSense OpenVPN Server

„Disabled“: Hier können Sie festlegen, ob sich der Benutzer an der pfSense Weboberfläche und am VPN anmelden kann. Wenn dieses Feld angehakt ist, wird dem Benutzer beim Versuch einer Verbindung einen „User authentication Error“ erhalten.

„Username“: Geben Sie hier den gewünschten Benutzernamen an.

„Password“: Geben Sie hier das Passwort für den Benutzer an.

„Full name“: Hier können Sie den vollen Namen des Benutzers angeben. Allerdings ist dies kein Pflichtfeld.

„Expiration date“: Hier können Sie einen Zeitraum festlegen, ob und wann der Benutzer deaktiviert werden soll.

Die Felder „Custom Settings“ und „Group membership“ müssen nicht geändert werden. Wir belassen diese auf den Standardwerten.

„Click to create a user certificate“: Dieses Feld muss ausgewählt werden, da wir so direkt für diesen Benutzer ein Zertifikat erstellen können.

„Descriptive name“: Hier müssen Sie wieder einen Namen Ihrer Wahl für das Zertifikat eintragen.

„Certificate authority“: Hier müssen Sie wieder die gerade erstellte pfSense Authority auswählen.

„Key length“: Die Key Länge können Sie wie bei den anderen Zertifikaten frei wählen. Höher ist immer besser, dauert jedoch länger beim erzeugen und verbinden.

Die restlichen Felder belassen wir bei den Standards.

pfSense OpenVPN Server erstellen

Klicken Sie unter VPN -> OpenVPN -> Servers -> Add

pfSense OpenVPN Server

Bei „Server mode“ stehen verschiedene Möglichkeiten zur Auswahl.
Diese Unterscheiden sich in folgenden Punkten

„Remote Access (SSL/TLS)“ für die Authentifizierung wird nur die Zertifikats-Datei benötigt. Der Benutzer muss sich nicht mit einem Namen und Kennwort anmelden. Diese Methode ist, wenn man die Zertifikats-Datei sicher teilt und aufbewahrt, ziemlich sicher, da es unrealistisch ist, dass ein Angreifer einen 8192 Zeichen langen Key errät.

„Remote Access (User Auth)“ Hier gibt es keine Zertifikats-Datei. Der User loggt sich nur mit Benutzername und Passwort in das VPN-Netzwerk ein. Diese Methode können wir nicht empfehlen, da es einfach(er) ist, das Passwort zu erraten.

„Remote Access (SSL/TLS + User Auth)“ Dies ist die sicherste Methode, sich mit dem VPN zu verbinden. Hier wird neben der Zertifikats-Datei auch noch ein Benutzername und ein Passwort abgefragt.

Wählen Sie die Methode, die Ihnen am meisten zusagt. Wir fahren mit „Remote Access (SSL/TLS + User Auth)“ fort.

„Protocol“ und „Device mode“ können Sie bei den Standard Werten belassen.

„Interface“ muss auf „WAN“ festgelegt werden.

Bei „Local port“ muss der Port angegeben werden, mit dem die VPN-Verbindung aufgebaut wird. Standard ist hier „1194“. Wir ändern diesen ab, da dies eine höhere Sicherheit verspricht.
Suchen Sie sich einen Port aus, der nach Möglichkeit nicht auf der Liste der Standardisierten Ports steht.

„Description“: Hier sollten Sie zur Identifikation des Servers eine treffende Beschreibung angeben.

Unter „Cryptographic Settings“ muss der Haken bei „Use a TLS Key“ und bei „Automatically generate a TLS Key.“ gesetzt sein. So wird beim erstellen des Servers automatisch ein TLS-Cert generiert.

Die Werte und Haken für „TLS keydir direction“, „Peer Certificate Revocation list“, „ECDH Curve“ und „Enable NCP“ belassen wir bei den Standard-Werten.

Unter „Peer Certificate Authority“ müssen Sie wieder Ihre im ersten Schritt erstellte CA angeben.

Bei „Server certificate“ muss das eben erstellte Server-Zertifikat ausgewählt werden. Bitte beachten Sie hier, dass Sie nicht das Benutzer-Zertifikat auswählen.

Die „DH Parameter Length“ setzen wir auf den höchst-möglichen Wert, also „8192 bit“.

Für den Wert „Encryption Algorithm“ muss man erwähnen, dass in einem Test von uns MacBooks mit Tunnelblick nicht authentifizieren konnte, trotz das die OpenSSL Version auf 5.0.0 gestellt wurde. Als kompatibelster Wert erwies sich bei uns „AES-128-GCM“. Wenn Sie kein MacBook verwenden, können Sie auch „AES-256-GCM“ verwenden. In unserem Test konnten sich iPhone und Windows Geräte mit OpenVPN Software authentifizieren.

Die restlichen Werte belassen wir wieder bei den Standards, bis auf „Auth digest algorithm“. Diese können Sie ohne Probleme auf den höchst möglichen Wert setzen.

Im nächsten Abschnitt „Tunnel Settings“ aktivieren wir zuerst die Haken „Redirect IPv4 Gateway“ und „Redirect IPv6 Gateway“. So wird der gesamte Client-Verkehr durch die VPN-Verbindung geroutet.

Für das Feld „IPv4 Tunnel Network“ müssen sie eine IP mit Subnetzmaske angeben also „X.X.X.X/xx“. In unserem Beispiel also „10.1.1.1/24“. Dieses Netz liegt nicht innerhalb eines anderen Interface und ist somit ein extra Netzwerk, dass (erst einmal) nichts mit den anderen zu tun hat.

„Compression“ muss auf „Omit Preference (Use OpenVPN Default)“ gestellt sein.

Außerdem muss noch der Haken bei „Inter-client communication“ gesetzt werden.

Unter „Client Settings“ muss nur der „Dynamic IP“ Haken gesetzt werden.

Alle Einstellungen innerhalb des Abschnitt „Ping settings“ müssen nicht verändert werden.

Nun müssen wir die DNS-Einstellungen für den pfSense OpenVPN Server konfigurieren. Als Erstes muss der Haken bei „DNS-Server enable“ gesetzt werden.

Wenn du auf deiner pfSense einen DNS-Server konfiguriert hast, kannst du als DNS-Server die Gateway IP (bzw. die IP deiner pfSense) eintragen.
Die restlichen DNS-Server füllen wir mit 1.1.1.1 (Cloudflare), 8.8.8.8 (Google DNS) und 9.9.9.9 (Quad9)

Im letzten Abschnitt „Advanced Configuration“ müssen wir keine Änderungen vornehmen.

Nun müssen Sie auf „Save“ klicken. Damit ist die Konfiguration des pfSense OpenVPN Server abgeschlossen. Jetzt muss nur noch die Client Konfiguration vorgenommen werden.

OpenVPN Clients konfigurieren

Um Clients ganz einfach konfigurieren zu können, ist es am einfachsten, wenn man sich das Paket „openvpn-client-export“ installiert. Mit diesem ist es sehr einfach .ovpn Files für verschiedene Endgeräte zu konfigurieren.

Um das Paket zu installieren, suchen wir nach ihm unter System -> Package Manager -> Available Packages.

Dort klicken wir dann einfach auf „Install“.

Nach der Installation des Pakets können wir unter VPN -> OpenVPN -> Client Export die Konfiguration aufrufen.

Ganz am Ende der Seite wird Ihnen dieses Fenster angezeigt. Hier werden alle User aufgelistet, die Sie eingerichtet haben.

Nach mehreren Tests von uns wird die „Most Clients“ Konfigurationsdatei für die meisten Endgeräte am besten funktionieren.

Kommentar hinterlassen

Schreib einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht.


*