pfSense – OpenVPN Server einrichten

Ziel: die Anleitung erklärt, wie du auf deiner pfSense einen eigenen OpenVPN Server einrichtest.

Die Anleitung gilt für die pfSense CE Version 2.6. Unter vorherigen Versionen können die Ansichten abweichen, die generellen Angaben sind aber gleich.

Um von unterwegs oder von einem anderen Rechner von außerhalb auf Ressourcen in deinem Heimnetzwerk zugreifen zu können, gibt es diverse Möglichkeiten. Eine Verbindung mittels eines VPN (Virtuelles Privates Netzwerk) gilt, die korrekte Konfiguration vorausgesetzt, als eine der sichersten Möglichkeiten, dies zu ermöglichen. Dabei baust du mit einem Gerät und den nötigen Konfigurationsdaten eine verschlüsselte Verbindung zu einem (deinem!) VPN Server auf. Es wird hierbei manchmal von einem „VPN-Tunnel“ gesprochen, quasi ein sicheres Transfernetz zwischen dem Netzwerk, in dem du dich befindest (Kneipe, Freunde, öffentliches WLAN, Mobilfunknetz, usw.), und deinem Heimnetzwerk hinter der pfSense. Es gibt diverse VPN Arten, in der Anleitung wird OpenVPN genutzt.

Bevor die eigentliche Einrichtung des OpenVPN Servers ansteht, sind jedoch zwei wichtige Vorarbeiten zu erledigen:

  • Einrichten eines Dynamischen DNS (DynDNS oder DDNS) Dienstes: da sich für die meisten Privatnutzer die vom Internetanbieter vergebene öffentliche IP-Adresse regelmäßig ändert, muss dafür gesorgt werden, dass dein Heimnetz trotz dieses Umstandes immer unter derselben „Anschrift“ erreichbar ist. Dafür kann einer der vielen (kostenlosen) DynDNS Dienste genutzt werden. Welchen der Dienste du für dich auswählst bleibt dir überlassen und hängt auch von deinem Bedarf ab. In dieser Anleitung nutze ich als Beispiel den Anbieter DynDNS Service. Wie die Einrichtung im Detail erfolgt ist vom jeweiligen Dienstanbieter abhängig. In der Regel findest du auf deren Portal eine Anleitung dazu.

     
    Variante 1: Wenn deine pfSense die Einwahl bei deinem Internetprovider regelt (also direkt an einem reinen Modem hängt), dann muss der DynDNS Eintrag auf der pfSense eingerichtet werden.

    Variante 2: Solltest du aber deine pfSense hinter einem anderen vollwertigen Router (z.B. eine Fritzbox) betreiben, dann wird die Interneteinwahl durch diesen Router erfolgen. Also muss der DynDNS Eintrag dann auf dem Router VOR der pfSense erfolgen. Wie das geht erklärt dir diese Anleitung: Fritzbox DynDNS einrichten.

  • Installieren des zusätzlichen Paketes „openvpn-client-export“. Dieses ermöglicht dir im Anschluss an die Einrichtung des OpenVPN Servers den einfachen Export auf deine Clients, mit denen du dich in der Folge via VPN einwählst. Im Internetbrowser rufst du die Anmeldeseite deiner pfSense auf und meldest dich mit deinen Anmeldedaten an.
    Dann wechselst du auf die Ansicht des Paketmanagers unter System > Package Manager und wählst dort den Eintrag „Available Packages“ aus. Hier suchst du das erforderliche Paket „openvpn-client-export“ und installierst es. Nach wenigen Minuten sollte dies erfolgt sein.

Es geht weiter mit der eigentlichen Einrichtung des OpenVPN Servers auf der pfSense. Hierfür wechselst du auf die Ansicht unter VPN > Open VPN. Hier wählst du den Einrichtungsassistenten (Wizard) aus, der dich in wenigen Schritten durch die Konfiguration führt. Erfahrene Benutzer*innen können die Konfiguration natürlich auch ohne den Assistenten durchführen, benötigen dann aber vermutlich diese Anleitung auch nicht.
pfSense OpenVPN Wizard
Im ersten Einrichtungsschritt fragt der Wizard danach, wie die Authentifizierung für die VPN Einwahl erfolgen soll. Hier wählst du „Local User Access“ aus. Solltest du die Authentifizierung mit einer anderen Methode vornehmen wollen, dann muss du hier diese angeben (z.B. mittels FreeRADIUS). Danach wechselst du mit „Next“ zum nächsten Arbeitsschritt.
pfSense OpenVPN Authentication
Certificate Authority anlegen und Zertifikat erstellen für den OpenVPN Server: Im zweiten Einrichtungsschritt wird erfragt, welche „Certifcate Authority“ (CA) für die Ausstellung des benötigten Zertifikates zur Verifizierung der Anmeldung zuständig sein soll. Wenn du bereits eine funktionierende CA eingerichtete hast, kannst du diese auswählen. Du kannst aber auch eine neu CA erstellen oder eine weitere hinzufügen. In der Anleitung wählen wir die Option „Add new CA“.
pfSense OpenVPN neue CA erstellen
Es öffnet sich die Ansicht des Zertifikatsmanagers. Hier erstellst du nun deine eigene CA. Die benötigten Angaben trägst du ein. Du bist hierbei frei in deiner Entscheidung.
pfSense OpenVPN CA einrichten
Anschließend nutzt du die eben erstellte CA zum Erstellen eines Server Zertifikates für, genau, deinen OpenVPN Server. Dazu wählst du den Eintrag „Add new Certificate“. Es öffnet sich diese Ansicht:
pfSense OpenVPN Serverzertifikat erstellen
Einrichten des OpenVPN Servers: Nun kommst du zu den eigentlichen Einstellungen des OpenVPN Servers.
Im ersten Abschnitt „General Open VPN Server Information“ musst du angeben, auf welchem Interface, mit welchem Protokoll und auf welchem Port der OpenVPN Server arbeiten soll. Du kannst hier zunächst die für OpenVPN üblichen Einträge setzen:
pfSense OpenVPN Server Setup
Im nächsten Abschnitt „Cryptographic Settings“ nimmst du die Einstellungen vor, die wichtig sind für die Verschlüsselung der durch den VPN-Tunnel übertragenen Daten. Das Bild zeigt dir, welche Einträge hier vorzunehmen sind:
pfSense OpenVPN Crypto Settings
Wenn der Rechner, auf dem die pfSense und damit auch der OpenVPN Server laufen, die Möglichkeit der Hardware-unterstützten Verschlüsselung bietet, dann sollte diese unbedingt hier angegeben werden, um die Geschwindigkeit beim Zugriff via VPN zu erhöhen!

Es folgt der Abschnitt „Tunnel Settings“, in welchem du Angaben zum Netzwerkbereich des VPN Netzes machst.
Wichtig: der Adressbereich des VPN Netzes muss sich von den anderen bereits bestehenden Adressbereichen unterscheiden! Angenommen, du bist bei Freunden zu Besuch. Du darfst deren WLAN mit dem Adressbereich 192.168.178.0/24 nutzen. Dein eigenes Heimnetz, welches du erreichen möchtest, hat den Adressbereich 192.168.25.0/24. Für den Adressbereich des VPN Netzes darfst du folglich diese bereits genutzten Adressbereiche nicht eintragen (1).

Außerdem kannst du hier angeben, ob du den VPN Tunnel auch zum sicheren Surfen im Internet nutzen willst, da dann alle Daten immer durch deinen VPN Zugang geleitet werden (Redirect Gateway). Das ist dann praktisch, wenn du aus einem tendenziell unsicherem öffentlichen WLAN auf vertrauliche Daten zugreifen möchtest, etwa Emails, online-Einkäufe usw. (2).

Möchtest du nur mit einem mobilen Gerät den VPN Zugang nutzen (sog. Roadwarrior Verbindung), dann kannst du das Feld „Local Network“ (3) leer lassen. Möchtest du aber einen VPN-Zugang zwischen zwei festen Standorten (Wohnung A zu Wohnung B, sog. Site-toSite Verbindung) einrichten, dann trägst du hier den IP-Adressbereich desjenigen Netzwerkes ein, auf welches du von außen durch den VPN-Tunnel zugreifen möchtest (z.B. der IP-Adressbereich deines LAN). Für mobil genutzte Geräte trägst du später einen push route Befehl ein.

Du kannst auch definieren, wie viele Clients gleichzeitig auf den OpenVPN Server zugreifen dürfen unter „Concurrent Connections“ (4).
Die Möglichkeit der Kompression der übertragenen Daten sollte aus Sicherheitsaspekten deaktiviert werden unter „Allow Compression“ und „Compression“ (5, 6).

Wenn du möchtest, dass der Zugriff zwischen einzelnen Geräten, die auf den OpenVPN Server zugreifen, untereinander erlaubt sein soll, dann kannst du unter „Inter-Client Communication“ (7) den Haken setzen.
pfSense OpenVPN Tunnel Settings
Im folgenden Schritt „Client Settings“ kannst du die Angaben unverändert übernehmen, es sei denn, du hast hier eigene Konfigurationswünsche. Vielleicht möchtest du etwa die DNS-Anfragen auch per VPN-Verbindung über definierte DNS Server laufen lassen, etwa einem eigenen DNS-Resolver.

Schließlich fragt der Einrichtungsassistent, ob für die VPN-Verbindung automatisch die benötigten Firewallregeln angelegt werden sollen. Du kannst die nötigen Regeln natürlich auch selber anlegen, ich empfehle an dieser Stelle aber zunächst beide Haken zu setzen:
pfSense OpenVPN Firewall Settings
Damit sind die Installationsschritte bei der Einrichtung mit dem Assistenten abgeschlossen.
pfSense OpenVPN Server eingerichtet
In der Ansicht erscheint nun der von dir angelegte OpenVPN Server:
pfSense OpenVPN Server Übersicht
Mit einem Klick auf das Stiftsymbol kannst du dir alle gemachten Einstellungen nochmal anschauen und bei Bedarf verändern und anpassen.
Wenn du die VPN Verbindung mit mobilen Clients nutzen möchtest und unter „Local Network“ (s.o.) keinen Eintrag gesetzt hast, dann nimmst du unter dem Abschnitt „Advanced Configuration“ nun noch folgenden Eintrag vor: push "route 192.168.25.0 255.255.255.0" (hier dann dein eigenes Netzwerk und passende Subnetzmaske eintragen!).

Du gibst diesen Befehl in das Textfeld ein, der dafür sorgt, dass Daten aus deinem Heimnetz durch das VPN-Transfernetz zu deinem mobilen VPN-Client geroutet werden.
Ob der Zugang via IPv4, IPv6 oder beide Protokolle erfolgen soll, kann hier ebenfalls eingerichtet werden.
pfSense OpenVPN push route
Damit du nun aber von z.B. deinem Smartphone oder Notebook aus von unterwegs durch den VPN-Tunnel auf dein Heimnetz zugreifen kannst, musst du die Konfigurationsdaten exportieren und auf deinem mobilen Gerät installieren.
Dafür nutzt du die zu Beginn installierte Erweiterung „openvpn-client-export“. Zuvor legst du aber Accounts für die zugreifenden Clients bzw. Nutzer*innen an.

Zunächst legst du unter System > User Manager einen neuen Eintrag an. Hier erstellst du eine neue Gruppe z.B. „vpn“. Als „Scope“ wählst du hier „local“. Dann legst du je einen Account an für diejenigen Clients oder Personen, denen ein VPN Zugang erlaubt werden soll. Das Bild erklärt die wesentlichen Einträge:
pfSense OpenVPN User anlegen
Mit dem Setzen eines Hakens unter „Certificate“ wird ein neues Zertifikat für deinen neuen User erstellt. Die nötigen Angaben hierfür trägst du dann etwas weiter unten ein:
pfSense OpenVPN Userzertifikat erstellen
Dann endlich geht es daran, die Konfigurationsdaten sowie die benötigten Zertifikate zu exportieren. Hierzu gehst du auf die Ansicht unter VPN > Open VPN und wählst dort den Eintrag „Client Export“. Es öffnet sich die folgende Ansicht:

Die übrigen Felder kannst du einfach belassen, wenn du hierfür keine eigenen Konfigurationsbedürfnisse hast.
Im unteren Teil der Ansicht kommst du dann zum Export selber. Hier erscheint dein eben angelegter Account (und weitere, wenn bereits vorhanden). Du kannst nun, je nach Betriebssystem desjenigen Gerätes, mit welchem du auf deinen OpenVPN Server zugreifen willst, die Konfigurationsdatei inklusive der benötigten Zertifikate herunterladen.
pfSense OpenVPN Download der Konfigurationsdatei
Abschließend importierst du diese Datei auf dein Gerät. Wie du dabei vorgehen musst, ist abhängig vom jeweiligen Betriebssystem und ggf. zusätzlich benötigter Software (OpenVPN-Client Software).
Bei der Einwahl auf deinen OpenVPN Server musst du dann den Namen und das gewählte Passwort des jeweiligen Clients eingeben, so wie du es beim Anlegen der Accounts vergeben hast.

Die Einrichtung deines eigenen OpenVPN Servers ist damit abgeschlossen. Damit du deinen OpenVPN Server aber nun auch von außerhalb erreichen kannst, musst du noch eine Portweiterleitung auf einem ggf. vorgeschaltetem Router wie z.B. einer Fritzbox einrichten. Wie das geht zeigt dir diese Anleitung Fritzbox Portfreigaben anlegen. Du benötigst dafür die private IPv4 Adresse des WAN Interfaces deiner pfSense sowie den Port des OpenVPN Dienstes (üblicherweise 1194).

Außerdem musst du auf der pfSense bei den Einstellungen für das WAN Interface unter Interfaces > WAN die Option „Block private networks and loopback adresses“ deaktivieren, da ja Datenpakete aus dem privaten Netzwerkbereich zwischen dem LAN Interface des vorgelagerten Routers und dem WAN Interface der pfSense kommen müssen.

Schematisch ist der Aufbau dann bei Einwahl durch einen vorgeschalteten Router etwa folgendermaßen:
pfSense OpenVPN hinter anderem Router
Ist die pfSense direkt an ein reines Modem angeschlossen, so muss der DynDNS Eintrag auf der pfSense selber erfolgen und auf den OpenVPN Port weisen.

Bei Fragen, Anmerkungen und konstruktiver Kritik kannst du dich gerne im Forum anmelden.
Viel Erfolg!

---

Vielen Dank an den User the other für diese Anleitung!

Wenn Du Fragen zu dieser Anleitung hast, dann schau doch einfach mal bei uns im vorbei!