Tabla de Contenidos
vaultwarden
Gestor de contraseñas de código abierto.
Las notas que aquí aparecen se centran en vaultwarden, una implementación de la API de servidor de Bitwarden escrito en Rust, compatible con los clientes oficiales de Bitwarden y con muchísimo menos consumo de recursos para poder instalar nuestro propio servidor.
Clientes
Hay clientes oficiales para:
- Linux
- Windows
- macOS
- Android
- iOS
Extensiones de navegador
Instalación
Docker
version: "3.4" services: app: image: vaultwarden/server:latest container_name: vaultwarden environment: - VIRTUAL_HOST=vault.dominio.com # obligatorio para nginx-proxy - LETSENCRYPT_HOST=vault.dominio.com # obligatorio para letsencrypt proxy - LETSENCRYPT_EMAIL=pepito@dominio.com # obligatorio para letsencrypt proxy volumes: - ./data:/data
La instalación por defecto utiliza SQLite como motor de base de datos. Para el ejemplo anterior, la información está accesible desde el directorio data.
Navegadores como Chrome o Firefox, no permite el uso de APIs de Web Crypto en contextos inseguros, así que hay que habilitar el acceso a Bitwarden mediante HTTPS. En la documentación oficial ponen unos ejemplos.
Configuración
La configuración se puede realizar mediante variables de entorno o a través de la página de administración. En el segundo método, se crea un fichero config.json que tiene prioridad frente a lo definido mediante variables de entorno. Esto es importante tenerlo en cuenta: si existe, config.json está por encima de las variables de entorno.
Deshabilitar registro
Por defecto, vaultwarden permite crear cuentas a cualquiera. Si queremos deshabilitar el registro automático, hay que indicarlo con la siguiente variable de entorno:
SIGNUPS_ALLOWED=false
Por ejemplo, en un despliegue con Docker:
version: "3.4" services: app: image: vaultwarden/server:latest container_name: bitwarden environment: - SIGNUPS_ALLOWED=false volumes: - ./data:/data
Aunque lo desactivemos, el botón de Crear cuenta seguirá apareciendo, pero el proceso terminará en error, es decir, que no será posible la creación de la cuenta.
A través del fichero config.json sería:
"signups_allowed": false
Administración
Es posible acceder a un panel de administración donde poder gestionar las opciones de Bitwarden, ver los usuarios registrados, enviar invitaciones… Para ello hay que añadir la variable de entorno ADMIN_TOKEN y asociarla con una valor difícil de averiguar:
version: "3.4" services: app: image: bitwardenrs/server:latest container_name: bitwarden environment: - ADMIN_TOKEN=una_ristra_de_caracteres_que_no_sepa_nadie_facilmente volumes: - ./data:/data
Este token es la contraseña que se usará para acceder a la sección de administración, al subdirectorio /admin: https://midominio.com/admin
Cuando hagamos algún cambio en la sección de administración, se generará un fichero config.json en nuestro archivo de datos (./data en los ejemplos)
Almacenamiento
Base de datos
La imagen de docker de vaultwarden tiene soporte de SQLite, MySQL y PostgreSQL. El soporte de SQLite es el más usado y probado, así que es el que recomiendan para la mayoría de los usuarios.
Al utilizar SQLite, el directorio /data tendrá la siguiente estructura:
data ├── attachments # Ficheros adjuntos │ └── <uuid> │ └── <random_id> ├── config.json # Configuración de la página de administración (solo si está habilitada) ├── db.sqlite3 # Fichero principal de SQLite. ├── db.sqlite3-shm # Fichero de memoria compartida de SQLite (no siempre está). ├── db.sqlite3-wal # Log de "write-ahead" de SQLite (no siempre está). ├── icon_cache # Caché de favicons. │ ├── <domain>.png │ ├── example.com.png │ ├── example.net.png │ └── example.org.png ├── rsa_key.der # Ficheros `rsa_key.*` que se utilizan para firmar los tokens de autenticación. ├── rsa_key.pem └── rsa_key.pub.der
Copia de seguridad
Para hacer una copia de la base de datos si usamos la modalidad con SQLite:
sqlite3 data/db.sqlite3 ".backup '/ruta/copias_seguridad/db-$(date '+%Y%m%d-%H%M').sqlite3'"
El anterior comando generará un fichero db-20211210-2230.sqlite3 si lo ejecutásemos el 10/12/2021 a las 22:30.
El resto de ficheros/directorios que tenemos que copiar:
attachments/: obligatorio.rsa_key*: recomendado.icon_cache/: opcional.
Para restaurar una instalación de vaultwarden, bastará con detener el servidor, copiar los ficheros en la ruta de data y listo.
Uso
Carpetas
Una de las formas de organizar las contraseñas es por carpetas.
Para crear subcarpetas (carpetas de otras carpetas) tenemos que crear una nueva con el nombre de la carpeta padre, una barra y el nombre de la subcarpeta. Por ejemplo, si tenemos una carpeta llamada Trabajo y queremos crear una dentro de ella llamada E-mail, tendríamos que crear una carpeta con el nombre Trabajo/E-mail
