Migration der OpenVPN-Verbindungen in OPNsense 23.7
- Christian Süßenguth
- Kurz notiert
In der neuesten Version 23.7 von OPNsense wurden die sog. "Instanzen" bei OpenVPN eingeführt. Diese können parallel zu den nun als "legacy" bezeichneten alten OpenVPN-Verbindungen genutzt und eingerichtet werden.
Da es keinen direkten Migrationspfad für die alten Verbindungen gibt, muss die Migration manuell erfolgen.
Damit du dir bei der Migration nicht unnötig mehr Arbeit machen musst, hier eine kleine Checkliste.
Die Firewall-Sprache ist für dieses Tutorial auf Englisch
gestellt (System -> Settings -> General
).
Wichtiger Hinweis
Beachte bitte, dass dieses "Kurz notiert"-Tutorial kein vollständiges Tutorial für die Einrichtung der OpenVPN-Verbindungen darstellt. Ich gehe davon aus, dass du vorab bereits alle nötigen Firewall-Regeln, Portweiterleitungen und dergleichen gesetzt hattest, da wir ja eine bestehende Verbindung migrieren und keine neue anlegen.
Legende
Hinweis:
Ich habe mich mit den Bezeichnungen Site A und Site B an das offizielle, englische Tutorial gehalten, auch wenn ich die Bezeichnung nicht für logisch halte und sie anders herum mehr Sinn ergeben würden.
🏠️ Site A (VPN-Client – Branch office) - Netz: 192.168.2.0/24
🏢 Site B (VPN-Server – Main office) - Netz: 192.168.1.0/24
, WAN-IP: 192.168.178.25
Transfer-Netz: 192.168.99.0/24
Bestehende Site-to-Site Verbindung migrieren
Basierend auf der englischsprachigen Anleitung
Durchführen auf der 🏢 Site B-Firewall
- Deaktivieren der alten OpenVPN-Verbindung unter
VPN -> OpenVPN -> Servers
, damit der Port nicht belegt ist. - Unter
System -> Trust -> Authorities
eine neue CA anlegen. - Unter
System -> Trust -> Certificates
ein neues Server-Zertifikat mit dem Firewall-Namen als common name anlegen (der Firewall-Name steht oben rechts in der Statusleiste hinter dem benutzername@). - Unter
System -> Trust -> Certificates
ein neues Server-Zertifikat mit einem benutzerdefinierten Kürzel als common name anlegen, z.B.s2s-vpn
. - Den öffentlichen Schlüssels der CA und des dritten Zertifikates (
s2s-vpn
) inkl. dessen privatem Schlüssel als Datei exportieren. - Unter
VPN -> OpenVPN -> Instances [new]
oben den ReiterStatic Keys
anklicken, den Modus auth auswählen und einen statischen Schlüssel generieren (dazu auf das Zahnrad klicken). - Jetzt den Reiter
Instances
anklicken, mit dem+
eine neue Instanz hinzufügen und sie wie folgt konfigurieren:
Eigenschaft | Wert |
---|---|
Role | Server |
Description | z.B. OpenVPN S2S-Server |
Protocol | UDP (IPv4) |
Port number | 1194 (oder der von dir festgelegte Port) |
Bind address | 192.168.178.25 (WAN-IP, alternativ 127.0.0.1 + Portweiterleitung oder leer lassen, um auf allen Interfaces zu hören) |
Topology | subnet |
Server (IPv4) | 192.168.99.0/24 (Das Transfer-Netz) |
Certificate | Das erste Zertifikat auswählen, das wir erstellt haben (das mit dem Firewall-Namen als common name) |
Certificate Revocation List | none (andernfalls treten Fehler auf, wenn die CRL leer ist) |
TLS static key | Den statischen Schlüssel auswählen, den wir erstellt haben |
Authentication | Nothing selected |
Local Network | 192.168.1.0/24 (die lokalen Netzwerk(e) der Site B eintragen) |
Remote Network | 192.168.2.0/24 (die entfernten Netzwerk(e) der Site A eintragen) |
- Unter
VPN -> OpenVPN -> Client Specific Overrides
mit dem+
einen neuen Eintrag mit folgendem Inhalt hinzufügen:
Wichtiger Hinweis
Die neuen OpenVPN-Instanzen werden im Drop-Down-Feld bisher nicht propagiert. Wähle dort am Besten keinen Server aus (Nothing selected), denn wenn du den falschen Server auswählst, funktioniert das Routing der Site A Netze von Site B aus nicht (Fehlerbild: Ping von A nach B funktioniert, von B nach A hingegen nicht, obwohl die notwendigen Routen existieren).
Eigenschaft | Wert |
---|---|
Servers | Nothing selected (❗️Hinweis beachten) |
Description | s2s-vpn |
Common name | s2s-vpn |
Remote Network | 192.168.2.0/24 (die entfernten Netzwerk(e) der Site A eintragen) |
Durchführen auf der 🏠️ Site A-Firewall
- Importieren der CA über
System -> Trust -> Authorities
über das+
. Daraufhin den Inhalt der vorhin heruntergeladenen Datei in das Feld hineinkopieren und speichern. - Importieren des Server-Zertifikates mit dem common name
s2s-vpn
überSystem -> Trust -> Certificates
über das+
. Daraufhin den Inhalt der vorhin heruntergeladenen Dateien in die jeweiligen Felder hineinkopieren und speichern. - Unter
VPN -> OpenVPN -> Instances [new]
oben den ReiterStatic Keys
anklicken, den Modus auth auswählen und den statischen Schlüssel von der Site B-Firewall einfügen. - Jetzt den Reiter
Instances
anklicken, mit dem+
eine neue Instanz hinzufügen und wie folgt konfigurieren:
Eigenschaft | Wert |
---|---|
Role | Client |
Description | z.B. OpenVPN S2S-Client |
Protocol | UDP (IPv4) |
Remote | Öffentliche IP von Site B (z.B. 1.2.3.4:1194 (oder dem von dir festgelegte Port)) |
Certificate | Das Zertifikat auswählen, das wir vorhin importiert haben (das mit s2s-vpn als common name) |
TLS static key | Den statischen Schlüssel auswählen, den wir erstellt haben |
Remote Network | 192.168.1.0/24 (die entfernten Netzwerk(e) der Site B eintragen) |
- Anschließend kannst du unter
VPN -> OpenVPN -> Connection status
prüfen, ob die Verbindung erfolgreich aufgebaut werden konnte. UnterVPN -> OpenVPN -> Log File
findest du die Log-Ausgaben (oben rechts kannst du das Log-Level anpassen).
Sollte es nicht wie erwartet klappen, kannst du bei Server und Client auch jeweils in der Konfiguration den Log-Level erhöhen. Dazu muss jeweils oben links der advanced mode
aktiviert werden.
Feintuning
Da mit der neuen Instanz auf beiden Seiten jeweils auch ein neues Interface angelegt wird, muss dieses noch zugewiesen werden. Gehe dazu an beiden Firewalls einmal auf Interfaces -> Assignments
und weise das neue Interface analog zum alten zu.
Nachdem du das Interface angelegt hast, müssen noch folgende Anpassungen erfolgen:
- Deaktivieren des alten VPN-Interfaces unter
Interfaces -> "Name des Interfaces"
, indem du den Haken beiEnable Interface
entfernst. - Prüfen und ggf. korrigieren des Gateways (🏠️ Site A-Firewall), falls du den gesamten Internet-Traffic über den Hauptstandort geroutet hast.
- Prüfen, ob auf beiden Seiten in der Routing-Tabelle (
System -> Routes -> Status
) die Netze der jeweils anderen Firewall enthalten sind. - Lege die Firewall-Regeln des alten VPN-S2S-Interfaces analog für das neue Interface an.
- Passe ggf. vorhandene NAT-Regeln (
Firewall -> NAT -> Port Forward
) und auch fließende Firewall-Regeln (Firewall -> Rules -> Floating
) an, falls bei diesen das alte VPN-S2S-Interface genutzt wurde.
Zum Testen des Tunnels kannst du ganz unter Interfaces -> Diagnostics -> Ping
auf beiden Seiten jeweils einen Ping auf das Gateway der Gegenseite und auf die Firewall-IP des Remote-Netzes legen, z.B.
🏠️ Site A-Firewall
- 192.168.99.1 (VPN-Gateway Site B)
- 192.168.1.1 (Firewall)
🏢 Site B-Firewall
- 192.168.99.2 (VPN-Gateway Site A)
- 192.168.2.1 (Firewall)
Falls du die alte VPN-Konfiguration nochmal auslesen und mit der neuen vergleichen willst, kannst du das über die Shell sehr einfach erledigen. Die Konfigurationen liegen jeweils unter /var/etc/openvpn/
und haben die Endung *.conf
Wenn alles funktioniert, kannst du zum Schluss unter VPN -> OpenVPN -> Servers
bzw. VPN -> OpenVPN -> Clients
die alten "legacy" Verbindungen entfernen.
Bestehende Roadwarrior-Verbindung migrieren
Basierend auf der englischsprachigen Anleitung
to be continued...
Ich möchte meine OpenVPN-Verbindungen migrieren, habe dabei aber Schwierigkeiten
Ich unterstütze dich gerne bei der Migration der OpenVPN-Verbindungen in die neuen Instanzen.
Schreib mir hierzu einfach über Kontakt, per Telegram oder unten in die Kommentare eine Nachricht.
Quellen und weiterführende Links
Hi, ich bin Christian und Inhaber der Firma SWEETGOOD. Mit dem andersGOOD Blog möchte ich auch dich für datensichere IT-Lösungen begeistern. So bringst du dein Unternehmen voran, ohne großen Konzernen deine wertvollen Daten zu liefern. Probiers mal anders!
Kommentarbereich
Die Kommentare sind für dich noch deaktiviert, da du dem Setzen von Cookies bisher nicht zugestimmt hast.
Klicke oben rechts auf "Ja, klar!" und lade die Seite neu, um die Kommentare anzuzeigen.
Seite neu laden