Administra tus contraseñas con Bitwarden y Podman

Es posible que haya encontrado algunos correos electrónicos el año pasado tratando de venderle un administrador de contraseñas. Algunos ejemplos son Ultimo pase , 1 Contraseña o Dashlane . Un administrador de contraseñas elimina la carga de recordar las contraseñas de todos sus sitios web. Ya no necesita volver a usar contraseñas o usar contraseñas fáciles de recordar. En cambio, solo necesita recordar una sola contraseña que puede desbloquear todas sus otras contraseñas por usted.

Esto puede hacerlo más seguro al tener una contraseña segura en lugar de muchas contraseñas débiles. También puede sincronizar sus contraseñas entre dispositivos si tiene un administrador de contraseñas basado en la nube como LastPass, 1Password o Dashlane. Desafortunadamente, ninguno de estos productos es de código abierto. Afortunadamente, hay alternativas de código abierto disponibles.

Administradores de contraseñas de código abierto

Estas alternativas incluyen Bitwarden, MenosPasar o KeePass . Bitwarden es un administrador de contraseñas de código abierto que almacena todas sus contraseñas encriptadas en el servidor, que funciona de la misma manera que LastPass, 1Password o Dashlane. LessPass es un poco diferente ya que se enfoca en ser un administrador de contraseñas sin estado. Esto significa que deriva contraseñas basadas en una contraseña maestra, el sitio web y su nombre de usuario en lugar de almacenar las contraseñas encriptadas. En el otro lado del espectro está KeePass, un administrador de contraseñas basado en archivos con mucha flexibilidad con sus complementos y aplicaciones.

Cada una de estas tres aplicaciones tiene sus propias desventajas. Bitwarden almacena todo en un solo lugar y está expuesto a la web a través de su API y la interfaz del sitio web. LessPass no puede almacenar contraseñas personalizadas ya que no tiene estado, por lo que debe usar sus contraseñas derivadas. KeePass, un administrador de contraseñas basado en archivos, no puede sincronizarse fácilmente entre dispositivos. Puede utilizar un proveedor de almacenamiento en la nube junto con WebDAV para evitar esto, pero muchos clientes no lo admiten y es posible que tenga conflictos de archivos si los dispositivos no se sincronizan correctamente.

Este artículo se centra en Bitwarden.

Ejecutar una implementación no oficial de Bitwarden

Hay una implementación comunitaria del servidor y su API llamada bitwarden_rs . Esta implementación es completamente de código abierto, ya que puede usar SQLite o MariaDB/MySQL, en lugar del Microsoft SQL Server patentado que usa el servidor oficial.

Es importante reconocer que existen algunas diferencias entre la versión oficial y la no oficial. por ejemplo, el servidor oficial ha sido auditado por un tercero , mientras que el no oficial no lo ha hecho. Cuando se trata de implementaciones, la versión no oficial carece confirmación por correo electrónico y soporte para autenticación de dos factores usando Duo o códigos de correo electrónico .

Comencemos a ejecutar el servidor con SELinux en mente. Siguiendo la documentación de bitwarden_rs, puede construir un comando Podman de la siguiente manera:

                      $ podman run -d  
                      
--userns=keep-id
--name bitwarden
-e SIGNUPS_ALLOWED=false
-e ROCKET_PORT=8080
-v /home/egustavs/Bitwarden/bw-data/:/data/:Z
-p 8080:8080
bitwardenrs/server:latest

Esto descarga la imagen bitwarden_rs y la ejecuta en un contenedor de usuario bajo el espacio de nombres del usuario. Utiliza un puerto por encima de 1024 para que los usuarios que no sean root puedan enlazarlo. También cambia el contexto SELinux del volumen con :Z para evitar problemas de permisos con lectura y escritura en /data.

Si aloja esto bajo un dominio, se recomienda poner este servidor bajo un proxy inverso con Apache o Nginx. De esa forma, puede usar los puertos 80 y 443 que apuntan al puerto 8080 del contenedor sin ejecutar el contenedor como root.

Corriendo bajo systemd

Ahora que Bitwarden se está ejecutando, probablemente desee mantenerlo así. A continuación, cree un archivo de unidad que mantenga el contenedor en ejecución, se reinicie automáticamente si no responde y comience a ejecutarse después de reiniciar el sistema. Cree este archivo como /etc/systemd/system/bitwarden.service:

                      [Unit]
Description=Bitwarden Podman container
Wants=syslog.service

[Service]
User=egustavs
Group=egustavs
TimeoutStartSec=0
ExecStart=/usr/bin/podman start 'bitwarden'
ExecStop=-/usr/bin/podman stop -t 10 'bitwarden'
Restart=always
RestartSec=30s
KillMode=none

[Install]
WantedBy=multi-user.target
                    

Ahora, habilítelo e inícielo usando sudo:

                      $ 
                      
                        sudo systemctl enable bitwarden.service && sudo systemctl start bitwarden.service
                      
                      
$ systemctl status bitwarden.service
bitwarden.service - Bitwarden Podman container
Loaded: loaded (/etc/systemd/system/bitwarden.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2019-07-09 20:23:16 UTC; 1 day 14h ago
Main PID: 14861 (podman)
Tasks: 44 (limit: 4696)
Memory: 463.4M

¡Éxito! Bitwarden ahora se ejecuta en el sistema y seguirá ejecutándose.

Agregando LetsEncrypt

Se recomienda enfáticamente ejecutar su instancia de Bitwarden a través de un canal encriptado con algo como LetsEncrypt si tiene un dominio. Certbot es un bot que crea certificados LetsEncrypt para nosotros, y tienen un guía para hacer esto a través de Fedora .

Después de generar un certificado, puede seguir las bitwarden_rs guía sobre HTTPS . Solo recuerde agregar :Z al volumen de LetsEncrypt para manejar los permisos sin cambiar el puerto.

Foto por CMDR Shane en Unsplash .

Related Posts