<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://techcorner.max-it.de/index.php?action=history&amp;feed=atom&amp;title=Vaultwarden%3A_Absichern_und_h%C3%A4rten</id>
	<title>Vaultwarden: Absichern und härten - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://techcorner.max-it.de/index.php?action=history&amp;feed=atom&amp;title=Vaultwarden%3A_Absichern_und_h%C3%A4rten"/>
	<link rel="alternate" type="text/html" href="https://techcorner.max-it.de/index.php?title=Vaultwarden:_Absichern_und_h%C3%A4rten&amp;action=history"/>
	<updated>2026-10-19T03:18:33Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in maxTechCorner</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://techcorner.max-it.de/index.php?title=Vaultwarden:_Absichern_und_h%C3%A4rten&amp;diff=4939&amp;oldid=prev</id>
		<title>imported&gt;TechCorner-Redaktion: Neuer Artikel: Registrierung, Admin-Panel, Ratenbegrenzung, Fail2ban, Container, Netzwerk, Updates</title>
		<link rel="alternate" type="text/html" href="https://techcorner.max-it.de/index.php?title=Vaultwarden:_Absichern_und_h%C3%A4rten&amp;diff=4939&amp;oldid=prev"/>
		<updated>2026-10-17T00:00:00Z</updated>

		<summary type="html">&lt;p&gt;Neuer Artikel: Registrierung, Admin-Panel, Ratenbegrenzung, Fail2ban, Container, Netzwerk, Updates&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Steckbrief&lt;br /&gt;
| gilt_fuer   = Vaultwarden 1.37.x im Docker-Container hinter einem Reverse Proxy; Fail2ban 1.x auf Debian/Ubuntu&lt;br /&gt;
| bereich     = IT-Security&lt;br /&gt;
| dauer       = ca. 1–2 Stunden&lt;br /&gt;
| rechte      = Root auf dem Docker-Host, Administrator des Admin-Panels&lt;br /&gt;
| stand       = Oktober 2026&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Vaultwarden absichern und härten&amp;#039;&amp;#039;&amp;#039; heißt: unnötige Funktionen schließen, das Admin-Panel abschotten, Anmeldeversuche begrenzen, den Container mit wenigen Rechten laufen lassen und Sicherheitsupdates zügig einspielen. Ein Passwortserver ist ein lohnendes Ziel – auch wenn die Tresore verschlüsselt gespeichert werden, kann ein Angreifer mit Serverzugriff Konten übernehmen, Zwei-Faktor-Schutz entfernen oder Benutzer aussperren. Diese Checkliste fasst die Empfehlungen des Hardening Guide des Projekts zusammen und ergänzt sie für den Unternehmenseinsatz.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Vaultwarden-Haertung.png|thumb|center|750px|Vaultwarden härten: Registrierung schließen (SIGNUPS_ALLOWED=false), Einladungen und Organisationserstellung beschränken, Passwort-Hinweise abschalten; Admin-Panel nur mit Argon2-Token, nur aus dem Admin-Netz oder ganz abgeschaltet; Fail2ban für Anmeldung, Admin-Panel und TOTP; Ratenbegrenzung; Container als Nicht-Root, nur der Datenordner gemountet; Icon-Abruf ohne interne Adressen; Server nur per VPN oder mit Geofilter erreichbar; Sicherheitsupdates innerhalb weniger Tage einspielen.]]&lt;br /&gt;
&lt;br /&gt;
== Bedrohungen realistisch einschätzen ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Server übernommen&amp;#039;&amp;#039;&amp;#039;: Der Angreifer sieht keine Klartext-Passwörter, kann aber den ausgelieferten Web-Tresor manipulieren und so beim nächsten Login das Master-Passwort abgreifen. Deshalb sind Updates und Systemhärtung wichtiger als bei vielen anderen Diensten.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Master-Passwort erraten&amp;#039;&amp;#039;&amp;#039;: Online durch Ratenbegrenzung, Fail2ban und Zwei-Faktor-Anmeldung erschwert; offline (mit gestohlener Datenbank) nur durch starke Master-Passwörter und die Schlüsselableitung im Client.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Admin-Panel&amp;#039;&amp;#039;&amp;#039;: Wer es erreicht, kann Benutzer löschen, die Zwei-Faktor-Anmeldung entfernen und Einstellungen ändern – aber keine Tresore entschlüsseln.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Phishing&amp;#039;&amp;#039;&amp;#039;: Gefälschte Anmeldeseiten erbeuten Master-Passwort und TOTP-Code. Schutz bieten FIDO2-Sicherheitsschlüssel, siehe [[Vaultwarden: Zwei-Faktor-Anmeldung und SSO mit OpenID Connect]] und [[Phishing]].&lt;br /&gt;
&lt;br /&gt;
== Schritt 1: Vaultwarden-Einstellungen härten ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Einstellung !! Empfehlung !! Grund&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SIGNUPS_ALLOWED&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || Standard ist &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; – jeder, der den Server erreicht, könnte sich registrieren.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SIGNUPS_DOMAINS_WHITELIST&amp;lt;/code&amp;gt; || nur, wenn Selbstregistrierung gewünscht: &amp;lt;code&amp;gt;firma.de&amp;lt;/code&amp;gt;, zusammen mit &amp;lt;code&amp;gt;SIGNUPS_VERIFY=true&amp;lt;/code&amp;gt; || hebt &amp;lt;code&amp;gt;SIGNUPS_ALLOWED&amp;lt;/code&amp;gt; auf&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;INVITATIONS_ALLOWED&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; nur, wenn Organisations-Admins einladen sollen || Eingeladene können sich trotz geschlossener Registrierung anmelden.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ORG_CREATION_USERS&amp;lt;/code&amp;gt; || Adressen der IT-Administratoren || verhindert Schatten-Organisationen außerhalb der Kontrolle der IT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SHOW_PASSWORD_HINT&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;PASSWORD_HINTS_ALLOWED&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || Hinweise erleichtern das Erraten des Master-Passworts.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SENDS_ALLOWED&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EMERGENCY_ACCESS_ALLOWED&amp;lt;/code&amp;gt; || bewusst entscheiden || Send und Notfallzugriff sind nützlich, müssen aber zur Richtlinie passen.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;INCOMPLETE_2FA_TIME_LIMIT&amp;lt;/code&amp;gt; || Standard 3 Minuten lassen || meldet per E-Mail, wenn jemand das richtige Master-Passwort eingibt, aber den zweiten Faktor nicht – ein Hinweis auf ein kompromittiertes Passwort&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;REQUIRE_DEVICE_EMAIL&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, wenn SMTP zuverlässig läuft || E-Mail bei jeder Anmeldung eines neuen Geräts; schlägt der Versand fehl, scheitert die Anmeldung.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DISABLE_2FA_REMEMBER&amp;lt;/code&amp;gt; || optional &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || erzwingt den zweiten Faktor bei jeder Anmeldung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: Admin-Panel schützen ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nur gehashtes Token&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;ADMIN_TOKEN&amp;lt;/code&amp;gt; als Argon2-PHC-String, siehe [[Vaultwarden: Installation mit Docker Compose]]. Meldet das Panel &amp;#039;&amp;#039;You are using a plain text ADMIN_TOKEN&amp;#039;&amp;#039;, ist das Token im Klartext gespeichert.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nur aus dem Admin-Netz&amp;#039;&amp;#039;&amp;#039;: Im Reverse Proxy &amp;lt;code&amp;gt;/admin&amp;lt;/code&amp;gt; auf interne Adressen beschränken, siehe [[Vaultwarden: HTTPS mit Reverse Proxy (Caddy, nginx, OPNsense)]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Am besten abschalten&amp;#039;&amp;#039;&amp;#039;, wenn es nicht gebraucht wird: &amp;lt;code&amp;gt;ADMIN_TOKEN&amp;lt;/code&amp;gt; entfernen, prüfen, dass in &amp;lt;code&amp;gt;data/config.json&amp;lt;/code&amp;gt; kein &amp;lt;code&amp;gt;admin_token&amp;lt;/code&amp;gt; steht, Container neu erstellen. Für Einladungen und Wartung kurz wieder einschalten.&lt;br /&gt;
* &amp;lt;code&amp;gt;DISABLE_ADMIN_TOKEN=true&amp;lt;/code&amp;gt; nie verwenden, außer der Proxy schützt das Panel mit eigener Anmeldung.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Sitzungen&amp;#039;&amp;#039;&amp;#039;: Eine Admin-Sitzung gilt standardmäßig 20 Minuten (&amp;lt;code&amp;gt;ADMIN_SESSION_LIFETIME&amp;lt;/code&amp;gt;). Ein Wechsel des Tokens beendet laufende Sitzungen nicht. Alle Sitzungen beendet man, indem man &amp;lt;code&amp;gt;data/rsa_key.pem&amp;lt;/code&amp;gt; löscht und Vaultwarden neu startet – dabei werden auch alle Benutzer abgemeldet.&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: Anmeldeversuche begrenzen ==&lt;br /&gt;
Vaultwarden begrenzt Anmeldungen bereits selbst:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Einstellung !! Standard&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;LOGIN_RATELIMIT_SECONDS&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;LOGIN_RATELIMIT_MAX_BURST&amp;lt;/code&amp;gt; || im Mittel ein Versuch pro 60 Sekunden, Spitzen bis 10&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ADMIN_RATELIMIT_SECONDS&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;ADMIN_RATELIMIT_MAX_BURST&amp;lt;/code&amp;gt; || ein Versuch pro 300 Sekunden, Spitzen bis 3&lt;br /&gt;
|}&lt;br /&gt;
Zusätzlich sperrt &amp;#039;&amp;#039;&amp;#039;Fail2ban&amp;#039;&amp;#039;&amp;#039; IP-Adressen nach mehreren Fehlversuchen. Voraussetzung: &amp;lt;code&amp;gt;LOG_FILE&amp;lt;/code&amp;gt; ist gesetzt und das Log zeigt die echte Client-IP (nicht 127.0.0.1 oder die IP des Proxys).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/fail2ban/filter.d/vaultwarden.local&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[INCLUDES]&lt;br /&gt;
before = common.conf&lt;br /&gt;
&lt;br /&gt;
[Definition]&lt;br /&gt;
failregex = ^.*?Username or password is incorrect\. Try again\. IP: &amp;lt;ADDR&amp;gt;\. Username:.*$&lt;br /&gt;
ignoreregex =&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/fail2ban/filter.d/vaultwarden-admin.local&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[INCLUDES]&lt;br /&gt;
before = common.conf&lt;br /&gt;
&lt;br /&gt;
[Definition]&lt;br /&gt;
failregex = ^.*Invalid admin token\. IP: &amp;lt;ADDR&amp;gt;.*$&lt;br /&gt;
ignoreregex =&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/fail2ban/jail.d/vaultwarden.local&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[vaultwarden]&lt;br /&gt;
enabled   = true&lt;br /&gt;
backend   = auto&lt;br /&gt;
port      = 80,443&lt;br /&gt;
filter    = vaultwarden&lt;br /&gt;
logpath   = /opt/vaultwarden/data/vaultwarden.log&lt;br /&gt;
banaction = iptables-allports&lt;br /&gt;
chain     = DOCKER-USER&lt;br /&gt;
maxretry  = 5&lt;br /&gt;
findtime  = 4h&lt;br /&gt;
bantime   = 4h&lt;br /&gt;
&lt;br /&gt;
[vaultwarden-admin]&lt;br /&gt;
enabled   = true&lt;br /&gt;
backend   = auto&lt;br /&gt;
port      = 80,443&lt;br /&gt;
filter    = vaultwarden-admin&lt;br /&gt;
logpath   = /opt/vaultwarden/data/vaultwarden.log&lt;br /&gt;
banaction = iptables-allports&lt;br /&gt;
chain     = DOCKER-USER&lt;br /&gt;
maxretry  = 3&lt;br /&gt;
bantime   = 24h&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Docker&amp;#039;&amp;#039;&amp;#039;: Verbindungen zu veröffentlichten Container-Ports laufen über die Kette &amp;lt;code&amp;gt;FORWARD&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;DOCKER-USER&amp;lt;/code&amp;gt;, nicht &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt;. Neuere Fail2ban-Versionen nutzen unter Debian standardmäßig nftables, Docker aber iptables – deshalb hier ausdrücklich &amp;lt;code&amp;gt;iptables-allports&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Läuft der Proxy auf einer anderen Maschine (z. B. OPNsense), muss die Sperre dort greifen; Fail2ban auf dem Vaultwarden-Host sperrt dann nur den Proxy.&lt;br /&gt;
* Testen: &amp;lt;code&amp;gt;fail2ban-regex /opt/vaultwarden/data/vaultwarden.log /etc/fail2ban/filter.d/vaultwarden.local&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Das Projekt-Wiki enthält einen dritten Filter für falsche TOTP-Codes.&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: Container und Host ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nicht als root&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;user: &amp;quot;1000:1000&amp;quot;&amp;lt;/code&amp;gt; in der compose.yaml und den Datenordner vorher mit &amp;lt;code&amp;gt;chown -R 1000:1000 data&amp;lt;/code&amp;gt; übergeben. Docker ab 20.10 erlaubt auch Nicht-Root-Prozessen den Port 80 im Container.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nur den Datenordner mounten&amp;#039;&amp;#039;&amp;#039;, nie &amp;lt;code&amp;gt;/var/run/docker.sock&amp;lt;/code&amp;gt; oder das Home-Verzeichnis. Zertifikate, falls nötig, schreibgeschützt mit &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Eigener Host oder eigene VM&amp;#039;&amp;#039;&amp;#039; für den Passwortserver, kein Mischbetrieb mit Testsystemen. Zugang zum Host nur per SSH-Schlüssel für wenige Administratoren.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Datenordner schützen&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;chmod 700 data&amp;lt;/code&amp;gt;. Er enthält die Datenbank, Schlüssel zum Signieren von Sitzungen (&amp;lt;code&amp;gt;rsa_key.pem&amp;lt;/code&amp;gt;) und gegebenenfalls SMTP-Passwort und Admin-Token in &amp;lt;code&amp;gt;config.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Schritt 5: Netzwerk ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Erreichbarkeit beschränken&amp;#039;&amp;#039;&amp;#039;: Am sichersten ist ein Server, der nur im LAN und per [[WireGuard]] erreichbar ist. Muss er öffentlich erreichbar sein, Geo-Filter und Intrusion Prevention auf der Firewall nutzen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Strict SNI&amp;#039;&amp;#039;&amp;#039;: Der Proxy soll Vaultwarden nur unter dem richtigen Namen ausliefern, nicht unter der IP-Adresse – Scanner finden sonst Instanzen über IP-Bereiche.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Icon-Abruf&amp;#039;&amp;#039;&amp;#039;: Vaultwarden lädt Website-Symbole selbst aus dem Internet. &amp;lt;code&amp;gt;HTTP_REQUEST_BLOCK_NON_GLOBAL_IPS=true&amp;lt;/code&amp;gt; (Standard) verhindert Abrufe ins interne Netz. 1.37.0 hat mehrere Lücken über diesen Weg geschlossen (SSRF). Wer den Abruf nicht braucht, setzt &amp;lt;code&amp;gt;DISABLE_ICON_DOWNLOAD=true&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;ICON_CACHE_TTL=0&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Ausgehend braucht der Server nur DNS, SMTP, den Icon-Abruf (HTTPS) und optional das Push-Relay.&lt;br /&gt;
&lt;br /&gt;
== Schritt 6: Updates und Überwachung ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Sicherheitsupdates innerhalb weniger Tage&amp;#039;&amp;#039;&amp;#039;: Allein 2026 enthielten die Versionen 1.35.3, 1.35.4, 1.35.5, 1.36.0, 1.37.0 und 1.37.4 Sicherheitsfixes, teils mit hohem Schweregrad. Releases auf GitHub abonnieren (&amp;#039;&amp;#039;Watch › Custom › Releases&amp;#039;&amp;#039;).&lt;br /&gt;
* Auch das Host-Betriebssystem, Docker und den Proxy aktuell halten.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Überwachen&amp;#039;&amp;#039;&amp;#039;: Erreichbarkeit von &amp;lt;code&amp;gt;/alive&amp;lt;/code&amp;gt;, Ablaufdatum des Zertifikats, Fail2ban-Sperren und Fehlermeldungen im Log. Die Logs lassen sich an ein SIEM wie Wazuh weitergeben.&lt;br /&gt;
* Nach einem Verdacht auf Kompromittierung: Server isolieren, Image und Host neu aufsetzen, Admin-Token und SMTP-Passwort wechseln, &amp;lt;code&amp;gt;rsa_key*&amp;lt;/code&amp;gt; neu erzeugen und Benutzer zum Wechsel der Master-Passwörter und der wichtigsten Zugangsdaten auffordern.&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Restrisiko Client&amp;#039;&amp;#039;&amp;#039;: Ein Schadprogramm auf dem entsperrten Endgerät kann den Tresor auslesen. Endpoint-Schutz und kurze Tresor-Timeouts gehören zur Härtung dazu.&lt;br /&gt;
* Bei Härtung, Überwachung und Notfallplanung für sicherheitskritische Dienste unterstützt Sie das Team [https://www.max-it.de/it-services/cybersecurity/ Cybersecurity von m.a.x. it].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Vaultwarden]] – Überblick und alle Artikel der Reihe&lt;br /&gt;
* [[Brute-Force-Angriff]]&lt;br /&gt;
* [[Vaultwarden: Backup und Wiederherstellung]]&lt;br /&gt;
* [[Technische und organisatorische Maßnahmen]]&lt;br /&gt;
&lt;br /&gt;
== Links und Quellen ==&lt;br /&gt;
* [https://github.com/dani-garcia/vaultwarden/wiki/Hardening-Guide Vaultwarden-Wiki: Hardening Guide]&lt;br /&gt;
* [https://www.max-it.de/it-services/cybersecurity/ Cybersecurity von m.a.x. it]&lt;br /&gt;
&lt;br /&gt;
{{Uebermax}}&lt;br /&gt;
[[Kategorie:IT-Security]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;TechCorner-Redaktion</name></author>
	</entry>
</feed>