OpenVPN auf OPNsense einrichten


    Tags: , ,

    OPNsense FirewallAuf Basis von OPNsense und OpenVPN können Unternehmen eine Firewall mit integriertem VPN-Server einrichten. Das Setup ist relativ einfach und nach der Bereitstellung der Zertifikate erfolgt die Konfiguration des VPN-Servers über eine Web-GUI. Über Firewall-Regeln legt man dann fest, auf welche Ressourcen externe Clients zugreifen dürfen.

    Geeignet ist die Kombination der beiden Open-Source-Tools für Unternehmen aller Größen. Die Umgebung ist schnell eingerichtet, verursacht keine Lizenzkosten und bietet zahlreiche Funktionen, um einen VPN-Server sicher und performant zu betreiben.

    OPNsense als Firewall einrichten

    Damit OPNsense als Basis für einen OpenVPN-Server zum Einsatz kommen kann, muss zunächst die Firewall installiert und eingerichtet werden (siehe dazu: Open-Source-Firewall OPNsense installieren und konfigurieren).

    Ist OPNsense bereits im Einsatz, dann kann man den OpenVPN-Server jederzeit hinzufügen, ohne den Betrieb der Firewall zu stören. Weitere Dienste, die sich auf der Plattform betreiben lassen, sind unter anderem eine Zertifizierungs­stelle, DNS oder DHCP.

    OpenVPN-Server konfigurieren

    Sobald OPNsense ein Server-Zertifikat erhalten hat, kann man unter VPN => OpenVPN => Server über das Pluszeichen oben rechts einen OpenVPN-Server erstellen. Hier gibt man eine Beschreibung des Servers ein und wählt Remotezugriff (SSL/TLS+Benutzerauthentifizierung) aus. Bei Backend Authentifizierung entscheidet man sich für Lokale Datenbank.

    Server-Modus und Authentifizierung für den OpenVPN-Server auf OPNsense konfigurieren

    Bei Protokoll nehmen wir UDP und bei Schnittstelle ist jene zum Internet gemeint, also WAN. Zur Sicherheit sollte bei Lokaler Port aber nicht der Standard-Port von OpenVPN zum Einsatz kommen, sondern ein beliebig anderer, zum Beispiel 37300.

    Unter Kryptografische Einstellungen wählt man bei Serverzertifikate das erstellte Zertifikat für OPNsense aus.  Als Ver­schlüsselungs­algorithmus verwenden wir AES-256-CBC und bei Authentifizierungs-Digestalgorithmus nehmen wir die Option "SHA512".

    Im Feld IPv4-Tunnelnetz legt man den IP-Bereich fest, den die Clients erhalten, wenn sie sich erfolgreich am VPN-Server authentifiziert haben. Hier bietet sich zum Beispiel "172.16.0.0/24" an.

    Unter Lokales IPv4-Netzwerk definiert man hingegen, zu welchem internen IP-Netzwerk die Clients Zugriff erhalten sollen. Das ist in unserem Beispiel "10.0.0.0/16". Es ist auch möglich, mehrere Subnetze zu definieren und durch Komma getrennt in der Liste aufzunehmen. Subnetze, die nicht in dieser Liste stehen, sind durch verbundene OpenVPN-Clients nicht erreichbar.

    Server-Einstellungen für OpenVPN konfigurieren

    Die weiteren Einstellungen kann man auf den Vorgabewerten belassen. Nach dem Speichern der Konfiguration steht der Server zur Verfügung.

    Firewall-Regeln überprüfen

    Damit sich Clients aus dem Internet mit dem OpenVPN-Server verbinden und mit dem internen Netzwerk kommunizieren können, muss man Firewall-Regeln definieren. Zuständig dafür ist der Abschnitt Firewall => Regeln => OpenVPN.

    Hier benötigen wir Regeln, die den Datenverkehr zwischen dem OpenVPN-Netzwerk (172.16.0.0/24) und dem lokalen Netzwerk (10.0.0.0/16) in beide Richtungen steuern. Wer es sich einfach machen will, lässt den Datenverkehr generell zu, besser ist es aber, genaue Zugriffe festzulegen.

    Firewall-Regeln für OpenVPN definieren

    Firewall-Regeln für VPN-Clients

    Parallel dazu definiert man noch Regeln für die Zugriffe aus dem Internet auf die WAN-Schnittstelle zur Authentifizierung am VPN-Server. Sie sollten die verwendeten Ports direkt auf das Ziel Diese Firewall weiterleiten und dazu den UDP-Port verwenden, der oben konfiguriert wurde.

    Dadurch kommen alle Zugriffe direkt auf der Firewall heraus und werden entsprechend gefiltert oder zum VPN-Server weitergeleitet, der sich ja ebenfalls auf der Firewall befindet.

    Darüber hinaus benötigt man eine Regel, die bestimmt, dass die Firewall über den definierten Port mit externen Clients kommunizieren darf, um eine Kommunikation mit dem VPN-Server zu ermöglichen.

    Firewall-Regeln für die WAN-Zugriffe von Clients zum VPN-Server und von der Firewall zum Internet

    Bei Bedarf kann man unter Firewall => Einstellungen => Zeitpläne einen Zeitplan definieren und diesen in die Regel einbinden. Außerhalb des erlaubten Zeitraums blockiert die Firewall den Zugriff, da die Zulassungs­regel nicht aktiv ist.

    Client-Export durchführen

    Auf der Web-Oberfläche von OPNsense lassen sich bei System => Zugang => Benutzer interne Benutzerkonten anlegen und im unteren Bereich auch gleich die passenden Zertifikate bei Benutzer­zertifikate über die interne Zertifizierungs­stelle erstellen.

    Danach exportiert man unter VPN => OpenVPN => Clientexport das Zertifikat für jeden der angelegten Benutzer in eine OVPN-Datei. Diese muss der User nur in seinem OpenVPN-Client öffnen, um sich mit der Firewall zu verbinden. Die Authentifizierung erfolgt auf Basis des exportierten Zertifikats und der Benutzeranmeldung.

    OVPN-Datei für den OpenVPN-Client exportieren

    Sollte der Zugriff nicht funktionieren, kann es hilfreich sein, unter Firewall => Protokoll­dateien => Liveansicht zu prüfen, ob die Firewall unter Umständen bestimmte Zugriffe blockiert, die der Client benötigt.

    Zusammenfassung

    Die OPNsense-Firewall bildet im Zusammenspiel mit OpenVPN eine kostengünstige Plattform, um externe Clients sicher an das Unter­nehmen anzubinden. Ein typisches Anwendungs­szenario ist die Bereitstellung eines VPN für User im Home-Office.

    Die Einrichtung einer solchen Umgebung ist relativ unkompliziert und sollte sich von einem erfahrenen Admin schnell umsetzen lassen. Über ein flexibles Regelwerk kann man zudem die Zugriffe zielgenau steuern und bei Bedarf außerhalb der Arbeitszeiten komplett unterbinden.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Thomas Joos

    Thomas Joos ist Consultant für mittlere und große Unternehmen im Bereich Security, Active Directory, Cloud und KI.

    Er hat über 100 Fachbücher zu IT-Themen für verschiedene Verlage geschrieben und veröffentlicht regelmäßig bei verschiedenen Portalen und Zeitschriften wie IT-Administrator, Computerwoche, Heise und vielen weiteren.

    Darüber hinaus ist er als Trainer für LinkedIn Learning tätig.

    // Kontakt: Web, E-Mail, Twitter //

    Verwandte Beiträge

    Weitere Links