Projet

Général

Profil

Vaultwarden(bitwarden) » Historique » Version 15

johan.le.baut, 13/10/2022 10:51

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.