Vaultwarden(bitwarden) » Historique » Version 18
johan.le.baut, 13/10/2022 14:00
1 | 1 | johan.le.baut | # Vaultwarden (bitwarden) |
---|---|---|---|
2 | 2 | johan.le.baut | |
3 | 12 | johan.le.baut | {{toc}} |
4 | 11 | johan.le.baut | |
5 | |||
6 | 5 | johan.le.baut | Bitwarden est un gestionnaire de mot de passes. |
7 | 2 | johan.le.baut | |
8 | 5 | johan.le.baut | Vaultwarden est la version Rust de Biwarden: https://github.com/dani-garcia/vaultwarden |
9 | 2 | johan.le.baut | |
10 | Il est disponible sur: https://coffre.aquilenet.fr/ |
||
11 | |||
12 | Pour l'admin: https://coffre.aquilenet.fr/admin |
||
13 | |||
14 | Server: harpocrates |
||
15 | 11 | johan.le.baut | |
16 | |||
17 | |||
18 | 2 | johan.le.baut | |
19 | |||
20 | ## Configuration |
||
21 | |||
22 | ### Accès utilisateurs |
||
23 | |||
24 | 5 | johan.le.baut | On autorise l'inscription à tous les utilisateurs ayant un mail en **@aquilenet.fr** |
25 | 2 | johan.le.baut | |
26 | 15 | johan.le.baut | Pour valider son inscription un utilisateur doit comfirmer via l'email reçu de vaultwarden. |
27 | Il est possible d'inviter des gens extérieurs via la page d'admin uniquement. |
||
28 | 2 | johan.le.baut | |
29 | ### Accès admin |
||
30 | |||
31 | On accède à la page d'admin via https://coffre.aquilenet.fr/admin |
||
32 | |||
33 | Un token est demandé, il est visible sur Harpocrates dans /var/www/bitwarden/docker-compose.yaml |
||
34 | |||
35 | On ajoute en sécurité supplémentaire une Basic Auth dans Nginx, le fichier de conf est: `/var/www/bitwarden/.htpasswd` |
||
36 | Il contient les admins de Harpocrates avec le même hash password du /etc/shadow |
||
37 | |||
38 | ## Installation |
||
39 | |||
40 | 1 | johan.le.baut | |
41 | 6 | johan.le.baut | Sur le serveur Harpocrates, on installe le service vaultwarden, avec un reverse proxy nginx. |
42 | 2 | johan.le.baut | |
43 | 6 | johan.le.baut | ### installation du service |
44 | 2 | johan.le.baut | |
45 | 6 | johan.le.baut | On peut le lancer via docker ou builder manuellement le service. |
46 | 1 | johan.le.baut | |
47 | 6 | johan.le.baut | En ce moment la méthode manuelle est utilisée. |
48 | 1 | johan.le.baut | |
49 | 14 | johan.le.baut | #### via docker et docker compose |
50 | 6 | johan.le.baut | |
51 | 1. Créer le dossier pour la data du service: |
||
52 | ``` |
||
53 | mkdir -p /srv/vw-data |
||
54 | chown -R bitwarden:bitwarden /srv/vw-data |
||
55 | ``` |
||
56 | |||
57 | 2. On décrit le container docker à lancer via docker compose |
||
58 | |||
59 | |||
60 | 2 | johan.le.baut | `cat /var/www/bitwarden/docker-compose.yaml` |
61 | 1 | johan.le.baut | ```yaml |
62 | 2 | johan.le.baut | version: '3' |
63 | |||
64 | services: |
||
65 | vaultwarden: |
||
66 | 6 | johan.le.baut | image: vaultwarden/server:1.25.2 |
67 | 2 | johan.le.baut | container_name: vaultwarden |
68 | restart: always |
||
69 | user: 1000:1000 # bitwarden user |
||
70 | 4 | johan.le.baut | ports: |
71 | - "127.0.0.1:8080:80" # port app |
||
72 | 2 | johan.le.baut | - "127.0.0.1:3012:3012" # port web socket |
73 | 4 | johan.le.baut | environment: |
74 | 2 | johan.le.baut | ADMIN_TOKEN: <Admin token> # token to connect to admin |
75 | WEBSOCKET_ENABLED: "true" # Enable WebSocket notifications. |
||
76 | SIGNUPS_DOMAINS_WHITELIST: aquilenet.fr # on autorise seulement le @aquilenet.fr |
||
77 | 4 | johan.le.baut | SIGNUPS_VERIFY: true |
78 | 2 | johan.le.baut | INVITATIONS_ALLOWED: false # Les utilisateurs ne peuvent pas inviter des non inscrits (seulement admin) |
79 | 1 | johan.le.baut | volumes: |
80 | 2 | johan.le.baut | - /srv/vw-data:/data |
81 | 1 | johan.le.baut | |
82 | ``` |
||
83 | Il est possible de configurer d'autre choses via la page admin |
||
84 | |||
85 | 6 | johan.le.baut | 3. Une fois docker installé, pour démarrer en background: |
86 | 1 | johan.le.baut | `cd /var/www/bitwarden/ && docker compose up -d` |
87 | 6 | johan.le.baut | |
88 | (4. Mise à jour) |
||
89 | |||
90 | Ouvrir `/var/www/bitwarden/docker-compose.yaml` |
||
91 | |||
92 | changer `image: vaultwarden/server:<nouvelle version>` |
||
93 | |||
94 | |||
95 | Restart: |
||
96 | ``` |
||
97 | cd /var/www/bitwarden/ |
||
98 | docker compose down # Service sera étteint |
||
99 | docker compose up -d --force-recreate |
||
100 | ``` |
||
101 | |||
102 | 10 | johan.le.baut | #### Sans docker (actuel): |
103 | 6 | johan.le.baut | |
104 | Il faut compiler le service et le lancer dans un systemd: |
||
105 | |||
106 | Suivre: https://gist.github.com/heinoldenhuis/f8164f73e5bff048e76fb4fff2e824e1 |
||
107 | 2 | johan.le.baut | |
108 | 13 | johan.le.baut | 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). |
109 | |||
110 | 7 | johan.le.baut | Install actuelle: |
111 | - systemd file: `/etc/systemd/system/vaultwarden.service` |
||
112 | - vaultwarden: |
||
113 | - sources dir: /var/www/bitwarden/vaultwarden |
||
114 | - binaire: /var/www/bitwarden/vaultwarden/target/release/vaultwarden |
||
115 | - data dir: /var/www/bitwarden/vaultwarden/target/release/data |
||
116 | - env file (config): /var/www/bitwarden/vaultwarden/target/release/.env |
||
117 | 8 | johan.le.baut | - config: |
118 | 9 | johan.le.baut | |
119 | 8 | johan.le.baut | ``` |
120 | 7 | johan.le.baut | WEB_VAULT_FOLDER=/var/www/bitwarden/bw_web_builds/docker_builds/web-vault |
121 | WEBSOCKET_ENABLED=true |
||
122 | SIGNUPS_VERIFY=true |
||
123 | SIGNUPS_DOMAINS_WHITELIST=aquilenet.fr |
||
124 | ADMIN_TOKEN=<admin token> |
||
125 | INVITATIONS_ALLOWED=false |
||
126 | ROCKET_ADDRESS=127.0.0.1 |
||
127 | ``` |
||
128 | - web-vault |
||
129 | - sources dir: /var/www/bitwarden/bw_web_builds/ |
||
130 | - build dir: /var/www/bitwarden/bw_web_builds/docker_builds/web-vault |
||
131 | |||
132 | 2 | johan.le.baut | ### Reverse proxy Nginx |
133 | |||
134 | Le site est configuré dans `/etc/nginx/sites-available/coffre.aquilenet.fr.conf` |
||
135 | |||
136 | 1 | johan.le.baut | Les certificats sont géré par certbot (cf `sudo certbot certificates`) |
137 | 10 | johan.le.baut | |
138 | ### Config SMTP |
||
139 | |||
140 | Il faut configurer une connexion SMTP pour que vaultwarden puisse envoyer des mails. |
||
141 | 16 | johan.le.baut | |
142 | 17 | johan.le.baut | Sur une VM vierge: |
143 | - enlever exim4 |
||
144 | - installer postfix |
||
145 | - enlever params d'authent pour envoyer sur localhost:25 |
||
146 | 18 | johan.le.baut | |
147 | Conf vaultwarden SMTP: |
||
148 | ``` |
||
149 | "smtp_host": "127.0.0.1", |
||
150 | "smtp_security": "off", |
||
151 | "smtp_port": 25, |
||
152 | "smtp_from": "vaultwarden@aquilenet.fr", |
||
153 | "smtp_from_name": "Vaultwarden (Ne pas répondre)", |
||
154 | "smtp_timeout": 15, |
||
155 | "helo_name": "coffre.aquilenet.fr", |
||
156 | "smtp_accept_invalid_certs": false, |
||
157 | "smtp_accept_invalid_hostnames": false, |
||
158 | ``` |