Nach etwas längerer Zeit sollte wieder eine OpenVPN-S2S-Verbindung zwischen einer pfSense 2.6.0 (CE) und einer Securepoint UTM wiederhergestellt werden. Aus einem einfachen Reaktivieren wurde leider nichts.
Es hätte so einfach sein können: Auf beiden Seiten die entsprechenden Dienste wieder aktivieren, kurz warten, läuft. Leider Essig, dem war nicht so. Ein Blick ins OpenVPN-Log der pfSense zeigte dann relativ schnell den Grund hierfür:
Aug 3 12:15:42 openvpn 59104 SIGTERM[hard,init_instance] received, process exiting Aug 3 12:14:29 openvpn 59104 SIGUSR1[soft,tls-error] received, process restarting Aug 3 12:14:29 openvpn 59104 TLS Error: TLS handshake failed Aug 3 12:14:29 openvpn 59104 TLS Error: TLS object -> incoming plaintext read error Aug 3 12:14:29 openvpn 59104 TLS_ERROR: BIO read tls_read_plaintext error Aug 3 12:14:29 openvpn 59104 OpenSSL: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed Aug 3 12:14:29 openvpn 59104 Certificate does not have key usage extension
Der ausschlaggebende Punkt ist “Certificate does not have key usage extension”, allerdings war und ist auf der pfSense (die in diesem Fall als OpenVPN-Client läuft) genau dieser Punkt in der Konfiguration der VPN-Verbindung deaktiviert:
Ein De-/Aktivieren samt Neustart des Daemon oder der gesamten pfSense änderte nichts. Danach recherchiert findet sich dieser Thread:
Certificate does not have key usage extension
Hier liest man unter anderem:
My client certificates do not have serverAuth and clientAuth ExtendedKeyUSage ("EKU") attribytes. In version 2.6 this check is mandatory
Kurzum: Fehlen die EKU-Attribute in den Zertifikaten, stößt man bei pfSense ab 2.6.0 auf ein Problem und das obwohl wie in diesem Fall die Nutzung in der Konfiguration explizit deaktiviert ist.
Das Ganze ist wohl mehr oder weniger ein Bug oder eine Unzulänglichkeit wie man in diesem Ticket nachlesen kann:
OpenVPN “remote_cert_tls“ option does not behave correctly when enabled and later disabled
Die Sache ist allerdings lösbar:
- Unter “System – Package Manager – Available Packages” das System Patches-Paket installieren.
- Anschließend zu “System – Patches” wechseln.
- Bei “Custom System Patches” auf “+Add New Patch” klicken.
- Bei “Description” eine Beschreibung eintragen und bei “URL/Commit ID” “48cf54f850c5bf4fe26a8e33deb449807e71c204” eintragen.
- Auf “Save” klicken.
- Nun bei dem gerade angelegten Patch auf “Fetch” und sobald verfügbar auf “Apply” klicken.
- Die Schritte für “47f2f4060d9e5b71c5c69356b61191fd2931383c” wiederholen.
Am Ende sieht es dann so aus:
Sofern die VPN-Verbindung(en) immer noch nicht funktionieren, in den jeweiligen Server- oder Client-Konfiguration nochmals “Enforce key usage” überprüfen und ggf. nochmals De-/Aktivieren und evtl. den OpenVPN-Dienst oder die pfSense neu starten.
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Vielen Dank! Es müsste mehr von Ihnen geben.
Ich habe die beiden Patches soweit hinterlegt
Nach dem Fetch sind die URLs in den beiden Patches auch soweit hinterlegt.
Allerdings taucht bei mir der Button Apply bei beiden Patches nicht auf.
Irgendeine Idee woran das liegen kann ?
Viele Grüße
Christian