OpenVPN mit MFA über OPNsense in der Hetzner Cloud 

In diesem Blogbeitrag möchten wir Ihnen eine leistungsstarke und flexible Lösung vorstellen: OpenVPN mit MFA über OPNsense in der Hetzner Cloud. OPNsense ist eine Open-Source-Firewall und Router-Plattform, die auf FreeBSD basiert und eine Vielzahl von Funktionen bietet. Die Hetzner Cloud hingegen ist eine beliebte Cloud-Infrastrukturplattform, die hochleistungsfähige virtuelle Maschinen und Cloud-Speicher bereitstellt. 

Die Kombination von OpenVPN, MFA und OPNsense in der Hetzner Cloud ermöglicht es Ihnen, ein robustes und sicheres VPN-System aufzubauen, das Ihren spezifischen Anforderungen entspricht. Egal, ob Sie eine Remote-Arbeitsumgebung einrichten, Standorte miteinander verbinden oder Ihren Mitarbeitern sicheren Zugriff auf interne Ressourcen gewähren möchten – diese Lösung bietet Ihnen die notwendigen Werkzeuge. 

Dazu werden wir folgende Schritte unternehmen: 

  1. Installation von OPNsense auf Hetzner Cloud Server 
  2. Grundkonfiguration für die Nutzung von OPNsense 
  3. Gewährleistung der IPv4- und IPv6-Verfügbarkeit 
  4. Patchen und Härtung der OPNsense Firewall 

Im nächsten Blogeintrag kümmern wir uns um dem eigentlichen OpenVPN Dienst + MFA 

  1. Konfiguration der Certificate Authority (Zertifizierungsstelle) 
  2. Erstellung eines Zertifikats für den OpenVPN-Server 
  3. Einrichtung des TOTP Access Servers für MFA 
  4. Konfiguration des OpenVPN-Servers 
  5. Einstellungen in OPNsense für den Zugang zum OpenVPN 

Im letzten Blogeintrag haben wir einen funktionierenden Server. Es wird Zeit sich um die Benutzerverwaltung zu kümmern. 

  1. Benutzerverwaltung: Anlegen von Benutzern 
  2. Export der Benutzerkonfiguration 
  3. Besonderheiten des Logins mit MFA 
  4. Spezifika im Zusammenhang mit IPv6 
  5. Benutzerverwaltung: Verwalten und Sperren von Benutzern 
  6. Einsatz der Kill-Switch-Funktion 

Installation von OPNsense auf Hetzner Cloud Server 

Zuerst ist es wichtig, einen Server auszuwählen, der mit einem Image unserer Wahl aufgesetzt werden kann. Selbst für kleine Betriebe kann ein kostengünstiger Server ausreichend sein. Es ist jedoch wichtig, einen x86/64 Server auszuwählen und nicht einen mit einer ARM-CPU-Architektur. Für unsere Zwecke können wir einen Linux-Server mit der von uns bevorzugten Distribution buchen.

Sobald der Server erstellt wurde, müssen wir über die Hetzner-Oberfläche ein passendes Image einbinden und den virtuellen Server neu starten. 

Hetzner Cloud OPNsense ISO einbinden

Nachdem die Maschine neu gestartet wurde, wird das OpnSense ISO die Installation initiieren. Während der Installation wird möglicherweise eine kurze Pause eingelegt, um nach einer Konfigurationsdatei zu fragen. Es ist wichtig, diese Anfrage zu ignorieren, da die Installation automatisch fortgesetzt wird. 

Configdatei importieren

Interface zuordnen

Kurz darauf erfolgt eine Abfrage, um die Interfaces manuell festzulegen, diese bestätigen wir mit einem Tastendruck.

Interface Konfiguration anstoßen

Anfragen bezüglich LAGGs (Link Aggregation Groups) und VLANs können vorerst mit „Nein“ (n) beantwortet werden. 

Da in diesem Fall vorerst nur ein WAN-Interface benötigt wird, kann das bereits vorhandene Interface als WAN festgelegt werden. Der Name des entsprechenden Interfaces lautet in diesem Fall vtnet0. 

WAN interface konfigurieren

Anfragen bezüglich des LANs sowie optionaler Interfaces können einfach mit der Eingabetaste übersprungen werden. Sobald die Konfiguration der Interfaces abgeschlossen ist, sollte nur dem WAN-Interface eine Zuweisung erfolgt sein. 

WAN interface zuweisen

Anschließend kann dies mit „Ja“ (y) bestätigt werden (Bitte beachten Sie: Wenn Sie die Hetzner-Konsole verwenden, wird möglicherweise nach dem deutschen „z“ gefragt). 

Installation anstoßen:

Es gibt die Möglichkeit, ein Live-Image oder eine Installation zu starten. Die Installation kann mit einem Login beginnen:  
Benutzername: installer  
Passwort: opnsense 

Als nächstes muss das entsprechende Tastatur-Layout ausgewählt werden. Dies kann mit den Pfeiltasten durchsucht, mit der Leertaste ausgewählt und dann mit Enter auf „>>> Continue with de.kbd keymap“ bestätigt werden 

Tastaturlayout auswählen

Jetzt beginnt die eigentliche Installation. Sie können die UFS-Option wählen, um fortzufahren.

Installation beginnen

Wichtig ist die Richtige Installationspartition auszuwählen.

Partition

Zusätzliche Abfragen wie die empfohlene Swap-Partition können mit „Ja“ (Yes) beantwortet werden. Jetzt müssen Sie nur noch die Auswahl bestätigen. 

Swap Partition bestätigen

Nach nur wenigen Minuten ist die Installation abgeschlossen. An dieser Stelle wird empfohlen, das Root-Passwort neu festzulegen. Es bietet sich an dieser Stelle an das Iso-Image über die Hetzner Oberfläche nun auszuwerfen. Sobald dies erledigt ist, kann die Installation durch Auswahl der Option „Complete Install“ abgeschlossen werden. 

OPNsense Installation beenden

Nach der Rückkehr zum Login-Bildschirm fällt auf, dass dem System durch den Hetzner DHCP nur eine IPv4-Adresse zugewiesen wurde. Wenn unser VPN-Server mittels IPv6 kommunizieren soll, müssen wir manuelle Einträge vornehmen. Jetzt müssen Sie sich als Benutzer „Root“ mit dem zuvor festgelegten Passwort einloggen. 

Nun müssen Sie die IP mit Auswahl der Option 2 manuell festlegen. 

Interfaces konfigurieren

Gewährleistung der IPv4- und IPv6-Verfügbarkeit 

Wenn wir nach IPv4 für unser WAN gefragt werden, wählen wir „Ja“. Bei IPv6 müssen wir jedoch manuell arbeiten, da die OPNsense auf IPv6-Ebene nicht korrekt mit dem Hetzner-DHCP kommunizieren kann. In diesem Fall tragen wir eine IP-Adresse aus unserem zugewiesenen /64-Netz ein. In unserem Beispiel verwenden wir die zugewiesene IPv6-Range mit ::1, um deutlich zu machen, dass es sich um eine statische Adresse handelt.

IPv6 einrichten

Für das Subnetz geben wir „64“ ein, da dies der Bereich ist, welcher von Hetzner zur Verfügung gestellt wurde. 

IPv6 Subnet einrichten

Als IPv6 Upstream Gateway muss die Adresse fe80::1 eingetragen werden. 

IPv6 Gateway einrichten

Wenn uns nach DNS über das Gateway gefragt wird, wählen wir „Ja“. Nun kann sich die OPNsense über die Hetzner Cloud mit dem Internet verbinden. 

 
Da unsere OPNsense als OpenVPN-Host fungiert, benötigen wir keinen DHCP6-Server auf dem WAN-Interface und können dies mit „Nein“ (n) beantworten. Wir haben die Möglichkeit, von der OPNsense ein selbstsigniertes Web-GUI-Zertifikat erstellen zu lassen und es für die HTTPS-Kommunikation mit der Weboberfläche zu verwenden.

Zugang zur Weboberfläche konfigurieren

Die Basisinstallation der OpnSense ist somit beendet. Nun können Sie den Rest bequem auf der Weboberfläche durchführen. Dazu können Sie bereits die uns vorgeschlagenen Adressen nehmen oder bei Ihrem DNS Registrar passende A und AAAA Records anlegen. 

Zugang zur Weboberfläche

Patchen und Härtung der OPNsense Firewall 

Wir wechseln nun in den Browser unserer Wahl und öffnen den Link zur OPNsense Installation.

OPNsense Loginscreen

Nach der Installation werden wir von einem Setup Wizard in OPNsense begrüßt, den wir direkt starten können. Falls Sie vorhaben, mit einem Domänennamen zu arbeiten, können Sie diesen jetzt angeben. Andernfalls können Sie die Standardeinstellung verwenden. In unserem Beispiel lautet der Name der OPNsense ‚test-vpn‘ in unserer Domain ‚admin-intelligence.de‘. Mit einem Klick auf ‚Next‘ können Sie dies bestätigen

OPNsense Setup Wizard

Die Timezone sollte auf Ihre lokale Zeitzone angepasst werden um später Probleme mit dem MFA Code zu vermeiden.

OPNsense Zeitzone einrichten

Auf der nächsten Seite werden Sie nach Einstellungen für das WAN-Interface gefragt. Da wir diesen Schritt bereits in der Konsole durchgeführt haben, bestätigen wir einfach mit ‚Weiter‘ (Next). Die Frage nach dem LAN-Interface lassen wir leer.

OPNsense LAN INTERFACE konfigurieren

Als nächstes werden Sie erneut gefragt, ob Sie Ihr Root-Passwort anpassen möchten. Es ist empfehlenswert, ein starkes Passwort mithilfe eines Passwortmanagers festzulegen. Andernfalls können Sie die Felder leer lassen, um Ihr aktuelles Passwort beizubehalten.

OPNsense Root Passwort setzen

Mit einem Click auf Reload wird das System konfiguriert und Sie erhalten eine Bestätigung.

OPNsense Setup Wizard beenden

Upgrade auf aktuelle Version

Um mit den ersten Updates zu beginnen, können wir nun zur Weboberfläche wechseln und zum Dashboard im Reiter ‚Lobby‘ navigieren. Dort sehen wir bereits, dass Updates für unser System verfügbar sind.

OPNsense Dashboard, Updates beginnen

OPNsense gleicht nun seine Version mit den Repositories ab. Anschließend werden wir automatisch zum Reiter ‚System → Firmware → Updates‘ weitergeleitet, wo wir die Updates am unteren Ende der Seite starten können. Dieser Vorgang kann einige Zeit dauern und die OPNsense wird automatisch neu gestartet. Nutzen Sie diese Zeit für eine kurze Kaffeepause.

Nachdem das erste Update fertig ist müssen Sie sich wieder einloggen.

OPNsense Systeminformation

Es ist zu beachten, dass das Update nur auf die aktuellste Version 22.7.11 durchgeführt wurde. Zum Zeitpunkt des Stands 30.05.2023 ist OPNsense bereits in Version 23.1.8 verfügbar, daher müssen wir erneut Updates starten. Dieses Mal wird das System einen Versionssprung auf Version 23.1 machen.

OPNsense Firmware Upgrade

Genießen Sie einen weiteren Kaffee, denn das Upgrade auf Version 23.1 dauert etwas länger als das vorherige Update. Nach dem Upgrade werden wir erneut nach einem Login gefragt. Auf dem Dashboard sollte nun die Version 23.1.6 angezeigt werden. Damit sind wir bereit für die nächste und vorerst letzte Update-Runde.

OPNsense Systeminformation

Das System ist nun auf dem neuesten Stand und weitere Update-Checks sollten keine neuen Aktualisierungen anzeigen.

ClamAV installieren

Obwohl es nicht zwingend erforderlich ist, empfiehlt es sich, ClamAV auf der OPNsense über das Plugin zu installieren und zu aktivieren. ClamAV überprüft den lesbaren Traffic auf Signaturen bekannter Malware und anderer schädlicher Software.

OPNsense ClamAV installieren

Um ClamAV zu aktivieren, navigieren Sie zum Reiter ‚Services → ClamAV → Configuration‘. Sollte dieser noch nicht erstellt worden sein, aktualisieren Sie die Seite.

OPNsense ClamAV konfigurieren

Setzen Sie die Haken für ‚Enable clamd service‘ und ‚Enable freshclam service‘ in der ClamAV-Konfiguration. Klicken Sie dann auf den orangenen Button in der rechten oberen Ecke mit der Aufschrift ‚Download signatures‘. Unter ‚Enable TCP port‘ findet sich die Zeile mit dem Namen ‚Maximum number of threads running‘, hier bietet es sich an die Anzahl der verfügbaren Prozessor Threads einzutragen. Diese sind ihre Server vCPUs oder unter Lobby -> Dashboard bei ‚CPU type‘.

Scrollen Sie anschließend bis ans Ende der Seite und bestätigen Sie die Einstellungen mit ‚Save‘.

Im nächsten Blogeintrag beschäftigen wir uns mit dem Einrichten der OpenVPN sowie der MFA und den dazu notwendigen Firewallregeln.

Wenn Sie Unterstützung bei OPNSense benötigen, so können Sie sich gerne unverbindlich bei uns melden.