valentint - Fotolia

OPNsense: Einfache Home-Office-Anbindung per OpenVPN

OPNsense ist eine Firewall- und Routing-Plattform auf Open-Source-Basis. Damit können Unternehmen schnell und einfach eine Firewall mit integriertem OpenVPN-Server bereitstellen.

OPNsense ist eine Firewall- und Routing-Plattform auf der Basis von HardenedBSD. Die Appliance ist für den Betrieb auf physischer Hardware oder als virtuelle Maschine (VM) geeignet. OPNsense bietet unter anderem Funktionen wie Forward-Caching-Proxy, Traffic Shaping, Intrusion Detection und eine einfache OpenVPN-Client-Einrichtung. Die Stateful-Firewall unterstützt IPv4 und IPv6 und bietet Live-Einblick in den Datenverkehr.

Zu Testzwecken kann OPNSense über eine DVD (ISO-Datei) auch als Live-System gestartet werden. Allerdings speichert die Software dann keinerlei Daten. Daneben sind auch USB-Installer-Images verfügbar. OPNSense ist Open Source und kann kostenlos heruntergeladen werden, die englische Dokumentation ist ebenfalls frei zugänglich.

Die Installation der Appliance ist schnell abgeschlossen und nicht sehr kompliziert. Danach erfolgt die weitere Verwaltung über eine Weboberfläche. Diese wird mit der URL http:/<IP-Adresse> erreicht. Der Zugriff lässt sich auch für SSL konfigurieren. Die Einstellung dazu ist bei System/Settings/Administration zu finden. Hier können Sie als Protokoll HTTPS und den gewünschten Port auswählen.

Abbildung1: Zugriff auf OPNsense mit HTTPS festlegen.
Abbildung1: Zugriff auf OPNsense mit HTTPS festlegen.

Zertifizierungsstelle einrichten und Zertifikate ausstellen

OpenVPN wird als SSL VPN zur Verfügung gestellt. Für die Absicherung und Authentifizierung ist also ein Zertifikat für Anwender und den Server notwendig.

OPNsense verfügt über eine eigene Zertifizierungsstelle, die über System/Trust/Authorities angelegt wird. Hier lassen sich auf Wunsch auch mehrere Zertifizierungsstellen erstellen. Die Einrichtung erfolgt über einen Assistenten.

Der OpenVPN-Server in OPNsense und die Anwender benötigen ebenfalls Zertifikate. Diese werden von der erstellten Zertifizierungsstelle ausgestellt.

Im ersten Schritt wird dazu ein Zertifikat für den OpenVPN-Server erstellt. Das erfolgt über System/Trust/Certificates. Hier können über Add neue Zertifikate erstellt werden. Für den OpenVPN-Server wird ein Serverzertifikat benötigt, für Anwender ein Clientzertifikat.

Abbildung 2: Erstellen einer eigenen Zertifizierungsstelle.
Abbildung 2: Erstellen einer eigenen Zertifizierungsstelle.

Benutzer für OpenVPN anlegen

Client-Zertifikate lassen sich direkt an Benutzerkonten binden und die Benutzer wiederum direkt in OPNsense über Access/Users pflegen. Beim Anlegen eines Benutzers kann mit Click to create a user certificate gleich ein Zertifikat angelegt und mit dem Benutzer verbunden werden. Bei Groups lassen sich anschließend neue Gruppen anlegen, zum Beispiel VPN-Zugriff.

Diesen Gruppen können Sie dann Benutzer zuordnen. Beim Erstellen des OpenVPN-Servers ist es auch möglich eine Benutzergruppe anzugeben, die Zugriff auf den Server erhalten soll.

Abbildung 3: Anlegen und Verwalten von eigenen Zertifikaten mit der OPNsense-Zertifizierungsstelle.
Abbildung 3: Anlegen und Verwalten von eigenen Zertifikaten mit der OPNsense-Zertifizierungsstelle.

OpenVPN-Server anlegen

OPNsense kann mehrere OpenVPN-Server parallel anlegen und betreiben. Die Server werden auf unterschiedlichen Ports oder IP-Adressen konfiguriert. Dazu müssen Sie bei Interfaces die Schnittstellen für LAN und WAN konfigurieren und mit IP-Adressen versehen. Anschließend ist es möglich, bei VPN/OpenVPN/Servers ein OpenVPN-Server anzulegen.

Hier ist es wichtig, bei Server Mode die Option Remote Access (SSL/TLS) oder besser Remote Access (SSL/TLS + User Auth) auszuwählen. Bei der letzten Option erfolgt die Authentifizierung über das ausgestellte Zertifikat und zusätzlich über Benutzernamen und Kennwort des Anwenders. Auch eine Anbindung von OPNsense an Active Directory ist machbar. Die Einrichtung dafür erfolgt bei System/Access/Servers.

Beim Anlegen des OpenVPN-Servers wird noch das Interface ausgewählt sowie der Port und das Protokoll. Standardmäßig kommt für OpenVPN der Port UDP 1194 zum Einsatz. Wenn es erforderlich ist, lässt sich hier aber auch TCP 443 verwenden. Das ist dann sinnvoll, wenn der VPN-Zugriff aus Netzwerken erfolgt, bei denen Ports gesperrt sind. In den meisten Fällen wird auch in diesen Netzwerken der Port 443 durchgelassen.

Abbildung 4: Einrichten eines neuen OpenVPN-Servers in OPNsense.
Abbildung 4: Einrichten eines neuen OpenVPN-Servers in OPNsense.

Beim Einrichten des Servers wählen Sie unter Enforce local group die Benutzergruppe, die Zugriff erhalten soll. Bei Cryptographic Settings ist über Peer Certificate Authority die Zertifizierungsstelle wählbar, die in OPNsense erstellt wurde. Bei Server Certificate wählen Sie danach das Zertifikat aus, das für OpenVPN über System/Trust/Certificates erstellt wurde.

Wichtig ist, bei der Einrichtung das IPv4 Tunnel Network zu definieren. Das ist das Netzwerk, aus dem die OpenVPN-Clients eine IP-Adresse bei Einwahl erhalten, zum Beispiel 172.16.16.0/24. Unter IPv4 Local Network definieren Sie wiederum das Netzwerk, auf das die Clients zugreifen können, wenn sie mit dem Netzwerk verbunden sind, zum Beispiel 192.168.178.0/24.

Die anderen Einstellungen sind optional. Sinnvoll ist noch das Festlegen von SHA256 (256-bit) unter Auth Digest Algorithm. Danach wird der Server erstellt und unter VPN/OpenVPN/Servers angezeigt. Hierüber können Sie den Server auch jederzeit anpassen.

Abbildung 5: Sicherheit und IP-Einstellungen für den OpenVPN-Server in OPNsense konfigurieren.
Abbildung 5: Sicherheit und IP-Einstellungen für den OpenVPN-Server in OPNsense konfigurieren.

Client-Einstellungen exportieren

Die Client-Einstellungen für OpenVPN können Sie anschließend bei Client Export in ein ZIP-Archiv extrahieren. Dieses enthält auch das Zertifikat für den entsprechenden Anwender. Der Benutzer muss in seinem OpenVPN-Client anschließend nur die Konfigurationsdatei des Pakets importieren und kann sich anschließend mit dem Server verbinden.

Ein bekannter, kostenloser OpenVPN-Client ist zum Beispiel der Client von SecurePoint. Dieser steht als Open Source kostenlos zur Verfügung. Vor dem Exportieren muss darauf geachtet werden, dass als externe IP-Adresse die Adresse des Netzwerks im Internet aufgeführt sein muss. Wenn Sie hier mit einer Weiterleitung von einer Hardware-Firewall arbeiten, dann wird hier nicht die IP-Adresse der WAN-Schnittstelle von OPNsense verwendet, sondern die IP-Adresse der Firewall im Internet.

Firewall-Einstellungen für OpenVPN setzen

Die Firewall beinhaltet die Kernfunktionen von OPNsense. Damit sich Anwender per OpenVPN verbinden können, müssen Sie über Firewall/Rules zunächst bei OpenVPN Firewall-Regeln für die Einwahl anlegen. Diese gelten für den Zugriff von OpenVPN-Clients auf das interne Netzwerk. Ohne diese Regeln blockiert OPNsense die Einwahl.

Abbildung 6: Firewall-Regeln in OPNsense anlegen.
Abbildung 6: Firewall-Regeln in OPNsense anlegen.

Mit dieser Standardregel erlaubt OPNsense den OpenVPN-Clients den kompletten Zugriff. Hier lässt sich natürlich auch festlegen, dass die Clients, nur Zugriff per RDP erhalten.

Über Rules/WAN müssen Sie außerdem den Port freischalten, für den der OpenVPN-Server konfigurier ist. Befindet sich der OPNsense-Server hinter einem Router oder einer Firewall, dann muss auf diesem Gerät eine Weiterleitung konfiguriert werden, die Anfragen aus dem Internet zum Port des OpenVPN-Servers auf OPNsense weiterleitet. Auch Regeln für die LAN-Schnittstelle müssen Sie hier angelegen.

Erfahren Sie mehr über Netzwerksicherheit