Vaultwarden(bitwarden) » Historique » Révision 18
Révision 17 (johan.le.baut, 13/10/2022 13:50) → Révision 18/31 (johan.le.baut, 13/10/2022 14:00)
# Vaultwarden (bitwarden) {{toc}} Bitwarden est un gestionnaire de mot de passes. Vaultwarden est la version Rust de Biwarden: https://github.com/dani-garcia/vaultwarden Il est disponible sur: https://coffre.aquilenet.fr/ Pour l'admin: https://coffre.aquilenet.fr/admin Server: harpocrates ## Configuration ### Accès utilisateurs On autorise l'inscription à tous les utilisateurs ayant un mail en **@aquilenet.fr** Pour valider son inscription un utilisateur doit comfirmer via l'email reçu de vaultwarden. Il est possible d'inviter des gens extérieurs via la page d'admin uniquement. ### Accès admin On accède à la page d'admin via https://coffre.aquilenet.fr/admin Un token est demandé, il est visible sur Harpocrates dans /var/www/bitwarden/docker-compose.yaml On ajoute en sécurité supplémentaire une Basic Auth dans Nginx, le fichier de conf est: `/var/www/bitwarden/.htpasswd` Il contient les admins de Harpocrates avec le même hash password du /etc/shadow ## Installation Sur le serveur Harpocrates, on installe le service vaultwarden, avec un reverse proxy nginx. ### installation du service On peut le lancer via docker ou builder manuellement le service. En ce moment la méthode manuelle est utilisée. #### via docker et docker compose 1. Créer le dossier pour la data du service: ``` mkdir -p /srv/vw-data chown -R bitwarden:bitwarden /srv/vw-data ``` 2. On décrit le container docker à lancer via docker compose `cat /var/www/bitwarden/docker-compose.yaml` ```yaml version: '3' services: vaultwarden: image: vaultwarden/server:1.25.2 container_name: vaultwarden restart: always user: 1000:1000 # bitwarden user ports: - "127.0.0.1:8080:80" # port app - "127.0.0.1:3012:3012" # port web socket environment: ADMIN_TOKEN: <Admin token> # token to connect to admin WEBSOCKET_ENABLED: "true" # Enable WebSocket notifications. SIGNUPS_DOMAINS_WHITELIST: aquilenet.fr # on autorise seulement le @aquilenet.fr SIGNUPS_VERIFY: true INVITATIONS_ALLOWED: false # Les utilisateurs ne peuvent pas inviter des non inscrits (seulement admin) volumes: - /srv/vw-data:/data ``` Il est possible de configurer d'autre choses via la page admin 3. Une fois docker installé, pour démarrer en background: `cd /var/www/bitwarden/ && docker compose up -d` (4. Mise à jour) Ouvrir `/var/www/bitwarden/docker-compose.yaml` changer `image: vaultwarden/server:<nouvelle version>` Restart: ``` cd /var/www/bitwarden/ docker compose down # Service sera étteint docker compose up -d --force-recreate ``` #### Sans docker (actuel): Il faut compiler le service et le lancer dans un systemd: Suivre: https://gist.github.com/heinoldenhuis/f8164f73e5bff048e76fb4fff2e824e1 Pour le build du 'web-vault', on peut utiliser dans bw_web_builds la cmd `make docker-extract`, il créera le dossier `docker_builds/web-vault` (pas besoin d'installer NodeJs de cette manière). Install actuelle: - systemd file: `/etc/systemd/system/vaultwarden.service` - vaultwarden: - sources dir: /var/www/bitwarden/vaultwarden - binaire: /var/www/bitwarden/vaultwarden/target/release/vaultwarden - data dir: /var/www/bitwarden/vaultwarden/target/release/data - env file (config): /var/www/bitwarden/vaultwarden/target/release/.env - config: ``` WEB_VAULT_FOLDER=/var/www/bitwarden/bw_web_builds/docker_builds/web-vault WEBSOCKET_ENABLED=true SIGNUPS_VERIFY=true SIGNUPS_DOMAINS_WHITELIST=aquilenet.fr ADMIN_TOKEN=<admin token> INVITATIONS_ALLOWED=false ROCKET_ADDRESS=127.0.0.1 ``` - web-vault - sources dir: /var/www/bitwarden/bw_web_builds/ - build dir: /var/www/bitwarden/bw_web_builds/docker_builds/web-vault ### Reverse proxy Nginx Le site est configuré dans `/etc/nginx/sites-available/coffre.aquilenet.fr.conf` Les certificats sont géré par certbot (cf `sudo certbot certificates`) ### Config SMTP Il faut configurer une connexion SMTP pour que vaultwarden puisse envoyer des mails. Sur une VM vierge: - enlever exim4 - installer postfix - enlever params d'authent pour envoyer sur localhost:25 Conf vaultwarden SMTP: ``` "smtp_host": "127.0.0.1", "smtp_security": "off", "smtp_port": 25, "smtp_from": "vaultwarden@aquilenet.fr", "smtp_from_name": "Vaultwarden (Ne pas répondre)", "smtp_timeout": 15, "helo_name": "coffre.aquilenet.fr", "smtp_accept_invalid_certs": false, "smtp_accept_invalid_hostnames": false, ```