sakistech Posted December 2, 2021 Share Posted December 2, 2021 (edited) Hallo zusammen, wie Ihr schon im Title sehen könnt, bin ich seit Stunden auf der Suche mein Vaultwarden lokal zu nutzen, ohne Letsencrypt, ohne Domain etc. Ziel ist es das man nur per Wireguard darauf zugreifen kann. Leider konnte ich im Internet nichts passendes dazu finden. kann mir da jemand weiterhelfen? LG Sakis Edited December 6, 2021 by ich777 changed title to solved Quote Link to comment
mgutt Posted December 4, 2021 Share Posted December 4, 2021 Meinst du wegen der Fehlermeldung? Quote This browser requires HTTPS to use the web vault Check the Vaultwarden wiki for details on how to enable it Ich denke mal du musst sowas machen wie ich: https://forums.unraid.net/topic/115369-nginx-ssl-zertifikat-für-lokal-genutzte-domains/?tab=comments#comment-1048918 Damit kann ich alles über https erreichen, aber eben nur lokal. Wobei man um die Portfreigabe nicht herum kommt, wenn man keine DNS Challenge machen kann (weil Let's Encrypt ja über Port 80 dann die URL Challenge macht). Also entweder hast du eine eigene Domain und machst eine DNS Challenge und lässt alle Ports zu oder du nimmst eine DDNS und öffnest Port 80 (ginge im Härtefall auch nur alle 3 Monate für den Refresh der Let's Encrypt Validierung). Oder vielleicht ein Cloudflare Zertifikat? Das ist ja meine ich auch kostenlos. Ich habe dann über die erweiterten Einstellungen des Containers bei WebUI meine Domain https://passwords.example.com hinterlegt. Auf die Art geht die dann direkt über die verschlüsselte Domain auf. Alternativ müsste man es mit einem self-signed Zertikat versuchen, das man in seinem Browser installiert. Aber ohne Proxy (NPM oder SWAG) davor geht es denke ich nicht, da der Container selbst ja nur auf Port 80, also http lauscht. Quote Link to comment
mgutt Posted December 4, 2021 Share Posted December 4, 2021 Ich habe das gerade mal ausprobiert und mit der Lösung aus dem Link geht es. Allerdings erhalte ich den Fehler, dass ich angeblich das falsche Passwort eingebe: Quote Ein Fehler ist aufgetreten. Username or password is incorrect. Try again Ich dachte ADMIN_TOKEN ist das Passwort?! Quote Link to comment
sakistech Posted December 4, 2021 Author Share Posted December 4, 2021 16 hours ago, mgutt said: Meinst du wegen der Fehlermeldung? Ein Fehler ist aufgetreten. Username or password is incorrect. Try again Ja genau. 16 hours ago, mgutt said: Ich denke mal du musst sowas machen wie ich: https://forums.unraid.net/topic/115369-nginx-ssl-zertifikat-für-lokal-genutzte-domains/?tab=comments#comment-1048918 Damit kann ich alles über https erreichen, aber eben nur lokal. Wobei man um die Portfreigabe nicht herum kommt, wenn man keine DNS Challenge machen kann (weil Let's Encrypt ja über Port 80 dann die URL Challenge macht). Also entweder hast du eine eigene Domain und machst eine DNS Challenge und lässt alle Ports zu oder du nimmst eine DDNS und öffnest Port 80 (ginge im Härtefall auch nur alle 3 Monate für den Refresh der Let's Encrypt Validierung). Oder vielleicht ein Cloudflare Zertifikat? Das ist ja meine ich auch kostenlos. Ich habe eine Domain und verwalte die über Cloudflare. Da ich eine Fritzbox habe, kann ich mit hilfe diesem PHP-Script über Cloudflare eine DynDNS Adresse erstellen z.b. home.example.de ich nutze Pihole und habe unter "Pi-hole domain name" die Dydns eingetragen, also home.example.de Jetzt habe per NPM einen host erstellt (pass.home.example.de) und die DNS-Validierung per Cloudflare durchgeführt (keine Ports geöffnet). und ich habe bei Advanced folgendes eingetragen. location / { # allow anyone in 192.168.178.0/24 allow 192.168.178.0/24; # allow our public ip allow 12.34.56.789; # aktuelle IP # drop rest of the world deny all; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_http_version 1.1; # Proxy! include conf.d/include/proxy.conf; } Wenn ich nun pass.home.example.de aufrufe, wird die mir unverschlüsselt geöffnet, also mit Port 80. 16 hours ago, mgutt said: Ich habe dann über die erweiterten Einstellungen des Containers bei WebUI meine Domain https://passwords.example.com hinterlegt. Auf die Art geht die dann direkt über die verschlüsselte Domain auf. Das habe ich schon probiert, bringt aber nichts. wird immer mit Port 80 geöffnet. 16 hours ago, mgutt said: Alternativ müsste man es mit einem self-signed Zertikat versuchen Das war auch mein gedanke. Wie kann ich für alle Docker Container einen self-signed Zertikat erstellen, oder gibt es da eine App? 16 hours ago, mgutt said: Ich dachte ADMIN_TOKEN ist das Passwort?! ja genau, die URL ist folgende https://example.de/admin den ADMIN-TOKEN kann man auch unter /mnt/user/appdata/bitwarden/config.json finden. Hier die Ping ausgabe. ping pass.home.example.de Ping wird ausgeführt für pass.home.example.de [192.168.178.107] mit 32 Bytes Daten: Antwort von 192.168.178.107: Bytes=32 Zeit<1ms TTL=64 Antwort von 192.168.178.107: Bytes=32 Zeit<1ms TTL=64 Antwort von 192.168.178.107: Bytes=32 Zeit<1ms TTL=64 Antwort von 192.168.178.107: Bytes=32 Zeit<1ms TTL=64 Ping-Statistik für 192.168.178.107: Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust), Ca. Zeitangaben in Millisek.: Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms Wenn ich die Seite mit https aufrufe kommt folgende Fehlermeldung Fehler: Verbindung fehlgeschlagen Beim Verbinden mit pass.home.example.de trat ein Fehler auf. Die Website könnte vorübergehend nicht erreichbar sein, versuchen Sie es bitte später nochmals. Wenn Sie auch keine andere Website aufrufen können, überprüfen Sie bitte die Netzwerk-/Internetverbindung. Wenn Ihr Computer oder Netzwerk von einer Firewall oder einem Proxy geschützt wird, stellen Sie bitte sicher, dass Firefox auf das Internet zugreifen darf. Quote Link to comment
mgutt Posted December 4, 2021 Share Posted December 4, 2021 1 hour ago, sakistech said: Das habe ich schon probiert, bringt aber nichts. wird immer mit Port 80 geöffnet. Bei mir nicht. Bei mir geht das, außer eben die Fehlermeldung beim Login: Bei NPM: Wie man sieht habe ich nicht mal https erzwungen. Ich kann daher bitwarden sowohl über http als auch über https öffnen. 1 hour ago, sakistech said: ja genau, die URL ist folgende https://example.de/admin den ADMIN-TOKEN kann man auch unter /mnt/user/appdata/bitwarden/config.json finden. Ok, die hab ich gar nicht ^^ Quote Link to comment
mgutt Posted December 4, 2021 Share Posted December 4, 2021 Ok, ich bin maximal verwirrt. Über "Konto erstellen" konnte ich mir einen User anlegen und auch ein beliebiges Master-Passwort setzen und mich dann auch anmelden. Aber da können sich dann ja unendlich viele Leute Accounts anlegen oder wie?! Wozu kann man dann überhaupt die Variablen beim Container ausfüllen?! EDIT: OK, macht Sinn. Ich habe ja SIGNUPS_ALLOWED auf true gesetzt. Aber warum ignoriert der SERVER_ADMIN_EMAIL und ADMIN_TOKEN? Und vor allem warum habe ich eine SQLite Datenbank und du eine json Datei als Speicherort? EDIT2: Ich habe mir jetzt die sqlite Datenbank heruntergeladen und mal reingeschaut. Es gibt gar keine User, also SERVER_ADMIN_EMAIL scheint gar nichts zu machen: Erst wenn man ein Konto über die GUI erstellt, wird dieser User der Tabelle hinzugefügt. EDIT3: OK. Das erstellt keinen User, sondern der User, der sich registriert und die selbe E-Mail-Adresse hat wie in SERVER_ADMIN_EMAIL, der hat in der GUI mehr Rechte. Diese Info wurde zwischenzeitlich aus der Read Me gelöscht. Findet man nur noch in der alten Version: https://github.com/thelittlefireman/bitwarden_rs/tree/6d4786d379ea6503ebdc8457754b90eb61a6b130#configure-server-administrator Wobei die Frage ist ob das bei Vaultwarden auch so existiert?! EDIT4: Nein, die Variable gibt es gar nicht mehr: https://github.com/dani-garcia/vaultwarden/search?q=SERVER_ADMIN_EMAIL&type=code EDIT5: Hier stehen alle Variablen, die es noch gibt inkl Beschreibung: https://github.com/dani-garcia/vaultwarden/blob/ead2f02cbd8a6fe29da0d0b09e68569920d3a4d2/src/config.rs#L371 Und wenn ich das richtig verstehe, kann quasi jeder User auf einen Admin-Link klicken, aber diesen nicht öffnen, wenn er nicht den ADMIN_TOKEN kennt: https://github.com/dani-garcia/vaultwarden/blob/ead2f02cbd8a6fe29da0d0b09e68569920d3a4d2/src/api/admin.rs#L72 EDIT6: Ahaaaa. Man kann https://passwords.example.com/admin öffnen um das Admin-Panel zu erreichen. Da braucht es keinen User für. Nur den Token: EDIT7: Ich habe einen Pull Request für das Template gestartet, damit das etwas klarer wird: https://github.com/selfhosters/unRAID-CA-templates/pull/299 @Roxedus Quote Link to comment
sakistech Posted December 5, 2021 Author Share Posted December 5, 2021 (edited) Bei mir funktioniert es nicht und ich weiß auch nicht wo der Fehler liegt. 😞 Welche NPM nutzt du? Wie ist dein "Netzwerk-Aufbau" ? Edited December 5, 2021 by sakistech Quote Link to comment
mgutt Posted December 5, 2021 Share Posted December 5, 2021 23 hours ago, sakistech said: Wenn ich die Seite mit https aufrufe kommt folgende Fehlermeldung Fehler: Verbindung fehlgeschlagen Beim Verbinden mit pass.home.example.de trat ein Fehler auf. Deine Domain hat eine lokale IP. Ist das NPM mit einer statischen IP aus dem br0 Netzwerk oder die von Unraid und NPM läuft im Bridge Modus? Weil der Fehler sagt ja klar aus, dass auf Port 443 keine Antwort kommt. Lauscht NPM auf Port 443? 2 hours ago, sakistech said: Wie ist dein "Netzwerk-Aufbau" ? Bei mir läuft NPM als Host und Unraid lauscht auf Port 5000/5001. Dh NPM lauscht über die Unraid IP auf Port 80, 81 und 443. Quote Link to comment
sakistech Posted December 6, 2021 Author Share Posted December 6, 2021 (edited) Ich habe es nun geschaft. 😄 Ich möchte hier mein vorgehen genauer beschreiben, vielleicht hilft es den einen oder anderen. Was ist unser Ziel? Let`s Encrypt Zertifikate für die lokale Domain keine Portfreigabe am Router, da Cloudflare DNS-Validierung genutzt wird Host und SSL Verwaltung mittels Nginx Proxy Manager alle Geräte im Heim-Netzwerk sollen über HTTPS kommunizieren können Was wird benötigt? eine eigene Domain Pihole als DNS sowie DHCP Cloudflare Account um DNS zu verwalten Auf gehts. Domain kaufen Domain zu Cloudflare umziehen API-Token bei Cloudflare erstellen ("DNS:bearbeiten" reicht aus) "Nginx-Proxy-Manager-Official" installieren NPM WebGui öffnen und ein Letsencrypt Wildcard Zertifikat installieren mittels DNS-Challange (API-Token eintragen) In Pihole unter "Settings" -> "DHCP" -> "Pi-hole domain name:" folgendes eintragen "example.com" In Pihole unter "Local DNS" -> "DNS Records" -> subdomain und IP von NPM eintragen. z.b. proxy.example.com und 192.168.178.100 SSH-Verbinung mit Pihole herstellen und folgendes .conf erstellen sudo nano /etc/dnsmasq.d/03-pihole-dns-reverse-proxy.conf Darin dann folgendes eintragen (example.com entsprechend anpassen und die IP vom NPM eintragen) address=/example.com/192.168.178.100 dann einmal mit "pihole restartdns" den DNS-Resolver neustarten. Neuen Host erstellen in NPM (example.com und die ip vom NPM als Port 81 eingeben) Wenn ihr nun die Domain example.com öffnet, sollte das Login Fenster von NPM mit gültigen SSL erscheinen. Somit kann ich nun mein Vaultwarden über VPN nutzen, da es ein gültiges Zertifikat hat. Natürlich kann man auch weitere Dienste wie Plex, Nextcloud etc mittels HTTPS lokal absichern. Man muss dann nur unter "Local DNS" -> "CNAME Records" -> "Domain:" plex.example.com -> "Target Domain:" proxy.example.com. Ich möchte betonen das ich kein ITler bin, wer Verbesserungen und Optimierungen hat, dann her damit. Mit dieser Anleitung funktioniert es soweit bei mir. LG Sakis Edited December 6, 2021 by sakistech Quote Link to comment
mgutt Posted December 6, 2021 Share Posted December 6, 2021 Optional kann es notwendig sein, dass du im Router den DNS rebind Schutz für deine Domain aufheben musst. Das ist z.b. bei einer Fritzbox der Fall. Lassen sich custom DNS-Einträge bei pihole nicht über die GUI erstellen? Wer das nachbauen will sollte übrigens eine separate Hardware für pi-hole haben. Ansonsten kommt man nicht mehr ins Internet wenn der unRAID Server aus ist und Pihole darauf läuft. Quote Link to comment
sakistech Posted December 7, 2021 Author Share Posted December 7, 2021 On 12/6/2021 at 8:25 AM, mgutt said: Optional kann es notwendig sein, dass du im Router den DNS rebind Schutz für deine Domain aufheben musst. Das ist z.b. bei einer Fritzbox der Fall. meine Fritzbox erreiche ich über die IP, daher habe ich bei den DNS Rebind Schutz nichts geändert- On 12/6/2021 at 8:25 AM, mgutt said: Lassen sich custom DNS-Einträge bei pihole nicht über die GUI erstellen? Das ist korrekt. Man muss nur Punkt 9 bis 11 manuell per Putty eintragen, alles andere dann über die GUI. On 12/6/2021 at 8:25 AM, mgutt said: Wer das nachbauen will sollte übrigens eine separate Hardware für pi-hole haben. Ansonsten kommt man nicht mehr ins Internet wenn der unRAID Server aus ist und Pihole darauf läuft. Ja genau, bei mir läuft Pihole auf einem Raspberry Pi 4. Die oben genannte Anleitung ist noch experimentell, folgende probleme bestehen noch. wenn ich unter Pihole einen CNAME für den Unraid Server erstelle z.b. server.example.com -> proxy.example.com und dann einen Proxy Host in NPM mit der Domain server.example.com und der ip vom Unraid-Server und Port 80, dann erhalte ich die Fehlermeldung "502 Bad Gateway" wenn die die Domain server.example.com aufrufe. Wenn ich mich per Wireguard auf den Server verbinde kann ich z.b. die Fritzbox über die IP 192.168.178.1 aufrufen, aber die Docker Container nicht. Weder mit IP noch mit der internen Domain z.b. plex.example.com Wo kann da der fehler liegen? LG Sakis Quote Link to comment
jj1987 Posted December 7, 2021 Share Posted December 7, 2021 30 minutes ago, sakistech said: Wo kann da der fehler liegen? 30 minutes ago, sakistech said: daher habe ich bei den DNS Rebind Schutz nichts geändert- Damit würde ich anfangen und z.B. "plex.example.com" im Rebind-Schutz eintragen Quote Link to comment
sakistech Posted December 7, 2021 Author Share Posted December 7, 2021 (edited) 6 hours ago, jj1987 said: Damit würde ich anfangen und z.B. "plex.example.com" im Rebind-Schutz eintragen leider liegt es nicht daran. Es muss irgendwas mit dem Unraid-Server sein, vielleicht die Interfaces? Weil wenn ich z.b. über den VPN-Tunnel auf meiner tasmota zugreifen möchte (http://tasmota/) dann wird mir das ganz normal angezeigt, sogar ohne tasmota.example.com und ohne eintrag im DNS-Redind-Schutz. Auch auf die Fritzbox kann ich mittels IP zugreifen 192.168.178.1, nur auf alles andere was im Unraid-Server ist kann ich nicht zugreifen. Edited December 7, 2021 by sakistech Quote Link to comment
mgutt Posted December 8, 2021 Share Posted December 8, 2021 Ich glaube der DNS rebindi Schutz gilt auch nur wenn die Fritzbox der DNS-Server ist. Quote Link to comment
sakistech Posted December 8, 2021 Author Share Posted December 8, 2021 Ich habe den fehler gefunden. 1.) Im Unraid unter "Settings" -> "Docker" -> "Host access to custom networks:" auf Enabled setzen. 2.) Im Unraid unter "Settings" -> "VPN Manager" -> "Local server uses NAT:" auf No setzen. 3.) in der Fritzbox eine statische Route machen (Netzwerk > Netzwerkeinstellungen > Statische Routingtabelle von 10.253.0.0/24 (Das ist die IP die unter "VPN Manager" -> "Local tunnel network pool:" steht.) zu 192.168.178.200 (Die IP eueres Unraid-Servers) man braucht kein DNS Rebindschutz etc. vermutlich weil ich DNS und DHCP über Pihole amlaufen habe, auf einem Raspberry Pi 4. Mit dieser Einstellung kann ich jetzt über VPN sowohl über die lokale IP als auch über die NPM erstellte Host zugreifen und das mit einem gültigen SSL fürs lokale Netz. Quote Link to comment
MattGer Posted July 26, 2023 Share Posted July 26, 2023 Eine einfachere Lösung ist vielleicht per SSH und einen Portforward auf die GUI zuzugreifen und die Einstellungen sonst auf lokal zu lassen. Das funktioniert bei mir wunderbar und hat genau den Effekt dass Vaultwarden/Bitwarden nur von innen erreichbar ist und sonst in den Apps auf dem Handy problemlos funktioniert. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.