Ein NPM für externen und internen SSL traffic mit LE?

Hallo Leute,
Das ist mein erster Beitrag und ich entschuldige mich, sofern dies schon mal besprochen oder gelöst wurde.

Zu meiner Situation (Homelab):
Ich betreibe fürs Homelab einen NPM um zwei Dienste von aussen mit LE Zertifikaten verschlüsselt, verfügbar zu machen. Auf der Firewall / Modem ist Port 80 & 443 offen und zeigen auf den NPM. Anfragen von aussen werden korrekt verschlüsselt und geroutet. Soweit so gut.
Lokal läuft ein AdGuard welcher lokale DNS Anfragen übernimmt. Die Dienste sind auf mehreren Proxmox VMs, respektive Docker Containern verteilt.

Das Problem:
Ich betreibe weitere Dienste, welche ich ausschliesslich im internen Netz betreiben möchte. Diese sind z.T. mit selbst generierten Zertifikaten verschlüsselt, aber auch nicht. Traffic zu den Proxmox Hosts ist auch über LE SSL Zertifikaten verschlüsselt.

Meine Frage:
Kann ich meinen existierenden NPM so einrichten, dass er den Traffic vom internen Netz auf die internen Dienste weitergeleitet, jedoch Anfragen von aussen nur auf die zwei von mir gewünschten Dienste erlaubt? Die lokalen Dienste sollen weiterhin nicht von aussen erreichbar sein. Und falls ja, wie müsste ich da vorgehen?

Besten Dank
Gruss
Che

Willkommen @Che

Da ich weder NPM noch AdGuard benutze, sondern Alternativen verwende, kann ich nur theoretisch darauf antworten. Aber vielleicht hilft es gedanklich weiter.

Soll heißen, der NPM befindet sich im LAN und es findet ein Portforwarding zum NPM statt?

Wenn dem so ist, sollte der NPM auch in der Lage sein, Anfragen aus dem LAN entgegen zu nehmen. Wenn man mit LE-Zertifikaten arbeiten möchte, so muss/sollte man mit einem internen DNS-Server/Resolver die Domain auf die IP des NPM umbiegen.

Mache ich bei uns in der Firma nicht anders, allerdings mit dem HAProxy unter OPNsense (inkl. ACME) und einem internen DNS-Server.

Danke für die schnelle Antwort.
Ja, der NPM ist im lokalen Netz.

Mein Problem ist nicht, dass der NPM Anfragen aus dem LAN managen und routen kann. Das Problem ist eher, dass dann alle lokalen Services auch über das Internet erreichbar sein werden.
Grundsätzlich müsste ich fürs lokale Netz einen eigenen NPM betreiben welcher vom Internet nicht erreichbar ist.

Die ACL Funktion vom NPN reicht dir nicht?

Kurz gesagt, ja das funktioniert, ich nutze auch npm für öffentliche dienste und dienste nur im LAN, das lässt sich mit cname einträgen lösen die gerichtet sind auf einen eintrag der auf die lokale npm IP zeigt.

Hört sich gut an, … kannst Du mir ein Beispiel geben wie ich das einrichten kann/soll?
Also cname Einträgen im AdGuard für lokale (nicht existierende) domains oder wie? Wie kann dann LE die Zertifiake verifizieren?

ein Beispiel wen du die NS von Cloudflare benutzt für deine Domain,

eine A Record erstellen als local.deinedomain.de auf die Lokale IP von deinem NPM, in diesem Beispiel ist 192.168.178.11 die lokale IP vom NPM, dan einen CNAME erstellen auf local.deinedomain.de, wie in dem Bild zu sehen wäre agh.deinedomain.de mit der IP 192.168.178.11 also keine öffentliche IP und auch nur aus deinem Lokalen Netzwerk erreichbar, in deinem NPM machst du DNS-Challenge mit Cloudflare, trägst dort agh.deinedomain.de ein, für weitere interne subdomains wiederholst du den Vorgang, legst in Cloudflare eine CNAME auf local.deinedomain.de an, anschließend legst du es auch in NPM an

das lässt sich bestimmt auch mit anderen Anbieter umsetzen, du kannst auch direkt einen A Record erstellen für jede subdomain die du intern nutzen willst mit der IP vom NPM, wen sich aber mal die IP vom NPM ändert musst du natürlich für jeden Eintrag die IP ändern, wen du es mit CNAME machst, musst du nur einen Eintrag anpassen anstatt alle.

Voraussetzung ist DNS-Challenge, ohne wird das glaube ich nicht klappen mit den Zertifikate erstellen