OpenVPN auf einer pfsense Firewall einrichten

,

OpenVPN auf einer pfsense Firewall einrichten

Erstellt am
Kategorie:

Tutorial: OpenVPN auf einer pfsense Firewall einrichten

Die Einrichtung von VPN Verbindungen erfordert ein sehr gutes Verständnis, wie ein TCP/IP-Netzwerk und Netzwerk-Sicherheit grundsätzlich funktionieren. Darüber hinaus sollten Sie Grundkenntnisse in Sachen Verschlüsselung und Zertifikaten haben. Sie werden (meiner Erfahrung nach) bei der Einrichtung eines VPN an irgendeiner Stelle auf Schwierigkeiten oder Hindernisse stoßen.

Sowohl pfsense als auch OpenVPN sind Opensource-Produkte. D.h. Software-Entwickler erstellen unentgeltlich „freie“ Software, die Sie ohne Lizenzkosten nutzen dürfen. Sowohl pfsense als auch OpenVPN sind sehr gut dokumentiert und haben eine sehr lebendige Community, in der man auch (wieder ohne Kosten) Hilfe erhält. Weiterführende Links (zur Dokumentation, Tutorials, etc) finden Sie am Ende dieser Anleitung.

Nachfolgend beschreibe ich ausführlich, wie Sie

  • Einen OpenVPN Server unter pfsense grundsätzlich einrichten
  • Einzelne Benutzer mit (bzw. ohne) Benutzer-Zertifikat anlegen
  • Den Zugang für die Benutzer testen
  • Optional: Die Benutzer-Authentifizierung an ein Active-Directory anbinden.

Die Einrichtung eines VPN auf Basis von OpenVPN mit einer pfsense dauert zwischen 30 und 60 Minuten – wenn man weiß wie es geht. Bei der aller-ersten Einrichtung werden Sie (deutlich) länger brauchen und vermutlich auch auf Schwierigkeiten stoßen. Lassen Sie sich davon nicht aus dem Konzept bringen.

Hinweis: Diese Anleitung bezieht sich auf die pfsense in der Version 2.3.1-RELEASE bzw. 2.3.2-RELEASE. Das darunter liegende OpenVPN hat die Versions-Nr. 2.3.14 bzw. 2.4

Lesetipp: Wie Sie eine pfsense Firewall installieren und konfigurieren haben wir im Blog vom IT-Dienstleister astiga GmbH bereits einmal beschrieben.

CA-Zertifikat erstellen

Der OpenVPN Dienst auf einer pfsense Firewall benötigt für das Funktionieren eine „Certificate Authority“ (kurz CA). Diese muss pro pfsense normalerweise nur einmal erstellt werden. Bitte prüfen Sie, ob die CA nicht schon besteht. Falls nicht, erstellen Sie die Certificate Authority wie folgt:

System -> Certificate Manager -> CAs -> Add

Wie Sie ihre CA nennen, spielt an sich keine Rolle – die Werte die Sie weiter unten eintragen, sind im Prinzip auch „unwichtig“. Sie müssen lediglich vorhanden sein. Wenn Sie eine pfsense Firewall im Produktiv-Einsatz bei Kunden nutzen, sollten Sie auf jeden Fall die korrekten Einstellungen (des Kunden) vornehmen, damit dessen Anwender im Zweifel wissen, mit welcher Firewall und welchen Daten Sie arbeiten.

SSL Zertifikat mit der pfsense erstellen

SSL Zertifikat mit der pfsense erstellen

Wichtig ist, dass Sie bei „Method“ den Eintrag „Create an internal Certificate Authority“ wählen.

Hinweis: Die CA benötigen Sie auf jeden Fall – egal ob die Benutzer auch ein (zusätzliches) Zertifikat erhalten oder nur per Passwort Zugriff haben.

1.2 Server-Zertifikat erstellen

Der OpenVPN Server selbst braucht später ein Server-Zertifikat. Dieses müssen Sie nun erstellen.

Dazu klicken Sie auf System -> Certificate Manager -> Certificates -> Add

Server Zertifikat mit pfsense für OpenVPN erstellen

Server Zertifikat mit pfsense für OpenVPN erstellen

Unter (1) geben Sie an, daß Sie ein internes Zertifikat („create an internal certificate“) erstellen möchten. Bei (2) wählen Sie die CA aus, die Sie schon haben bzw. im vorherigen Schritt erstellt haben. Bei (3) wählen Sie unbedingt „Server Certificate“ aus. Bei (4) tragen Sie die Daten des Kunden ein.

Wichtig ist der Eintrag unter (5): Hier wird der Common Name eingetragen. Das ist ein frei wählbarer Eintrag, der hinterher aber in der Konfiguration auftaucht. Bitte vermeiden Sie hier Umlaute oder Sonderzeichen.

Als Key Length sollten Sie mindestens 2048 bit verwenden und als Digest Algorithm z.B. sha256. Aktuell ist maximal sha512 möglich. Klicken Sie ganz unten auf „save“ und speichern das Sever Zertifikat ab.

OpenVPN Server einrichten

Bevor Sie den eigentlichen OpenVPN Server einrichten können, müssen Sie folgende Informationen beisammen haben:

  • Die CA muss erstellt sein
  • Das Server-Zertifikat muss erstellt sein
  • Sie müssen den internen IP-bereich des Netzes kennen, in dem die PFsense liegt
  • Sie brauchen ggf. einen neuen IP-Bereich für die Einwahl der remote-User
  • Die DNS-Einstellungen & DNS-Domain des Kunden-Netzes müssen Ihnen bekannt sein

Außerdem müssen Sie festlegen, ob aller Netzwerk-Traffic der VPN Nutzer durch den VPN-Tunnel gehen soll oder nicht. Die Einstellungen im Einzelnen und immer schön der Reihe nach:

1.3.1 Neuen OpenVPN Server anlegen

Um einen neuen OpenVPn Server anzulegen, navigieren Sie im Webpanel ihrer pfsense Firewall zu VPN ->OpenVPN -> Servers -> Add

OpenVPN Server auf der pfsense Firewall erstellen

OpenVPN Server auf der pfsense Firewall erstellen

Unter (1) treffen Sie die erste und ggf. auch wichtigste Einstellung: Möchten Sie die Benutzer „nur“ mit Benutzer-Name und Passwort in ihr Netz lassen (Einstellung: „remote Access (User Auth)“?

Oder möchten sie die Sicherheit erhöhen und für jeden Benutzer ein individuelles zertifikat erstellen. Das wäre dann Server Mode: „Remote Access (SSL/TLS + User Auth)“.

Wählen Sie unter (2) ihre Authentifizierungs-methode. Bis das OpenVPN wirklich funktioniert wählen Sie hier zunächst “Local Database”. Damit werden die Usernamen und Passwörter in der lokalen Datenbank der pfsense gesucht. Die weiteren Einstellungen zu Protokoll, Interface und Port lassen Sie so wie sie in den Vorgaben stehen. Sofern Sie möchten, können Sie diese Einstellungen später jederzeit ändern.

Bei (3) geben Sie einen beschreibenden Namen des OpenVPN Servers ein. Auf die Funktion hat die Bezeichnung keine Auswirkung.

Hinweis: In den allermeisten Fällen wird als Interface „WAN“ richtig sein. Ändern Sie das „empfangende“ Interface nur, wenn Sie eine atypische Situation haben – bspw. Die VPN-User in einer DMZ entgegen nehmen.

1.3.2 Cryptographic Settings

Im nun folgenden Schritt werden die Kryptographie-Einstellungen des OpenVPN Servers konfiguriert:

Kryptographische Einstellungen auf der pfsensen für das OpenVPN

Kryptographische Einstellungen auf der pfsensen für das OpenVPN

Unter (1) müssen Sie eine bestehende Peer-Certificate-Authority auswählen. In aller Regel haben Sie dafür auch nur genau eine vorhandene CA auf der pfsense. Unter „Server Certificate“ wählen Sie das vorher erstellte Server-Zertifikat für den OpenVPN Server aus.

Bei den eigentlichen Krypto-Settings ändern Sie unter (3) die Diffie-Hellmann (DH) Einstellungen von 1024 auf mindestens 2048 bits.

Die eigentlichen Verschlüsselungs-Einstellungen ändern Sie bei „Encryption Algorithm“ (4) aus. Wählen Sie hier einen Mechanismus mit mindestens 256-bit aus. Hier gilt: Je höher die Zahl, desto größer der Aufwand den Schlüssel zu knacken. Im Umkehrschluss gilt: Je höher die Zahl, desto mehr hat die Firewall mit der Berechnung zu tun. Alle weiteren Einstellungen lassen Sie auf dem Default.

1.3.3 Tunnel-Einstellungen

Im nun folgenden Teil nehmen Sie Netzwerk-Einstellungen für die VPN-User vor:

Tunnel Einstellungen des OpenVPN auf der pfsense

Tunnel Einstellungen des OpenVPN auf der pfsense

Unter (1) „IPV4 Tunnel Network“ geben Sie das Netzwerk an, aus dem die VPN-Benutzer ihre IP-Adresse bekommen. Das sollte sich vom lokalen Netzwerk (in dem die pfsense Firewall steht) unterscheiden.

Bsp.

Ihr lokales Netzwerk ist 192.168.0.0/24, dann geben Sie unter (1) z.B. 192.168.100.0/24 ein. Damit bekommen die remote User dann IP-Adressen von 192.168.100.1 bis 192.168.100.25x.

Unter (2) tragen Sie das lokale Netzwerk ein, in dem die pfsense steht. In unserem Beispiel wäre das 192.168.0.0/24.

Hinweis: Mit dem Haken bei „redirect Gateway“ bestimmen Sie ob aller traffic vom remote user durch das VPN geht oder nicht. Falls Sie den remote Usern den Zugang zu weiteren Netzwerken ermöglichen möchten oder aus Sicherheitsgründen allen traffic (bspw. Über einen Proxy-Server) überprüfen möchten, so setzen Sie den Haken hier. Rein technisch wird dadurch auf dem PC/Notebook des Anwenders die Default Route durch den Tunnel gesetzt.

1.3.4 Client Settings und advanced client Settings

Einstellungen des Kunden-Netzes in der pfsense für den OpenVPN-Tunnel

Einstellungen des Kunden-Netzes in der pfsense für den OpenVPN-Tunnel

In diesem Teil der Einstellungen tragen Sie die Netzwerk-Vorgaben wie DNS-Default Domain (2) und die zu verwendenden DNS Server (3) ein.

Unter (1) kann man einstellen, ob jeder Client seine eigene IP bekommt oder gleich sein eigenes Subnetz mit einer /30 Maske. Lassen Sie das im Zweifel auf „One IP Address per client“.

1.3.5 Advanced Configuration

Unter „advanced Configuration“ können Sie z.B. weitere Routen definieren. Diese werden mit ‚push „route Netz Netzmaske“ angegeben. Bsp.: push „route 192.168.1.0 255.255.255.0“

Als letzte Einstellungsmöglichkeit können Sie die Ausführlichkeit (verbosity) des Logs von OpenVPN einstellen. Lassen Sie diesen Wert zunächst bei „3“.

Mehr zum Thema:  Pfsense Firewall installieren und konfigurieren
Mehr zum Thema:  Wie Sie firewalld unter Centos 7 nutzen

Last but not least: Klicken Sie nun noch auf „Save“ und speichern Sie den neuen OpenVPN Tunnel.

1.4 Firewall-Regeln erstellen:

Damit ihre Benutzer sich anmelden können, benötigen Sie nun noch zwei Regel auf der pfsense Firewall: Eine um die Anmeldung zu ermöglichen, eine weitere um den VPN-Verkehr ins Netz zu lassen.

1.4.1 UDP auf das WAN-Interface

1.4.2 VPN Traffic durch die pfsense

1.5 Gruppe für VPN-Benutzer einrichten

Sie benötigen für die korrekte Berechtigung der Benutzer eine Benutzer-Gruppe auf der pfsense. Falls Sie später die Authentifizierung an ihre Microsoft-AD anbinden, muss diese Gruppe unbedingt so heißen wie ihre Berechtigungsgruppe im Active Directory. Legen Sie also zunächst eine neue Gruppe an:

System -> User Manager -> Groups > Add

Erstellen Sie zunächst eine Gruppe mit dem Kontext „local“ – also eine Gruppe auf der pfsense selbst. Bearbeiten Sie die Gruppe anschließend so, dass die Rechte der Gruppe so aussehen:

Berechtigungen der Benuzter-Gruppe für den VPN-Zugriff

Berechtigungen der Benuzter-Gruppe für den VPN-Zugriff

1.6 Benutzer anlegen

Für den ersten Zugriff benötigen Sie einen lokalen Benutzer auf der pfsense. Diesen legen Sie an unter:

System -> User Manager .> Users -> Add
Neben dem Namen müssen sie natürlich ein Passwort vergeben. Außerdem nehmen Sie den Benutzer in die Gruppe für VPN Benutzer auf.

1.7 Zertifikat für Benutzer

Sofern der OpenVPN Server mit Passwort und (!) Zertifikat arbeitet, benötigt der Benutzer sein eigenes, ganz persönliches Zertifikat. Das Benutzer-Zertifikat legen Sie bei (oder nach) der Erstellung des Benutzers an.

Haken Sie dazu das Feld neben „Certificate“ an (“Click to create a user certificate”) und geben dem Zertifikat einen Namen (z.B. Benutzername-vpn-zertifikat). Der Name ist nur für Sie wichtig, damit Sie später die Benutzer-Zertifikate auseinander halten können.

Zertifikat und Einstellungen für Benutzer

Die Software für den remote-Zugang sowie das Benutzer-Zertifikat und die Einstellungen für den Benutzer exportieren Sie bequem unter: VPN -> OpenVPN -> Client Export

Sofern Sie als „Server Mode“ beim OpenVPN-Server „Remote Access(User Auth)“ gewählt haben, gibt es für alle Benutzer eine Konfigurations-Datei. Diese beinhaltet bspw. die IP-Adresse des Servers, die Authentifizierungs-Einstellungen und das Master-Zertifikat des Servers.

Wenn Sie als „Remote Access (SSL/TLS & User Auth)“ eingestellt haben, dann hat jeder Benutzer sein eigenes Installations-Paket. Das beinhaltet dann das individuelle Zertifikat des Benutzers, das bei jedem Anwender ein anderes ist, sowie die Einstellungen für das VPN sowie das Server-Zertifikat.

Tipp: Laden Sie VPN -> OpenVPN -> Client Export immer den Windows-Installer herunter. In ihm ist alles enthalten, was der Benutzer braucht. Lediglich seinen Benutzernamen und das Passwort benötigt der Anwender noch.

Installieren Sie nun das gerade exportierte Software-Paket. Bitte beachten Sie dass Sie die OpenVPN mit Administrator-Rechten auf dem PC/Notebook ausführen müssen. Testen Sie anschließend die Verbindung, in dem Sie auf das Icon von OpenVPN rechts klicken und „Verbinden“ wählen.

Wenn alles funktioniert, dann erscheint das Icon von OpenVPN anschließend in gün:

OpenVPN-Icon in der Taskleiste

OpenVPN-Icon in der Taskleiste

2 OpenVPN mit Active Directory-Integration

Wenn Sie mehr als 4-5 Benutzer haben, die OpenVPN für ihren remote-Zugang verwenden, sollten Sie eine AD-Integration einrichten.

Vorteile:

  • Sie müssen den Benutzern keinen zweiten Login (auf der PFsense) einrichten
  • Der Benutzer kann ich mit seinem AD-Nutzernamen und Passwort anmelden
  • Lediglich die Mitgliedschaft in einer AD-Gruppe definiert, ob ein AD-Benutzer mit OpenVPN arbeiten kann.

Um eine AD-Integration zu erstellen, müssen Sie folgendes tun:

  • Einrichten einer Gruppe im AD für die VPN-Benutzer
  • Erstellen einer LDAP-Verbindung von der pfsense zum AD
  • Einrichten der Authentifizierung zwischen der pfsense Firewall und dem AD für die OpenVPN-Benutzer
  • Erstellen einer lokalen Gruppe auf der pfSense mit dem gleichen Namen wie die AD-Gruppe sowie den Berechtigungen für OpenVPN
  • Anpassung der OpenVPN Installation

Die Einrichtung an sich ist nicht schwierig. Allerdings liegt der Teufel oft im Detail. Wenn Sie die nachfolgende Anleitung Schritt für Schritt durchgehen, sollte es aber klappen.

2.1 Einrichten einer Gruppe im AD für die VPN-Benutzer

Damit später klar erkennbar ist, welcher Benutzer den remote Zugang mit OpenVPN auf der pfsense benutzen darf und wer nicht, legen Sie als erstes eine Gruppe im Active Directory an.

Geben Sie dieser Gruppe einen sprechenden Namen „VPNUsers“ (oder VPNBenutzer“). Vermeiden Sie Leerzeichen oder Sonderzeichen. Fügen Sie diejenigen Benutzer-Accounts zu der Gruppe hinzu, die später das VPN nutzen dürfen.

Notieren Sie den Gruppennamen und beachten Sie welche Buchstaben groß und welche klein geschrieben werden. Die pfsense Firewall basiert auf Linux(bzw. bsd) und ist damit „case-sensitive“, d.h. sie unterscheidet Groß- und Kleinschreibung.

2.2 Ermitteln des LDAP-Kontextes

Um die pfsense später mit dem Active Directory sprechen zu lassen, müssen wir wissen, in welchen „Organizational Units“ die Benutzer liegen, deren Passwort wir prüfen möchten. Org Units sind die Container (bzw. Ordner) in denen die Benutzer angelegt sind.

Wichtig: Jeder Benutzer kann nur in einem Container (bzw. einer OU) auf einmal sein.

Dazu ermitteln Sie zunächst den LDAP-Kontext.

  • Öffnen Sie auf einem Domain Controller den ADSI Editor (Start -> Systemsteuerung >Verwaltung -> ADSI Editor)

Dort finden Sie auf oberster Ebene die Darstellung ihrer AD im LDAP-Format.

Wenn bspw. Die Domain itsc.local heißt, dann entspricht das in LDAP:

„DC=itsc,DC=local“ . Bitte beachten Sie das Komma (kein Semikolon)

LDAP-Einstellungen ermitteln mit dem ADSI Editor

LDAP-Einstellungen ermitteln mit dem ADSI Editor

Erweitern Sie nun auf der linken Seite den Baum, bis Sie den Container ihrer Benutzer gefunden haben:

Um obigen Beispiel haben wir also die Ober-OU „itscBenutzer“ unterhalb des Kontextes „itsc.local“. Unterhalb von „itscBenutzer“ finden Sie weitere OUs, die einzelnen Abteilungen entsprechen. In diesen sind in dieser Domain die Benutzer angelegt.

Bitte prüfen Sie im Benutzer-Manager ob hier tatsächlich Benutzer vorhanden sind.

Hinweis: Anstatt des im Microsoft-Windows Server vorhandenen ADSI Editors können Sie auch jeden anderen LDAP-Browser verwenden.

2.3 Benutzer für die Authentifizierung anlegen

Damit später die pfsense Firewall mit dem AD Informationen austauschen kann, benötigen wir einen lesenden Zugang zur AD. Dazu legen Sie jetzt einen Benutzer im Active-Directory an. Diesen nennen Sie bitte sprechend z.B. „pfsense“.

Vergeben Sie ein Passwort und notieren Sie dieses.

Wichtig: Stellen Sie das Konto so ein, daß das Passwort nie abläuft und nicht geändert werden muss.

2.4 LDAP-Verbindung in der pfsense einrichten

Die pfsense Firewall kann neben der lokalen Authentifizierung mit (beliebig vielen) LDAP- oder Radius-Servern sprechen.

Öffnen Sie dazu nun die Weboberfläche der pfsense. Dort navigieren Sie zu:

System -> User Manager -> Authentication Servers -> Klicken Sie auf „Add“ um eine neue LDAP-Verbindung einzurichten:

Abb. Oberer Teil der Maske „LDAP-Server Settings“

LDAP-Server zur Authentifizierung einrichten

LDAP-Server zur Authentifizierung einrichten

Vergeben Sie unter (1) einen sprechenden Namen. Als Auth-Typ stellen Sie bei (2) LDAP ein.

Hostname: bitte immer die IP unter (3) eintragen. Sonst sind sie auf funktionierendes DNS angewiesen.

Den Transport (4) stellen Sie auf TCP-Standard ein. Bei (5) Search Scope wählen Sie „entire Subtree“. Damit wird sichergestellt, dass Sie weiter unten nur den obersten Container einer OU auswählen müssen.

Bei (6) tragen Sie unter „Base DN“ die Werte ein, die Sie mit dem ADSI-Editor ermittelt haben. Bei Base-DN benötigen wir nur die oberste Domain-Ebene also „DC=itsc,DC=local“ wenn die Domain „itsc.local“ heißt.

Im darunter liegenden Feld (7) Authentication Containers müssen Sie nun die oberste OU für Benutzer eintragen, die Sie vorher mit dem ADSI-Editor ermittelt haben.

LDAP-Einstellungen in der pfsense Firewall

LDAP-Einstellungen in der pfsense Firewall

 

Im unteren Teil der Maske „LDAP Server Settings“ klicken Sie auf „extended query“ und setzen den Haken bei (1). Anschließend fügen Sie bei (2) folgendes ein:

memberOf=CN=<GRUPPENNAME>,DC=itsc,DC=local

Ersetzen Sie <GRUPPENNAME> durch den Namen der Gruppe, die Sie im Active-Directory angelegt haben. Achten Sie bitte auf Groß-Kleinschreibung. Sofern Ihre Domain anders (also itsc.local) heißt, so ändern Sie den hinteren Teil (DC=itsc,DC=local) entsprechend.

Tipp: Beim erstmaligen Einrichten empfehle ich, den Haken bei „extended Query“ zunächst weg zu lassen, bis die grundsätzliche Authentifizierung gegen die AD funktioniert. Das bedeutet, dass erst einmal jeder Benutzer, der ein funktionierendes Passwort hat, sich mittels OpenVPN anmelden kann.

Mehr zum Thema:  Centos 7 - firewalld Kommandozeilen-Referenz
Mehr zum Thema:  Wie Sie firewalld unter Centos 7 nutzen

Bei (3) entfernen Sie den Haken und fügen bei „Bind credentials“ (4) den Benutzer in der Form „domain\benutzer“ und bei (5) das Passwort ein. Nutzen Sie dazu den Domain-User, den Sie vorhin gerade angelegt haben.

Bei „initial Template“ (6) wählen Sie bitte „Microsoft AD“ aus. Die nachfolgenden Felder lassen Sie so wie Sie vorausgewählt sind.

LDAP prüfen innerhalb der pfsense

LDAP prüfen innerhalb der pfsense

Wenn Sie nun alles richtig eingetragen haben, klicken Sie (etwa in der Mitte der Maske) auf den blauen Button „Select a container“. Jetzt wird live in der AD folgendes geprüft:

  • Ist eine Anmeldung möglich?
  • Welche Container gibt es (noch)?

Wenn jetzt nichts passiert oder Sie eine Fehlermeldung erhalten, dann überprüfen Sie bitte die Eingaben.

Hinweis: Bitte beachten Sie das im Feld „Authentication Containers“ bereits ein valider Eintrag stehen muss, BEVOR Sie auf den blauen Button klicken.

LDAP-Container bzw. LDAP-OUs

LDAP-Container bzw. LDAP-OUs

Wenn wie im obigen Bild weitere Container (2) erkannt worden sind, funktioniert die Verbindung zum AD. Sie können nun noch weitere Container auswählen – müssen das aber nicht, wenn Sie vorher unter „search scope“ „entire subtree“ ausgewählt haben.

Speichern Sie zum Schluß die neue LDAP-Verbindung ab in dem Sie auf „Save“ klicken.

Gruppe für VPN Benutzer anlegen.

Legen Sie nun unter System-> User Manager -> Groups eine Benutzer-Gruppe an.

Dieser Gruppe geben Sie (1) den exakt gleichen Namen wie in der AD. (Groß/Kleinschreibung beachten).

Benutzer-Gruppe für VPN Benutzer

Benutzer-Gruppe für VPN Benutzer

Bei (2) wählen Sie unter „Scope“ den Eintrag „Remote“ (nicht lokal). peichern Sie die Gruppe ab.

Der gerade erstellten Gruppe geben Sie anschließend folgende Rechte:

Berechtigungen der Benuzter-Gruppe für den VPN-Zugriff

Berechtigungen der Benuzter-Gruppe für den VPN-Zugriff

Hinweis: Die Gruppe braucht keine Mitglieder. Diese werden aufgrund des Scopes (remote) im AD abgefragt.

OpenVPN Server anpassen

Zum Schluss müssen wir dem bestehenden OpenVPN Server noch diese neue Authentifizierungs-Möglichkeit mitteilen. Dazu öffnen Sie unter VPN -> OpenVPN -> Servers ihren Einwahl-Server.

Authentifizierungs-Backend für OpenVPN in der pfsense Firewall ändern

Authentifizierungs-Backend für OpenVPN in der pfsense Firewall ändern

Klicken Sie im Feld „Backend for authentication“ auf die vorher erstellte LDAP-Integration. (muss danach blau hinterlegt sein) und klicken Sie (unten) auf speichern.

Hinweis: Ein OpenVPN kann mehrere Authentifizierungs-Server abfragen. Es schadet also nicht wenn Sie neben dem LDAP auch „Local Database“ anhaken.

Ein sich anmeldender Benutzer wird immer zuerst beim LDAP-Server bzw. ihrer AD abgefragt bevor die lokale Datenbank von pfsense kontaktiert wird

Zugang für Benutzer

Innerhalb von pfsense gibt es eine komfortable Funktion eine fertige Software für Notebooks bzw. PCs pro Benutzer zu erzeugen, in der alle Daten für die Verbindung (außer dem Passwort) enthalten sind.

Um diese zu nutzen, müssen Sie den sog. „OpenVPN Client Export“ zunächst installieren. Gehen Sie zu System -> Package Manager -> Available Packages. Suchen Sie nach „openvpn-client-export“ und installieren das Software-Paket auf der pfsense.

Zugangs-Software aus pfsense exportieren

Sobald das Paket Open-VPN Client Export installiert ist, klicken Sie auf:

VPN -> OpenVPN -> „Client Export“

Export der Einstellungen (Settings) mit oder ohne Software zur Verbindung mit OpenVPN

Export der Einstellungen (Settings) mit oder ohne Software zur Verbindung mit OpenVPN

Dort haben Sie die Möglichkeit, die OpenVPN Software als Installer für einen Benutzer inklusive aller Einstellungen und Zertifikate für unterschiedliche Plattformen herunter zu laden.

Sie können natürlich auch „nur“ die Konfiguration herunter laden.

Laden Sie im Zweifel den Windows-Installer herunter und installieren Sie die OpenVPN-Client Software auf dem Rechner/Notebook mit dem Sie bzw. der Kunde von unterwegs oder zuhause auf das Firmen-Netz zugreifen möchte.

Testen Sie die Einwahl. Funktioniert alles? Falls ja – sehr gut!

Falls nicht: Machen Sie eine Pause und gehen danach die Konfiguration noch mal Schritt für Schritt durch. Wenn das keinen Erfolg bringt, dann gehen Sie die Troubleshooting-Liste (weiter unten im Text) Schritt für Schritt durch. In der Regel sind es beim VPN Kleinigkeiten, die nicht stimmen – und die Einwahl verhindern.

OpenVPN-Client von Securepoint (Windows)

Die Firma Securepoint bietet einen kostenfreien Client für PC/Notebook an, der mit OpenVPN funktioniert.

Vorteil:

  • Sieht professioneller aus als die Software von OpenVPN
  • Läuft und funktioniert ohne lokale Administrator-Rechte auf dem PC/Notebook
  • Der Securepoint-Client kann Benutzername und Passwort speichern > Das ist in der Regel für die Anwender komfortabler und bietet daher mehr Komfort

Sie können die Software unter http://sourceforge.net/projects/securepoint/files/ kostenlos herunter laden. Mit dem Securepoint Client können Sie auch unterschiedliche VPN-Einstellungen bzw. unterschiedliche VPN-Einwahlen abspeichern:

Damit Sie mit dem Securepoint Client arbeiten können, müssen Sie vorher den Client-Export durchgeführt haben. Diese Einstellungen können Sie anschließend im Securepoint Client importieren.

Import-Möglichkeit im kostenlosen Securepoint-Client für OpenVPN

Import-Möglichkeit im kostenlosen Securepoint-Client für OpenVPN

Zugangs-Software für Mac-user

Für Macbook-User, Grafiker und alle andere Style-Iconen gibt es die folgenden Software-Produkte um OpenVPN auf einem Macintosh zu nutzen:

Kostenlose Software: https://tunnelblick.net/

Kostenpflichtige Software https://www.sparklabs.com/viscosity (9 USD pro User)

VPN Troubleshooting

Bei VPNs – egal ob IPSEC oder OpenVPN – kann man beliebig viel falsch machen. Schon klein(st)e Fehler führen oft zur Fehlfunktion bzw. zum Nicht- Funktionieren des VPN.

Bei der Fehlersuche von VPNs ist es deshalb sehr wichtig, dass Sie extrem strukturiert vorgehen. Das bedeutet:

  • Dokumentieren Sie alles!
    • Was funktioniert – schreiben Sie es auf.
    • Was funktioniert nicht – notieren Sie es.
  • Ändern Sie nur einen Parameter / Schalter auf einmal
  • Bringen Sie Zeit mit. Troubleshooting im VPN ist zeitlich gesehen immer „open end“.

Grundsätzlich gilt: Nur eine Änderung auf einmal. Danach testen und Log auswerten. Danach die nächste Änderung und so weiter.

OpenVPN mit AD

Bitte schauen Sie zuerst ins Log von OpenVPN auf der pfsense Firewall. Finden sich hier Einträge? Wenn ja, was sagen Sie aus?

Googlen Sie im Zweifel nach der Fehlermeldung. Die Chancen stehen in der Regel gut, dass schon einmal ein Netzwerk-Administrator vor Ihnen den gleichen Fehler in einem Forum gepostet hat.

4.1.1 OpenVPN

Status -> System Logs -> OpenVPN

Sind hier irgendwelche Einträge vorhanden, die auf Fehler hinweise?

Wenn sie gar keine Einträge finden, dann erhöhen Sie das Debug-Level um eine Ziffer nach oben.

4.1.2 Test mit einem lokalen User

Zu allererst sollten Sie die Authentifizierung mit einem lokalen Benutzer auf der PFsense Firewall testen. Legen Sie einen lokalen Benutzer an, setzen sie das Passwort und weisen sie den Benutzer der Gruppe für VPN Zugang zu.

Anschließend laden Sie sich das Paket (Client Export) herunter und probieren die Anmeldung via OpenVPN an der Pfsense Firewall.

Wenn die Anmeldung nun funktioniert, dann gehen sie (sofern Sie gegen die AD authentifizieren möchten) zum nächsten Punkt. Falls es hier schon „klemmt“, dann prüfen Sie noch mal die Einstellungen des eingerichteten OpenVPN Servers.

4.1.3 Gruppe prüfen.

Sollte mit dem lokalen User keine Anmeldung möglich sein, dann setzen Sie vorübergehend die Rechte der VPN-Benutzer-Gruppe hoch. Weisen Sie – nur vorübergehend – alle verfügbaren Rechte der VPN-User-Gruppe zu.

Versuchen Sie die Anmeldung erneut. Klappt`s jetzt? Falls ja, entfernen Sie die nicht notwendigen Rechte schrittweise wieder, bis Sie die maximal notwendigen Rechte in der Gruppe haben, die für eine Remote-Anmeldung notwendig sind.

4.1.4 Debug Log erhöhen

Schalten Sie im OpenVPN Server das Logging eine Zahl höher (bspw: von 3 auf 4). Bitte nur auf Werte von größer als 5 setzen, wenn Sie diese Einstellung nach 10 Minuten wieder runter stellen. Ein hoher Debug-Wert belastet den Firewall (und dessen Festplatte) durch das Schreiben von extrem vielen Log-Zeilen.

4.1.5 OUs ausweiten

Um überhaupt eine Authentifizierung gegenüber der AD zu erzielen, haken Sie temporär alle OUs in der Maske an:

LDAP-Container bzw. LDAP-OUs

LDAP-Container bzw. LDAP-OUs

Wenn mit allen angehakten Kreuzchen die Einwahl möglich ist, haken Sie Schritt für Schritt die nicht mehr notwendigen OUs ab bis sie diejenigen gefunden haben, die für die Einwahl nötig sind.

4.1.6 LDAP prüfen

Bitte laden Sie sich von https://technet.microsoft.com/de-de/sysinternals/adexplorer.aspx den LDAP Explorer herunter.

Installieren sie ihn und starten Sie die Software (im Netz mit dem Active Directory). Melden Sie sich mit dem Benutzer-Account der pfsense in der Active Directory Struktur am Microsoft-Directory an. Prüfen Sie ob Sie die richtigen Bezeichnungen haben für:

  • Domain: DC=……,DC=local ?? richtig
  • Benutzer-OU:
  • LDAP-Name der Gruppe:

Prüfen Sie ob Sie die „echten“ Werte in den Einstellungen des „LDAP-Authentication Servers“ exakt so eingetragen haben.

Weiterführende Hinweise

Wenn auch diese Anleitung nicht reicht… finden Sie hier weitere Hilfe:

Pfsense Forum: https://forum.pfsense.org/index.php

Pfsense Dokukemtation https://doc.pfsense.org/index.php/Main_Page

Pfsense Howtos: https://doc.pfsense.org/index.php/Category:Howto

Viel Erfolg beim Einsatz von OpenSource-Produkten, OpenVPN und mit der pfsense Firewall.