Bereitstellung einer pfsense openVPN Appliance
  • 05 Jan 2024
  • 5 Minutes to read
  • Contributors
  • Dark
    Light

Bereitstellung einer pfsense openVPN Appliance

  • Dark
    Light

Article summary

Um sich in ein ORG-Netzwerk zu verbinden, welches sich hinter einem Edge Gateway befindet, ist ein VPN erforderlich. Wenn Sie immer vom selben Ort, zB. Ihrem Büro, verbinden, bietet sich ein IPSEC Site-to-Site-VPN an. möchten Sie ortsunabhängig arbeiten, können Sie OpenVPN, Wireguard, L2TP-VPNs oder ähnliche Remote Access Lösungen verwenden. In folgendem Beispiel stellen wir eine pfsense Appliance mit einem openVPN Server bereit. Gehen Sie dazu wie folgt vor:

1. Bereitstellung der VM

Für die simple Administration Ihrer VMs im VDC reichen 1 CPU, 2 GB RAM und 20 GB Disk. Ein ISO für pfsense finden Sie in der von uns bereitgestellten ISO-Library. Verwenden Sie eine statische IP-Adresse (zB. aus dem Pool) in Ihrem ORG-Netzwerk für die VM.
image.png

Bevor Sie die VM starten, stellen Sie sicher dass der BUS Typ "LSI Logic SAS (SCSI)" ist und korrigieren Sie dies falls nötig.
image.png

2. Konfiguration auf dem Edge

Die VM wurde mit nur einer NIC konfiiguriert. Wir verwenden ein DNAT (Portforwarding) für Port 1194/udp damit keine weitere Public IP verwendet werden muss. In einem Diagramm mit Beispielwerten dargestellt sieht das wie folgt aus:
image.png

Erstellen Sie dazu ein DNAT Eintrag in der Service Page Ihres Edge Gateways, welcher den Incoming Traffic auf Port 1194/udp an die Public IP des Edges an die pfsense weiterleitet:
image.png

Erfassen Sie nun die Firewall Rule (2, blau markiert) um ankommenden openVPN Traffic für den Edge Gateway zu erlauben:
image.png

3. Installieren der pfsense

Öffnen Sie nun die Konsole und Installieren Sie pfsense mit Ihren bevorzugten Einstellungen.
image.png

Nach der Installation und dem darauffolgendem Reboot, startet der Installationsassistent in der Konsole. Beantworten Sie die Fragen wie folgt:

  • Should VLANs be set up now? => n
  • Enter WAN interface name => vmx0 (oder angezeigter Interface Namen, falls dieser abweicht.
  • Enter the LAN interface name => Enter
  • Do you want to proceed? => y

image.png

Danach werden Sie mit dem Welcome Screen begrüsst. Wählen Sie nun 2 um die IP-Adresse zu setzen, sollte sie von der vorgesehen abweichen, als Upstream Gatway geben Sie die Adresse des Edge Gatways an:
image.png

Danach können Sie mit der Option "13" noch auf den aktuellsten Release updaten:
image.png

4. Einrichten der pfsense

Sie können sich nun auf das Webinterface der pfsense verbinden. Die erste Verbindung muss über eine VM im selben ORG-Netzwerk erfolgen. Danach können Sie ein Sie ein temporäres DNAT (Portforwarding) einrichten, um von extern darauf zuzugreifen. Die Standardanmeldedaten lauten wie folgt:

Benutzername: admin
Passwort: pfsense

Es öffnet sich nun der Einrichtungsassistent, Sie können die Einstellungen gemäss Ihren Präferenzen vornehmen.
image.png

Die Konfiguration des WAN Interface (Schritt 4) können Sie belassen, wie sie ist. Dieses haben wir bereits in der Konsole konfiguriert.
Wenn Sie, wie oben beschrieben, über DNAT auf das Webinterface zugreifen möchten, müssen Sie in den Erweiterten Einstellungen den "HTTP_REFERER Enforcment check" deakitiveren, dann ist der externe Zugriff über DNAT mögich:
image.png

Die Taste zum Speichern befindet sich zuunterst auf der Seite.
Navigieren Sie danach zum Package Manager und installieren Sie die beiden Pakete "Open-VM-Tools" und "openvpn-client-export":
image.png

5. Einrichten OpenVPN auf der pfsense

Öffnen Sie nun den Einrichtungsassistent unter VPN => OpenVPN
image.png

Für die Benutzerauthentifikation werden lokale User, welche auf der pfsense verwaltet werden, vewendet. Alternativ können Sie auch via LDAP oder RADIUS authentifizieren, dazu müssen Sie zuerst den Authentifiezierungsserver unter System => User Manager => Authentication servers konfigurieren, danach können Sie ihn im OpenVPN Einrichtungsassistent auswählen.
image.png

Als nächstes werden eine CA sowie ein Serverzertifiakt für den OpenVPN Server erstellt, füllen Sie den Assistenten mit Ihren Daten ab.
image.png

In Schritt 9 wird dann der eigentliche OpenVPN-Server konfiguriert. Beachten Sie, dass "Local Port" den selben Wert wie "Translated Port" in der DNAT Regel auf dem Edge Gatway hat.
image.png

Die Algorithmen könnnen Sie frei, nach Ihren Wünschen, wählen. Für das Tunnelnetzwerk wählen Sie bitte ein neues Netzwerk, welches in Ihrer Umgebung noch nicht exisitiert. Sie brauchen dieses nirgends sonst zu erfassen, ausser in diesem Feld.

Tragen Sie in "IPv4 Local Network" alle IP-Adressen kommagetrennt ein, welche über den VPN erreichbar sein sollten. Falls nur einzelne Hosts im Netzwerk erreichbar sein sollten, geben Sie diese wie folgt an: "10.13.37.54/32,10.13.37.42/32". Sie können hier auch mehrere ORG-Netzwerke angeben, die pfsense muss aber über eine Route dorthin verfügen. In unserem Beispiel erlauben wir den Zugriff auf das ganze ORG-Nerzwerk:
image.png

Die "Advanced Client Settins" können sie nach Ihren Bedürfnissen konfigurieren, zum Beispiel wenn ein DNS-Server oder Search Domain über VPN gesetzt werden soll.

Die Firewall Seite im Assistenten können Sie überspringen, dies wird im nächsten Schritt gemacht, schliessen Sie dann den Assistenten ab, so dass Sie zurück auf die OpenVPN-Serverübersichtsseite kommen.

6. Einrichten Firewall pfsense

Da für die korrekte Funktion des OpenVPNS Outbound NAT (SNAT) Regeln benötigt werden, könnnen wir die Firewallfunktion der pfsense nicht deaktivieren. Deshalb erstellen wir eine Firewall Rule, welche allen Traffic erlaubt.
image.png

Bitte erfassen Sie die selbe Regel auch für das OpenVPN Interface. Ihre Rulesets sollten dann wie folgt aussehen:

"WAN" Interface

image.png

OpenVPN Interface

image.png

7. Einrichten Outbound NAT pfsense

Damit Packages aus dem ORG-Netzwerk den Weg zurück in das Tunnelnetzwerk finden, wird ein Outbound NAT (SNAT) erstellt, damit wird die Source Adresse auf die Adresse der pfsense gesetzt, sobald das Package vom Tunnelnetzwerk ins ORG-Netzwerk kommt, schematisch dargestellt sieht das wie folgt aus:
image.png

Navigieren Sie zu Firewall => NAT => Outbound NAT und aktivieren Sie "Hybrid Mode"
image.png

Erstellen Sie nun zwei neue Regeln, die Reihenfolge ist hierbei wichtig. Die erste Regel mappt allen Traffic aus dem Tunnelnetzwerk, welcher an die pfsense selbst geht, auf die IP-Adresse der pfsense auf dem OpenVPN Interface. Die zweite Regel ist dann das eigentliche Mapping auf die ORG-Netzadresse der pfsense, wie oben beschrieben.
Die Regeln sollten dann wie folgt aussehen:
image.png

Die IP-Adresse auf dem OpenVPN Interface können Sie mit dem Befehl "ifconfig" anzeigen lassen, falls sie im Dropdownmenü nicht angezeigt wird.

8. Benutzer erstellen

Falls Sie Ihren OpenVPN Server an eine LDAP oder RADIUS Authenzifizierung angebunden haben, können Sie diesen Schritt überspringen

Öffnen Sie nun System => User Manager und fügen Sie einen neuen Benutzer hinzu. Wichtig ist dabei, dass sie die Checkbox "click to create a user certificate" markieren. Es wird dann ein weiterer Block eingeblendet, füllen Sie doert den "Descriptive name" aus.
image.png

9. Client Export

Navigieren Sie nun zurück zur OpenVPN Konfiguration, aber öffnen Sie den Tab "Client Export". Wird dieser nicht anezeigt, vergewissern Sie sich bitte, dass Sie das entsprechende Package aus Schritt 4 dieser Anleitung installiert haben.

Ändern Sie das Dropdown "Host Name Resolution" auf "Other" und geben Sie die Öffentliche IP-Adresse welche mittels NAT-Regel auf die pfsense weiterleitet in das Feld ein und speichern Sie die Seite.

image.png

Ganz unten werden Ihnen die Konfiguration pro User angezeigt. Falls Sie LDAP oder RADIUS verwendet, wird Ihnen eine Konfiguration für alle Benutzer angezeigt. Laden Sie Ihre präferierte Konfiguration herunter und importieren Sie diese in Ihren präferierten Client. Wir empfehlen Viscosity

image.png

Nun können Sie sich mit dem VPN verbinden.


What's Next