Reverse proxy / https ohne Port 80? (Unraid und Vaultwarden)

Lupus77

Lieutenant
Registriert
Juni 2005
Beiträge
898
Ich bin von Synology zu Unraid umgestiegen und habe nun Vaultwarden eingerichtet. Um auf das Vault zu kommen kommt man wohl nicht an ein reverse proxy vorbei. Verwendet habe ich den Nginx Proxy Manager. Das ganze läuft auch wenn ich Port 80 / 443 zur Nginx Instanz forwarden lasse. Sobald ich die Port Forwards rausnehme geht nach einer kurzen Weile der Zugriff auf Vaultwarden nicht mehr. Je nach Einstellung kommt ein "Site can't be reached" oder "Your connection is not private".

Bei der Synology musste ich auch ein reverse proxy einrichten, aber hier ging es komplett ohne Port Forwarding und Vaultwarden war prima erreichbar.

Ich habe auch den Fred hier gefunden ( https://www.computerbase.de/forum/t...-nur-ueber-vpn-und-ohne-portfreigabe.2082737/ ) und die Domains in Adguard Home in den DNS rewrites eingetragen, ein nslookup auf die Domain gibt die lokale IP zurück.

Die Frage ist nun, wie bekomme ich das mit Unraid auch so hin dass ich keinerlei Ports weiterleiten muss?

Edit: Wenn ich das so recht bedenke ist das eher ein Zertifikatsproblem. Ich muss also das Let's Encrypt Zertifikat von Nginx irgendwie in Vaultwarden Docker reinbringen, oder? Naja, erstmal pennen und morgen nochmal mit klarem Kopf drüberschauen ^^
 
Zuletzt bearbeitet:
Würde mich mal interessieren wie du das auf der Synology ohne Portforwarding hingekriegt hast...
 
  • Gefällt mir
Reaktionen: s1ave77
Naja, wenn du auf eine Domain zugreifst ist das immer Port 80 (es sei denn du spezifizierst in deiner Anfrage einen anderen).
Da muss NPM also auch auf Port 80 erreichbar sein, sonst geht nichts.
Ergänzung ()

Moment… du hast doch nicht etwa beim NSLookup eine externe IP?

Bei NS Lookup muss deine interne IP rauskommen, dann geht es ohne Port forwardimg von außen nach innen deines Routers. Musst du im DNS Server einstellen.
 
Das Ganze von außen zugänglich zu machen, geht ohne Portfreigabe meines Wissens nach nur über eine direkte VPN-Verbindung zum Router, wie es z.B. die Fritzboxen anbieten. Ansonsten braucht es Portforwarding, um den Proxy zu erreichen. Dazu sollte die Domain auf die öffentliche IP des Routers auflösen.

Letzteres ist allerdings mit erheblichen Sicherheitsrisiken verbunden und sollte ohne zusatzliche Verfikation (Google OAuth2 oder Authelia) und Schutz gegen Bruteforce (Fail2Ban) nicht in Erwägung gezogen werden. In dem Fall wäre der modernere Traefik-Proxy zu bevorzugen.

Bei Nutzung eines Proxies managed dieser die Zertifikate. Idealerweise via DNS-Challenge, welches Wildcard-Zertifikate für sicheren Zugriff auf die Sub-Domains ermöglicht. Letztere brauchen dann keinen manuellen Eingriff.
 
Wer läuft denn jetzt wo?
Die Instanz mit dem Reverse proxy muß erreichbar sein. Die mit dem Vaultwarden nicht, da muß nur der Reverse proxy selbst dran kommen.
Wenn da irgendwo etwas so konfiguriert wurde, daß der VW "Außenrum" erreichbar ist, also NICHT über den Reverse proxy, dann ist es falsch konfiguriert.
 
Danke soweit für eure Antworten.

Korben2206 schrieb:
Würde mich mal interessieren wie du das auf der Synology ohne Portforwarding hingekriegt hast...
Meinst du jetzt Vaultwarden oder Lets Encrypt? Für die Zertifikate habe ich natürlich alle drei Monate für 2 Minuten die Ports weitergeleitet damit diese erneuert werden können. Ansonsten ohne Fowarding und wenn ich von außen dran musste, dann per VPN ins Heimnetz.

Ansonsten: Ich möchte nicht von außen direkt an Vaultwarden reinkommen, wenn dann über VPN. Aber erstmal muss ich hinbekommen dass ich im Heimnetz da dran komme.

Vaultwarden läuft in Docker, IP 192.168.1.20:4532 , mit http komme ich drauf, Login nicht möglich weil https erforderlich
Nginx Reverse Proxy läuft in Docker, IP 192.168.1.2:8616 , komme drauf und kann alles einrichten.

Leite ich Port 80/443 im Router weiter komme ich auf https://bitwarden.meinedomain.com , NGINX leitet das weiter auf http://192.168.1.20:4532 , soweit klappt das.


Deaktiviere ich das Forwarding im Router wieder, erhalte ich für https://bitwarden.meinedomain.com ein Zertifikatsfehler (NET::ERR_CERT_AUTHORITY_INVALID). nslookup zeigt auf 192.168.1.20


Irgendwo habe ich also was übersehen oder einen Gedankenfehler, denn im Heimnetz müsste ich doch draufkommen.
 
Also wenn du über VPN in dein Heimnetz gehst brauchst du keinen Reverse Proxy... du kannst den Port im Bitwarden-Client ja mitgeben (in deinem Fall wohl: 192.168.1.20:4532) und direkt darauf zugreifen. Brauchst auch eigentlich kein https, da der unverschlüsselte Traffic nur im eigenen Netz stattfindet.
 
Ja, der Bitwarden Client kommt drauf, der kümmert sich wohl nicht. Aber der Webvault nicht, der will explizit https. Folgende Meldung kommt:
meldung.jpg


Ich habe grade Firefox genommen und mir ist aufgefallen dass dies tatsächlich ein Zertifikatsproblem ist. Statt dem Nginx Lets Encrypt Zertifikat wird anscheinend das Self-Signed Zertifikat von Unraid geladen. Klicke ich dann auf Risiko akzeptieren komme ich weiter und sehe eine weiße Seite mit 404 Not Found
nginx

Edith: Das Zertifikat aus Unraid gelöscht, brauche ich ja dort nicht. Nun komme ich nicht auf die Domain. Site cannot be reached. ERR_CONNECTION_REFUSED , irgendwas ist falsch :(
 
Zuletzt bearbeitet:
Guck doch mal, wo die Verbindungen genau hingehen und was die durchlaufen.

Ich hab mir das jetzt nicht im Detail angeguckt, aber wenn so Zertifikatsfehler kommen dann würde ich jetzt mal spontan vermuten das Du auf den ReverseProxy gehst der das aber nicht 1:1 weiterleitet, sondern SSL-Termination-Endpoint ist oder da irgendwas anderes im Netzwerkverkehr rumfummelt. Und dann kommen Deine in Vaultwarden hinterlegten Keys und Zertifikate ja gar nicht mehr zum Zuge.
 
Ich habs, am Ende war ein dummer Fehler... (was sonst :D )

Ich muss ja https://domain:port (SSL Port von nginx) nehmen. Mache ich das, funktioniert alles wie gewollt.

Super, ich danke euch!
 
Zurück
Oben