Projet

Général

Profil

Vaultwarden(bitwarden) » Historique » Version 14

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

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
Il est possible d'inviter des gens extérieurs via la page d'admin
27
28
### Accès admin
29
30
On accède à la page d'admin via https://coffre.aquilenet.fr/admin
31
32
Un token est demandé, il est visible sur Harpocrates dans /var/www/bitwarden/docker-compose.yaml
33
34
On ajoute en sécurité supplémentaire une Basic Auth dans Nginx, le fichier de conf est: `/var/www/bitwarden/.htpasswd`
35
Il contient les admins de Harpocrates avec le même hash password du /etc/shadow
36
37
## Installation
38
39 1 johan.le.baut
40 6 johan.le.baut
Sur le serveur Harpocrates, on installe le service vaultwarden, avec un reverse proxy nginx.
41 2 johan.le.baut
42 6 johan.le.baut
### installation du service
43 2 johan.le.baut
44 6 johan.le.baut
On peut le lancer via docker ou builder manuellement le service.
45 1 johan.le.baut
46 6 johan.le.baut
En ce moment la méthode manuelle est utilisée.
47 1 johan.le.baut
48 14 johan.le.baut
#### via docker et docker compose
49 6 johan.le.baut
50
1. Créer le dossier pour la data du service:
51
```
52
mkdir -p /srv/vw-data
53
chown -R bitwarden:bitwarden /srv/vw-data
54
```
55
56
2. On décrit le container docker à lancer via docker compose
57
58
59 2 johan.le.baut
`cat /var/www/bitwarden/docker-compose.yaml`
60 1 johan.le.baut
```yaml
61 2 johan.le.baut
version: '3'
62
63
services:
64
  vaultwarden:
65 6 johan.le.baut
    image: vaultwarden/server:1.25.2
66 2 johan.le.baut
    container_name: vaultwarden
67
    restart: always
68
    user: 1000:1000 # bitwarden user
69 4 johan.le.baut
    ports:
70
      - "127.0.0.1:8080:80"   # port app
71 2 johan.le.baut
      - "127.0.0.1:3012:3012" # port web socket
72 4 johan.le.baut
    environment:
73 2 johan.le.baut
      ADMIN_TOKEN: <Admin token> # token to connect to admin
74
      WEBSOCKET_ENABLED: "true"  # Enable WebSocket notifications.
75
      SIGNUPS_DOMAINS_WHITELIST: aquilenet.fr # on autorise seulement le @aquilenet.fr
76 4 johan.le.baut
      SIGNUPS_VERIFY: true
77 2 johan.le.baut
      INVITATIONS_ALLOWED: false  # Les utilisateurs ne peuvent pas inviter des non inscrits (seulement admin)
78 1 johan.le.baut
    volumes:
79 2 johan.le.baut
      - /srv/vw-data:/data
80 1 johan.le.baut
81
```
82
Il est possible de configurer d'autre choses via la page admin
83
84 6 johan.le.baut
3. Une fois docker installé, pour démarrer en background:
85 1 johan.le.baut
`cd /var/www/bitwarden/ && docker compose up -d`
86 6 johan.le.baut
87
(4. Mise à jour)
88
89
Ouvrir `/var/www/bitwarden/docker-compose.yaml`
90
91
changer `image: vaultwarden/server:<nouvelle version>`
92
93
94
Restart:
95
```
96
cd /var/www/bitwarden/
97
docker compose down # Service sera étteint
98
docker compose up -d --force-recreate
99
```
100
101 10 johan.le.baut
#### Sans docker (actuel):
102 6 johan.le.baut
103
Il faut compiler le service et le lancer dans un systemd:
104
105
Suivre: https://gist.github.com/heinoldenhuis/f8164f73e5bff048e76fb4fff2e824e1
106 2 johan.le.baut
107 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).
108
109 7 johan.le.baut
Install actuelle:
110
- systemd file: `/etc/systemd/system/vaultwarden.service`
111
- vaultwarden:
112
  - sources dir: /var/www/bitwarden/vaultwarden
113
  - binaire: /var/www/bitwarden/vaultwarden/target/release/vaultwarden
114
  - data dir: /var/www/bitwarden/vaultwarden/target/release/data
115
  - env file (config): /var/www/bitwarden/vaultwarden/target/release/.env
116 8 johan.le.baut
    - config: 
117 9 johan.le.baut
118 8 johan.le.baut
```
119 7 johan.le.baut
WEB_VAULT_FOLDER=/var/www/bitwarden/bw_web_builds/docker_builds/web-vault
120
WEBSOCKET_ENABLED=true
121
SIGNUPS_VERIFY=true
122
SIGNUPS_DOMAINS_WHITELIST=aquilenet.fr
123
ADMIN_TOKEN=<admin token>
124
INVITATIONS_ALLOWED=false
125
ROCKET_ADDRESS=127.0.0.1
126
```
127
- web-vault
128
  - sources dir: /var/www/bitwarden/bw_web_builds/
129
  - build dir: /var/www/bitwarden/bw_web_builds/docker_builds/web-vault
130
131 2 johan.le.baut
### Reverse proxy Nginx
132
133
Le site est configuré dans `/etc/nginx/sites-available/coffre.aquilenet.fr.conf`
134
135 1 johan.le.baut
Les certificats sont géré par certbot (cf `sudo certbot certificates`)
136 10 johan.le.baut
137
### Config SMTP
138
139
Il faut configurer une connexion SMTP pour que vaultwarden puisse envoyer des mails.