Le conteneur et la machine
Durcir Vaultwarden ne s'arrête pas à ses réglages. Le conteneur qui le fait tourner et la machine qui l'héberge sont aussi des portes. Le guide de durcissement du projet donne quelques gestes simples, et le tunnel privé en rend d'autres inutiles.
Ne pas tourner en administrateur
Par défaut, l'image Docker de Vaultwarden s'exécute en tant que root, l'administrateur du système. Si une faille permettait de sortir du conteneur, elle aurait tous les droits. La documentation recommande de le lancer avec un utilisateur ordinaire, en ajoutant au service dans compose.yml :
user: 1000:1000
Le dossier de données doit alors appartenir à cet utilisateur. Faites ce changement avec une sauvegarde fraîche, et vérifiez que tout redémarre.
Ne monter que le nécessaire
Le conteneur n'a besoin que de son dossier de données. Ne lui donnez jamais accès au dossier personnel complet, ni au fichier qui pilote Docker lui-même : ce serait lui donner les clés de la machine. Quand un fichier n'a pas à être modifié, montez-le en lecture seule.
Ce que le tunnel rend inutile
Le guide de durcissement recommande aussi des protections pensées pour un serveur exposé sur Internet : un outil qui bannit les adresses après plusieurs échecs (fail2ban), l'accès uniquement par le nom de domaine, un chemin d'accès secret. Avec le tunnel privé, le serveur n'est joignable que par vos propres appareils : ces protections deviennent secondaires. C'est l'un des grands avantages de ne rien exposer.
À l'inverse, si un jour vous exposiez Vaultwarden directement, elles redeviendraient indispensables, et le guide déconseille alors le chiffrement intégré au serveur au profit d'un proxy inverse.
La machine elle-même
- système et Docker à jour ;
- accès SSH par clé, pas par mot de passe ;
- aucun autre service inutile exposé sur la même machine ;
- un disque fiable (SSD plutôt que carte microSD).
flowchart TD
M["Machine : à jour, SSH par clé"] --> D["Docker"]
D --> C["Conteneur Vaultwarden<br/>utilisateur ordinaire"]
C --> V["Seul dossier monté : données"]
T["Tunnel privé"] --> C
X["Internet"] -. "aucun accès" .-> M
Erreurs fréquentes
- Changer l'utilisateur du conteneur sans adapter les droits du dossier de données. Le service ne démarre plus.
- Monter tout le dossier personnel « pour simplifier ».
- Installer fail2ban et se croire protégé alors qu'un port est ouvert sur la box.
À retenir
- Conteneur lancé avec un utilisateur ordinaire, et seul le dossier de données monté.
- Le tunnel privé rend secondaires les protections pensées pour l'exposition directe.
- La machine compte autant que le logiciel : mises à jour, SSH par clé, disque fiable.
Mini-exercice
Vérifiez avec « docker inspect vaultwarden » quels dossiers sont montés dans le conteneur et sous quel utilisateur il tourne. Comparez avec les recommandations de cette leçon.