Tags: Firewall, Zertifikate, Open Source
Beim Einsatz von OPNsense und Komponenten wie OpenVPN benötigt man diverse Zertifikate, in jedem Fall ein Server-Zertifikat. Dieses kann man über die interne Zertifizierungsstelle oder Let's Encrypt ausstellen. Für Letzteres verfügt die Firewall über ein Plugin, mit dem man das Zertifikat verwalten und automatisch erneuern kann.
OPNsense bringt eine eigene Zertifizierungsstelle mit, die man unter System => Sicherheit => Aussteller einrichtet. Die komplette Konfiguration findet auf der Web-Oberfläche statt. Das gilt übrigens auch für andere Web-Dienste, die Zertifikate nutzen.
Über das Plus-Zeichen oben rechts erstellt man auf OPNsense eine neue Zertifizierungsstelle. Zunächst geben wir für sie einen Namen ein. Im Fenster wählen wir bei Vorgehen die Option Erstelle eine interne Zertifizierungsstelle.
Bei Key Type nehmen wir RSA, bei Schlüssellänge den Wert 4096, und bei Hashalgorithmus die Option SHA512. Bei Ländercode entscheiden wir uns für DE (Germany). Die weiteren Felder betreffen Angaben zum Aussteller. Nach dem Speichern der Änderungen steht die Zertifizierungsstelle von OPNsense bereits zur Verfügung.
Zertifikat für OPNsense ausstellen
Sobald die Zertifizierungsstelle eingerichtet ist, kann man unter System => Sicherheit => Zertifikate auf das Pluszeichen oben rechts klicken, um ein neues Zertifikat zu erstellen. Durch die Auswahl von Erstelle ein neues internes Zertifikat blendet die Web-Oberfläche die entsprechenden Felder ein.
Als Zertifizierungsstelle wählen wir die gerade eben erstellte aus. Bei Typ nehmen wir Serverzertifikate. Die weiteren Einstellungen kann man bei ihren Vorgaben belassen. Der Klick auf Speichern erzeugt das Zertifikat, dieses wird dann auf der Web-Oberfläche angezeigt.
Selbstsiginiertes Zertifikat von OPNsense löst Warnung aus
Beim Öffnen der Web-Konsole von OPNsense erscheint eine Warnmeldung, dass die Verbindung nicht sicher sei, weil das verwendete Zertifikat für die HTTPS-Verbindung nicht von einer nicht vertrauenswürdigen Certificate Authority (CA) stammt.
Um dieses Problem zu beheben, könnte man das Stammzertifikat der OPNsense-CA in den Zertifikatspeicher aller Clients übertragen.
Vertrauenswürdiges Zertifikat verwenden
Um ein Zertifikat über eine externe CA auszustellen, benötigt die Firewall zunächst einen DNS-Host-Eintrag (zum Beispiel opnsense.thomas-joos.com), am besten über eine eigene Domäne im Internet, der zur externen IP-Adresse der Firewall zeigt.
Wenn man keine statische IP-Adresse hat, kann man einen der zahlreichen DynDNS-Anbieter nutzen.
Um kommerzielle Zertifikate oder von Let's Encrypt auf der OPNsense-Firewall anzufordern, installieren wir den ACME-Client, mit dem sich die Domänenvalidierung sowie die Installation und Verwaltung von Zertifikaten automatisieren lässt.
ACME-Client konfigurieren
Dazu suchen wir zunächst in der Web-Verwaltung von OPNsense unter System => Firmware => Erweiterungen nach os-acme-client und fügen das Plugin über das Plus-Zeichen hinzu.
Nach der Installation und der Aktualisierung der Web-Oberfläche gibt es unter Dienste den neuen Menüpunkt ACME Client. Dort lassen sich zunächst dessen grundlegende Einstellungen konfigurieren.
Damit die Firewall Zertifikate bei Let's Encrypt abrufen und deren Signierung überprüfen kann, muss man das Plugin zunächst über die entsprechende Checkbox aktivieren.
Sinnvoll ist noch das Setzen der Option Automatische Erneuerung, um zu verhindern, dass Verbindungen wegen abgelaufener Zertifikate scheitern. Mit Anwenden erfolgt die endgültige Aktivierung des Plugins.
Konto für Let's Encrypt anlegen
Damit die OPNsense Zertifikate abrufen kann, braucht man ein Konto, das die Zertifikate für die entsprechende Zertifizierungsstelle verwaltet. Die Einstellungen dazu sind bei Konten unterhalb des Plugins zu finden.
Auf der Registerkarte Konto legen wir über das Plus-Zeichen ein Konto an. Als Name kann man zum Beispiel zertadmin nutzen. Zusätzlich ist eine E-Mail-Adresse notwendig.
Bei ACME CA wählen wir Let's Encrypt [standard] aus. Die Einträge bei Optional EAB Credentials können leer bleiben. Nach dem Speichern zeigt das Konto vorerst noch den Status nicht registriert an, der später auf Ok wechselt.
Bei Challenge Types bestimmen wir, wie Let's Encrypt die Domäne verifizieren soll. Sie soll auch demjenigen gehören, der die Zertifikate dafür ausstellen will.
Das lässt sich entweder über einen DNS-Eintrag oder mit HTTP erledigen. Der einfachere Weg bei OPNsense ist die Verwendung der HTTP-Challenge und der Auswahl von HTTP-01. Sie können an dieser Stelle alternativ DNS-01 wählen und mit DNS-Einträgen arbeiten.
Bei der Verwendung von HTTP muss noch die Option Automatische IP-Erkennung aktiv sein. Als Schnittstelle gibt man das WAN-Interface an. Mit Speichern werden schlussendlich die Anpassungen im System hinterlegt.
Zertifikate bei Let's Encrypt für OPNsense ausstellen
Nach der Konfiguration erfolgt der erste Test zum Ausstellen eines Zertifikats. Dazu öffnet man über den Menüpunkt Zertifikate die gleichnamige Registerkarte und fordert danach mit dem Plus-Zeichen ein neues Zertifikat an.
Bei Common Name muss der DNS-Name der Firewall eingetragen werden, wie er auch im DNS der jeweiligen Domäne hinterlegt ist, zum Beispiel opnsense.thomas-joos.com. Bei Alternative Namen lassen sich noch weitere FQDNs hinterlegen.
Bei ACME Benutzerkonto trägt man schließlich das vorhin erstellte Konto ein und bei Herausforderungstyp den gewählten Challenge Type, in unserem Beispiel HTTP-Challenge. Die Option Automatische Erneuerung sollte aktiv sein.
Nach dem Speichern ist das Zertifikat zu sehen, aber das Ausstellungsdatum und der ACME-Status haben den Wert unbekannt.
Über die Schaltfläche Issue or renew certificate unter Befehle fragt man den Status erneut ab. Nach kurzer Zeit sollte hier das aktuelle Datum und bei Letzter ACME Status der Wert Ok erscheinen.
Bei diesem Vorgang verbindet sich Let's Encrypt über den DNS-Eintrag der Domäne mit der Firewall. Dadurch kann der Dienst überprüfen, ob das Zertifikat tatsächlich vom jeweiligen Gerät stammt und signiert es erfolgreich.
Zertifikat der Web-Konsole von OPNsense ändern
Um das Zertifikat der Web-Oberfläche zu ändern, navigiert man zu System => Einstellungen => Verwaltung. Bei Protokoll wählt man zunächst HTTPS aus, und bei SSL-Zertifikat das gerade abgerufene Zertifikat von Let's Encrypt. Die restlichen Einstellungen können auf dem Standard belassen werden und mit Speichern schließt man den Vorgang ab.
In Zukunft kann man die Web-Oberfläche mit dem verwendeten DNS-Namen öffnen, wobei dann das jeweilige Zertifikat zum Einsatz kommt.
Soll der DNS-Name zur internen IP-Adresse umgeleitet werden, kann das über einen internen Eintrag auf dem DNS-Server erfolgen, oder man verwendet dazu die hosts-Datei im Verzeichnis "C:\Windows\System32\drivers\etc.
Zusammenfassung
OPNsense verfügt über eine integrierte Zertifizierungsstelle, mit der man selbstsignierte Zertifikate für Client und Server ausstellen kann. Diese provozieren jedoch eine Warnung am Client, weil sie nicht vertrauenswürdig sind.
Als Alternative bietet sich an, Zertifikate von Let's Encrypt anzufordern. OPNsense enthält zu diesem Zweck einen ACME-Client, der den Vorgang weitgehend automatisieren kann und der dafür sorgt, dass die Zertifikate rechtzeitig erneuert werden.
Täglich Know-how für IT-Pros mit unserem Newsletter
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.
Ähnliche Beiträge
- Sicheren FTP-Server (FTPS) auf Windows einrichten
- OpenVPN auf OPNsense einrichten
- Open-Source-Firewall OPNsense installieren und konfigurieren
- IT-Sicherheit: Kostenloses Tool von Palo Alto integriert Datenquellen
- Security-Updates KB5014754, KB5021130 und KB5020805 erreichen demnächst Erzwingungsmodus
Weitere Links