SSL-Verschlüsselung für NO-IP-Verbindung zu meiner OPNsense

Started by 2U1C1D3, August 01, 2025, 06:20:37 PM

Previous topic - Next topic
Hallo zusammen!
Bevor ich Mekker bekomme, hab ich gleich mal ein Pic angehängt um zu verdeutlichen was ich vor habe, bzw. wo's mit dem Verständnis klemmt - und somit auch mit der Umsetzung...
In der DMZ habe ich sowohl Cloud (Telefonsynchronisation, etc.), als auch Spieleserver (<-Plural) für meine Kids und ihren Freundeskreis. Damit das alles einfach zu handhaben ist, habe ich bei no-ip zwei Hostnamen, welche über den DynDNS-Client in der OPNsense auf meine öffentliche IP verweisen. Ein Hostname wird (sobald das Gerät ins W-Lan kommt) auf die Cloud geroutet und der andere auf die Gameserver. Läuft soweit.
Nun nutze ich bei meinen "Möchtegern-Roadwarriors" (ist ja kein VPN) verschiedene Apps um auf verschiedene Clouddienste zugreifen zu können. Wer jetzt die Frage stellt "Warum kein VPN": Weil ich permanent in zwei Netzen unterwegs bin, welche einen VPN-Tunnel blockieren. Zumindest IPsec und openvpn. Zwei dieser Apps meckern nun, da ich kein offizielles Zertifikat besitze. Das wäre aber mittels CSR bei no-ip möglich.
Und da komme ich ins Stolpern:
  • Ich habe den CSR auf der OPNsense erzeugt und bei no-ip eingetragen.
  • no-ip bleibt auf dem Status "Ausstehende Verifizierung" - heißt für mich, der no-ip-Dienst kann weder über 443 noch 80 mit meiner OPNsense kommunizieren.
Es funktioniert aber keines der beiden angehängten Regelwerke. Bei mir wurde auch kein Regelwerk automatisch angelegt.
Kann mir jemand verraten wo mein Denkfehler liegt?

Alles was mir Tante Google und diverse Foren bieten ist immer "NAT-Regel", "interne IP", "Port 443 und 80", tralala. Ich will aber das Zertifikat nicht auf meinen Servern oder der Cloud haben, ich will das Zertifikat auf meiner OPNsense liegen haben. Die ist ja das Ziel der no-ip-Verbindung.

Danke,
Stefan


Don't hate the player - hate the game...

Hallo

Quote from: 2U1C1D3 on August 01, 2025, 06:20:37 PMno-ip bleibt auf dem Status "Ausstehende Verifizierung" - heißt für mich, der no-ip-Dienst kann weder über 443 noch 80 mit meiner OPNsense kommunizieren.
Nur den Zugriff auf die WAN IP zu erlauben, reicht nicht aus. Da muss auch ein Dienst die Anfrage entgegennehmen.

Jedoch ist mir überhaupt nicht klar, wie no-ip die Rechtmäßigkeit deines Ansuchens verifizieren möchte.
Beim Einreichen des CSR sollte es Hinweise darauf geben, was da zu tun oder zu beachten ist.

Eigentlich verstehe ich gar nicht, warum no-ip überhaupt was verifizieren möchte. Du bist da mit deinem Konto angemeldet und reichst einen CSR ein. Deinem Konto ist die zugehörige Domain zugewiesen. Mehr sollten die nicht wissen müssen. Die stellen ja das Zertifikat auf den Domainnamen aus?
Passt dieser vielleicht im CSR nicht?

Quote from: 2U1C1D3 on August 01, 2025, 06:20:37 PMich will das Zertifikat auf meiner OPNsense liegen haben.
Und was soll die damit?

Möchtest du die Zertifikate dann von OPNsense auf die Ziel kopieren?
Ansonsten müsste OPNsense Server spielen. Kann sie das für die benötigten Protokolle?
Das geht in jedem Fall geht nur mit einem Reverse-Proxy, wie Caddy oder HAproxy. Du hast keinen erwähnt.
Und die können nur HTTP, oder SNI, falls der Client TLS nutzt und das auch unterstützt.

Hallo viragomann,

danke erst Mal für die Rückmeldung!
Quote from: viragomann on August 01, 2025, 06:54:27 PMNur den Zugriff auf die WAN IP zu erlauben, reicht nicht aus. Da muss auch ein Dienst die Anfrage entgegennehmen.
Ich möchte ja das Zertifikat für diese Verbindung auf meiner OPNsense hinterlegen. Diese ist ja das Ziel von "ibins.no-ip.irgendwas". Damit mir no-ip dieses Zertifikat für diese Verbindung zur Verfügung stellt, muss ich no-ip den CSR an der Stelle generieren, an der ich später das Zertifikat hinterlegen möchte. Also gehe ich hier her <siehe Screenshot> und erstelle mir die Zertifikatsanfrage. Wenn ich das Prozedere durch habe (incl. natürlich dem Eintrag für meine "ibins.no-ip.irgendwas"), dann stelle ich den durch die OPNsense generierten CSR bei no-ip ein. Leider kann ich dir keinen Screenshot von den Kommentaren und dem HowTo der no-ip-Seite zur Verfügung stellen, weil ich da aufgrund der ausstehenden Verifizierung nicht mehr hin komme. Deshalb mit meinen Worten erklärt, so wie ich es von no-ip verstanden habe:
  • Stelle deinen CSR hier bei uns ein,
  • leite den Port 443 auf deinen Webserver weiter (dort wo du das Zertifikat hinterlegen möchtest)
  • anschließend wird verglichen, dass die Anfrage auch tatsächlich von da kommt, wo das Zertifikat hinterlegt werden soll.
  • Sobald wir das verifiziert haben, kannst du dir das Zertifikat runter laden und hinterlegen.
Sobald ich auf der OPNsense eine CSR erstelle, wartet die doch von selbst auf die Abfrage der Zertifizierungsstelle?
Quote from: viragomann on August 01, 2025, 06:54:27 PMPasst dieser vielleicht im CSR nicht?
Doch, sonst hätte ich den CSR nicht einreichen dürfen. Beim ersten Versuch habe ich da nicht dran gedacht - meine OPNsense kennt den no-ip-Hostname (sie aktualisiert ihn ja auch) und no-ip weiß ja auch für welchen Hostname ich das Zertifikat beantrage. Warum sollte ich also den Domainname nochmal eintragen? CSR wurde von no-ip sofort abgelehnt.
Quote from: viragomann on August 01, 2025, 06:54:27 PMUnd was soll die damit?
Möchtest du die Zertifikate dann von OPNsense auf die Ziel kopieren?
Ansonsten müsste OPNsense Server spielen. Kann sie das für die benötigten Protokolle?
Jetzt kommt der Punkt wo du mich etwas stutzig machst:
Dort wo die OPNsense jetzt steht, hat zuvor eine pfSense den Dienst verrichtet. Zu diesem Zeitpunkt hatte ich eine registrierte Domain und habe die (zusammengefasst) auf meine DMZ gepointed. Über den Domainhoster das Zertifikat geholt, in die pfSense eingespielt und alles war gut. Egal welchen Dienst von welchen Server ich von außen über meine Domain angeboten habe, dieser Dienst lief stets über das Zertifikat. Also ohne die klassische "nicht sicher"-Meldung. Und genau dasselbe möchte ich durch mein Vorgehen bei no-ip erreichen.
Da ich bei dem pfSense-Prozedere das Zertifikat auf keinem einzigen Server in der DMZ hinterlegen musste, scheint mir das der richtige Weg. Der Server wird ja nach der OPNsense ganz anders angesprochen, als auf der Strecke von meinem Client über den ISP zur OPNsense...
Don't hate the player - hate the game...

Hallo

Quote from: 2U1C1D3 on Today at 11:43:39 AMDamit mir no-ip dieses Zertifikat für diese Verbindung zur Verfügung stellt, muss ich no-ip den CSR an der Stelle generieren, an der ich später das Zertifikat hinterlegen möchte.
Das ist so nicht ganz richtig, jedoch so üblich.
Manche Zertifikatsanbieter generieren einen CSR auf Wunsch auch für dich und lasen dafür das Zertifikat ausstellen.

Tatsächlich: Ein SSL Zertifikat benötigt noch einem Privaten Schlüssel am Server, damit es funktioniert. Letzteres ist öffentlich und wird bei Serveranfrage auch ausgeliefert.
Der private Schlüssel wird beim Generieren eines CSR erstellt und verbleibt am Gerät. Er wird bei Verbindungsherstellung zum Verschlüsseln verwendet. Das (öffentliche) Zertifikat zum Entschlüsseln und als Identitätsnachweis des Servers. Deshalb ist zur Ausstellung auch eine Validierung erforderlich.
Man könnte den privaten Schlüssel aber auch gemeinsam mit dem Zertifikat auf einen anderen Server installieren und verwenden.

Quote from: 2U1C1D3 on Today at 11:43:39 AM
  • Stelle deinen CSR hier bei uns ein,
  • leite den Port 443 auf deinen Webserver weiter (dort wo du das Zertifikat hinterlegen möchtest)
Port 443 erscheint mir seltsam, wenn du noch gar kein Zertifikat hast. Aber wäre möglich, eine TCP Antwort bekämen sie, vorausgesetzt der Dienst startet auf dem Port ohne Zertifikat.

Quoteanschließend wird verglichen, dass die Anfrage auch tatsächlich von da kommt, wo das Zertifikat hinterlegt werden soll.
Sobald wir das verifiziert haben, kannst du dir das Zertifikat runter laden und hinterlegen.
Welche Anfrage?

Bieten die etwa einen Client, den du lokal laufen lassen musst, der dort eine API aufruft?

Bei Let's Encrypt läuft das bspw. so ähnlich ab:
Ein lokal ACME Client sorgt dafür, dass eine Challenge erfüllt wird (Hinterlegung eines Schlüssels am Webserver oder im DNS) und fordert die Zertifizierungsstelle auf, diesen zu überprüfen. Wenn der Schlüssel da ist, wird das Zertifikat ausgestellt.

Aber ohne Chanllenge ist mir nicht klar, wie die Verifizierung ablaufen soll. Daher die Nachfrage.
Und meiner Meinung nach brauchen sie das überhaupt nicht zu überprüfen. Sie wissen, dass du der Besitzer der Domain bist. Das sollte reicht, um der das Zertifikat auszustellen. Das machen andere auch so. Oder geht es etwa nicht um eine No-IP Domain?

Quotemeine OPNsense kennt den no-ip-Hostname (sie aktualisiert ihn ja auch) und no-ip weiß ja auch für welchen Hostname ich das Zertifikat beantrage. Warum sollte ich also den Domainname nochmal eintragen?
Die Domain ist im CSR enthalten. Beim Einreichen wird sie dir ggf. angezeigt. Da könntest du vergleichen.

QuoteCSR wurde von no-ip sofort abgelehnt.
Ich würde mir erwarten, dass eine Begründung dafür angegeben wird.

Quote from: 2U1C1D3 on Today at 11:43:39 AMZu diesem Zeitpunkt hatte ich eine registrierte Domain und habe die (zusammengefasst) auf meine DMZ gepointed. Über den Domainhoster das Zertifikat geholt, in die pfSense eingespielt und alles war gut. Egal welchen Dienst von welchen Server ich von außen über meine Domain angeboten habe, dieser Dienst lief stets über das Zertifikat. Also ohne die klassische "nicht sicher"-Meldung. Und genau dasselbe möchte ich durch mein Vorgehen bei no-ip erreichen.
Das einzige, was mir einfällt, das auf pfSene von Haus aus läuft und wo man ein SSL Zertifikat zuweisen kann, ist die Web GUI. Aber das ist auch ein Webserver, der die Anfrage terminiert. D.h. diese geht dann nicht gleichzeitig auf irgendwelche anderen Dienste in der DMZ.
Wenn du Server hinter pfSense / OPNsense betreibst, müssen die einen separaten Port nutzen und brauchen ihr eigenes Zertifikat.
Ausgenommen du betreibst einen Reverse-Proxy auf OPNsense. Dieser kann auf einer einzigen IP - Port (WAN:443) Kombination lauschen und die Anfragen an die jeweiligen Backend Hosts verteilen. Nach hinten muss das dann nicht mal verschlüsselt sein.

Wenn du das anders auf pfSense hinbekommen hast, würde mich brennend interessieren, wie. Ich nutze diese selbst seit über 15 Jahren, lerne gerne noch was in meinen alten Tagen dazu.