He trabajado muchos años con diferentes herramientas de gestión de contraseñas y animo a todos mis allegados a olvidarse de la «contraseña para todo» y sensibilizar de la importancia de tener claves potentes.
Este año he decido cambiar mi viejo gestor de contraseñas por uno más moderno y tras haber realizado un análisis, me he decantado por Vaultwarden, que es la alternativa abierta / open source de Bitwarden. De hecho, todos las apps cliente de Bitwarden son compatibles con Vaultwarden.
Vaultwarden es conocida, según su claim, como «El gestor de contraseñas creado por la comunidad«.
Al margen de las garantías y seguridad de este proyecto creado y promovido por Dani García, me ha gustado mucho su sencillez de uso y la facilidad de instalación.
En este artículo explico cómo instalar Vaultwarden en Linux utilizando tecnología Docker para facilitar la instalación, mantenimiento y seguridad del servicio.
Cómo instalar Vaultwarden en Ubuntu con Docker
Para empezar, la instalación es tremendamente simple. Pero eso sí, como buena política de Vaultwarden, necesitarás securizar la aplicación e instalarla bajo un proxy HTTPS.
En mi caso, utilizo el proxy inverso Nginx que manejo con el contenedor de Nginx Proxy Manager e integro la creación de certificados con Let’s Encrypt, que te permite hacerlo de manera grauita, es el propio Nginx Proxy Manager el que se encarga de la renovación automática de los mismos…
Una vez tenemos identificada la solución para este único requisito de ciberseguridad, que es el tema TLS, vamos con la instalación. Así de fácil, hacemos un pull del proyecto de docker y lo arrancamos.
docker pull vaultwarden/server:latest
Después de un ratito, cuando termine de descargarse las fuentes, podremos arrancarlo con el siguiente comando:
docker run -d --name vaultwarden -v /var/opt/contenedores/vaultwarden/:/data/ -v /var/opt/contenedores/vaultwarden_plantillas:/data/templates/email --restart unless-stopped -p 82:80 -e ADMIN_TOKEN=CONTRASEÑA_TOKEN_SUPERSEGURO -e TEMPLATES_FOLDER=/data/templates vaultwarden/server:latest
En este comando, vemos que le estamos dando de nombre vaultwarden al contenedor, ubicamos dos volúmenes para persistir sus datos y también algunas variables de entorno.
El volumen /data/
es donde vaultwarden almacena toda la información que necesitamos persistir (bases de datos, por ejemplo).
El volumen /data/templates/email
es prescindible. Sirve para poner las plantillas de los correos en castellano o en cualquier otro idioma. Normalmente la verás como /data/templates pero dado que el idioma en Castellano no trae la carpeta «email», lo pongo así.
La variable de entorno TEMPLATES_FOLDER
no estoy seguro de si es necesaria, pero por si acaso, la ponemos. Ahí especificamos dónde están los templates que se utilizan para enviar los correos.
La variable de entorno ADMIN_TOKEN
sirve para acceder al Panel de administración, desde donde podremos activar o desactivar funcionalidades, configurar el SMTP, etc.
Cómo acceder al Panel de administración
Vaultwarden viene con un panel de administración que te deja hacer alguna que otra cosa como configurar el servidor de correo de SMTP y hacer cierta gestión de usuarios, así como revocar accesos, invitar o incluso bloquear la creación de nuevos usuarios.
Pero lo más importante es que configuremos el hostname de Vaultwarden para que los correos envíen enlaces correctos a los clientes.
Para acceder al panel de administración, tendrás que configurar la variable de entorno ADMIN_TOKEN
en el docker run. El contenido que configuremos en dicha variable será la clave de acceso para el panel de administración, que está en la URL: https://mivaultwarden.com/admin
Cómo cambiar las plantillas de los correos de Vaultwarden al Castellano
Vaultwarden no se puede configurar para que envíe los correos en castellano con un click. Sus correos se mandan en base a unas plantillas que sólo están en inglés en una instalación limpia. Pero el propio Dani García ya nos explica que podemos descargar plantillas de terceros que vengan con las traducciones al idioma que deseemos.
Descargamos las plantillas en castellano, que ha hecho una tercera persona, lo hacemos en el directorio que queramos:
cd /var/opt/contenedores/
Finalmente, clonamos el proyecto de Javier Varez de github con todos sus templates:
git clone https://github.com/javier-varez/vaultwarden-lang-es.git vaultwarden_plantillas
Aquí le hemos especificado a git clone que ponga los resultados en el directorio vaultwarden_plantillas.
Cuidado, es importante que dentro de la carpeta de vaultwarden_plantillas exista un directorio email
. Como en el caso del castellano no existe, configuramos el volumen en el docker run
con /data/templates/email
.
Y ya está, con esto ya tendremos Vaultwarden en funcionamiento. Espero que te haya servido, tienes la documentación oficial de Vaultwarden en la página de git de Dani García.