vServer via Fritzbox VPN für NPM Weiterleitungen?

  • Hi,

    eventuell totale Einsteigerfrage:

    Ausgangssituation:

    Zuhause steht eine Synology Diskstation und ein kleiner Rechner mit Proxmox. Ans Internet gehts über eine FritzBox; auf dem Proxmox läuft (u.a.) ein PiHole und ein Nginx Proxy Manager.

    Bei Netcup laufen ein Webhosting Paket und ein kleiner VPS (250 G11s).

    Der Wunsch ist, dass interne Dienste (z. B. Paperless) über Subdomains aus dem internen Netz erreichbar sind (von zuhause möchte ich also auf paperless.domain.de gehen und dann paperless erreichen).

    Problem war bisher, dass ich für diese Dienste sehr gerne auch SSL Zertifikate haben möchte (Lets Encrypt).

    Das scheiterte bisher daran, dass Lets Encrypt die Ausstellung von Zertifikaten abgelehnt hat, (anscheinend) wegen dem Routing. PiHole ist unser DNS.

    Es war egal, ob ich in den DNS Einstellungen der Domain auf die IP vom jeweiligen Dienst (also die lokale), dem Nginx Proxy Manager oder Pihole gezeigt habe - immer kam bei Zertifikatsanforderung eine Fehlermeldung ("interner Fehler").

    Jetzt war die (eventuell sehr dumme) Idee, auf dem VPS den Proxy Manager laufen zu lassen, die Domain auf die IP vom Server zeigen zu lassen und dann auf die interne IP zu routen. Der Server wurde dabei über WireGuard in unser Heimnetz integriert.

    Das hatte in einem kleinen Test (beschränkt auf einen Dienst) leider zu Folge, dass der ganze Dienst über das Internet erreichbar war (ich war da wohl zu dumm für) - Firewall war eigentlich aufgesetzt und hätte alle anderen Anfragen (außer über IP 192.168.0.0/24) blockieren sollen - hat er aber nicht gemacht.

    Nach Anleitungen bzw. Beschreibungen oder anderen Beiträgen hab ich gesucht, aber meist geht es dann in eine andere Richtung.

    Kann jemand Tipps geben wie das korrekt funktionieren würde?

    Ist der VPS notwendig oder gehts anders einfacher?

    Vielen Dank :)

  • Das hatte in einem kleinen Test (beschränkt auf einen Dienst) leider zu Folge, dass der ganze Dienst über das Internet erreichbar war (ich war da wohl zu dumm für) - Firewall war eigentlich aufgesetzt und hätte alle anderen Anfragen (außer über IP 192.168.0.0/24) blockieren sollen - hat er aber nicht gemacht.

    Wenn du eine öffentliche Domain nutzt, auf der auch Lets Encrypt funktioniert, dann ist der Dienst natürlich auch aus dem Internet erreichbar. Lets Encrypt ohne öffentliche Erreichbarkeit gibt es nicht. Da wirst du dich entscheiden müssen: ausschließlich interne Nutzung, oder Lets Encrypt. Den VPS brauchst du dafür nicht, die Entscheidung kann auch sein, deine internen Dienste direkt extern verfügbar zu machen.

  • Der VPS ist dafür nicht nötig. Ein Zertifikat von Letsencrypt kannst du auch bekommen, ohne dass deine Dienste öffentlich erreichbar sind. Dafür und für den Anwendungszweck insgesamt ist ein Wildcard-Zertifikat und die DNS-01 Challenge zu empfehlen. Damit deckst du sämtliche Subdomains mit einem einzigen Zertifikat ab und die Verifikation läuft über DNS, nicht über den Webserver, also komplett von deinem Heimnetz getrennt. Es gibt ACME (Letsencrypt) Clients, die die Netcup-DNS-API unterstützen.

  • Der VPS ist dafür nicht nötig. Ein Zertifikat von Letsencrypt kannst du auch bekommen, ohne dass deine Dienste öffentlich erreichbar sind. Dafür und für den Anwendungszweck insgesamt ist ein Wildcard-Zertifikat und die DNS-01 Challenge zu empfehlen. Damit deckst du sämtliche Subdomains mit einem einzigen Zertifikat ab und die Verifikation läuft über DNS, nicht über den Webserver, also komplett von deinem Heimnetz getrennt. Es gibt ACME (Letsencrypt) Clients, die die Netcup-DNS-API unterstützen.

    Dafür würde ich das Wildcard Zertifikat in NPM ausstellen lassen müssen und nicht über Netcup oder?

    Oder würde die DNS Challenge auch über NPM und das Wildcard Zertifikat gehen?

    Muss dann die "Hauptdomain" auf die interne Adresse vom NPM zeigen oder ist das egal?

  • Das ACME-Client kann im Prinzip überall laufen, aber der Einfachheit halber lässt du das den NginxProxyManager machen. Der nutzt das Zertifikat dann auch direkt. Ich mache das mit anderer Software, deswegen hier ein Link auf das erstbeste Thema zum Thema.

    Die DNS-Einträge für die Hauptdomain und deine Subdomains mit den lokalen Diensten müssen nicht, können aber auf öffentliche Adressen zeigen. Das hat nichts mit dem Zertifikat zu tun. Die nur lokal genutzten Einträge müssen nicht mal im öffentlichen DNS existieren. Die kannst du auch nur im lokalen DNS-Server hinterlegen, wenn dir das lieber ist*. Lediglich der _acme-challenge Eintrag muss für die Verifikation öffentlich abrufbar sein, kann danach aber wieder gelöscht werden (macht der Client auch).

    *) Nennt sich Split-DNS und kann Probleme machen, wenn lokale Clients deinen lokalen Resolver umgehen.

    2 Mal editiert, zuletzt von NaN (20. Januar 2025 um 11:16)

  • NPM sollte kein Problem damit habe. Ein Zertifikat zu bekommen wenn alles richtig eingestellt ist… ob DNS oder http challenge

    Entweder wildcard DNS Eintrag auf IP von Zuhause stellen (öffentliche IP) oder gewünschte subdomain.

    Im Router portforwarding 80/443 auf NPM und mit NPM dann auf die lokalen IPs zeigen.

    Nicht zu vergessen ist auch die LEtsEncrypt Sperre, man kann nur 5anfragen für eine subdomain machen dann ist diese erstmal für 24 oder 36 Stunden gesperrt!