Instalando Bitwarden
En este post veremos cómo sencillamente podemos desplegar un gestor de contraseñas open source en red para nuestra empresa, casa… La idea es tener un sitio web donde centralicemos y tengamos las contraseñas de cualquier sitio protegidas.
Tendremos Bitwarden corriendo en un contenedor y prestando el servicio de almacenar e indexar nuestros credenciales. Permitiendo el acceso mediante distintos usuarios y la posibilidad de acceso o sincronización con dispositivos móviles, o extensiones en el navegador para auto-completar los campos de credenciales. Usuarios, contraseñas, URLs, Tokens… guardaremos lo que cada uno consideremos, es un lugar seguro. Así que ya no tenemos excusas de usar Exceles para guardar información sensible.
¡Empezamos! Necesitaremos mínimo 4GB RAM y este post estará basado en un Ubuntu Server 21.04 actualizadito y con dirección IP estática, DNS configurado, NTP… Lo primero, tener Docker, si no lo tenemos, lo instalamos:
sudo apt install curl apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-compose -y sudo systemctl status docker sudo systemctl enable docker docker --version docker-compose --version
Lo siguiente será ir a https://bitwarden.com/host/ y pedir los códigos de instalación en local. Nos los mandarán al momento por email.
Una vez tengamos el Installation Id y el Installation Key podemos comenzar! Con este comando nos descargaremos y comenzamos la instalación de Bitwarden.
curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh chmod +x bitwarden.sh sudo ./bitwarden.sh install
Y deberemos cumplimentar las preguntas que nos hará el asistente, como será indicar el FQDN que queramos para acceder al sitio, además si queremos usar Lets Encrypt para generar el certificado, o tenemos uno propio o que nos genere uno autofirmado; así como los IDs que nos llegaron por correo:
_ _ _ _ | |__ (_) |___ ____ _ _ __ __| | ___ _ __ | '_ \| | __\ \ /\ / / _` | '__/ _` |/ _ \ '_ \ | |_) | | |_ \ V V / (_| | | | (_| | __/ | | | |_.__/|_|\__| \_/\_/ \__,_|_| \__,_|\___|_| |_| Open source password management solutions Copyright 2015-2021, 8bit Solutions LLC https://bitwarden.com, https://github.com/bitwarden =================================================== bitwarden.sh version 1.42.3 Docker version 20.10.8, build 3967b7d docker-compose version 1.25.0, build unknown (!) Enter the domain name for your Bitwarden instance (ex. bitwarden.example.com): FQDN_BITWARDEN.DOMINIO.ESO (!) Do you want to use Let's Encrypt to generate a free SSL certificate? (y/n): n (!) Enter the database name for your Bitwarden instance (ex. vault): vault 1.42.3: Pulling from bitwarden/setup e1acddbe380c: Pull complete dd03aafcc609: Pull complete 42dd948b1ee9: Pull complete babf609d748c: Pull complete 62b1be457df2: Pull complete 6f1f9ec9013b: Pull complete 8e3a7c30ce9a: Pull complete 23669c1f9b29: Pull complete 449aeb561efd: Pull complete 2c2716f2153f: Pull complete Digest: sha256:a85988defed50c28dcd477c10196df9282e0f46c1Ddfb5dCf5E78833feO2f81e Status: Downloaded newer image for bitwarden/setup:1.42.3 docker.io/bitwarden/setup:1.42.3 (!) Enter your installation id (get at https://bitwarden.com/host): XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX (!) Enter your installation key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX (!) Do you have a SSL certificate to use? (y/n): n (!) Do you want to generate a self-signed SSL certificate? (y/n): y Generating self signed SSL certificate. Generating a RSA private key ..............................................................++++ ..........................................................++++ writing new private key to '/bitwarden/ssl/self/FQDN_BITWARDEN.DOMINIO.ESO/private.key' ----- Generating key for IdentityServer. Generating a RSA private key .++++ ........................................++++ writing new private key to 'identity.key' ----- !!!!!!!!!! WARNING !!!!!!!!!! You are using an untrusted SSL certificate. This certificate will not be trusted by Bitwarden client applications. You must add this certificate to the trusted store on each device or else you will receive errors when trying to connect to your installation. Building nginx config. Building docker environment files. Building docker environment override files. Building FIDO U2F app id. Building Asset Links For Fido2. Building docker-compose.yml. Installation complete If you need to make additional configuration changes, you can modify the settings in `./bwdata/config.yml` and then run: `./bitwarden.sh rebuild` or `./bitwarden.sh update` Next steps, run: `./bitwarden.sh start`
El fichero de configuración es ‘./bwdata/config.yml’ y nos vendrá bien si necesitamos modificar los certificados, FQDN, puertos… Hablando de certificados, si vamos a poner nuestro propio certificado, tendremos en cuenta que el fichero crt debe ser completo, el certificado además de toda la cadena de las entidades intermedias y la raíz. Tengo una nota en la documentación que tuve que modificar el fichero ‘./bwdata/env/global.override.env’ y revisar que en ‘globalSettings__sqlServer__connectionString’ no se usen comillas simples, si no dobles al establecer el valor. Entiendo que será un bug que ya esté corregido.
Total, que ya podremos arrancar Bitwarden, si todo lo anterior lo cumplimos irá bien, arrancamos con ‘sudo ./bitwarden.sh start’:
sudo ./bitwarden.sh start _ _ _ _ | |__ (_) |___ ____ _ _ __ __| | ___ _ __ | '_ \| | __\ \ /\ / / _` | '__/ _` |/ _ \ '_ \ | |_) | | |_ \ V V / (_| | | | (_| | __/ | | | |_.__/|_|\__| \_/\_/ \__,_|_| \__,_|\___|_| |_| Open source password management solutions Copyright 2015-2021, 8bit Solutions LLC https://bitwarden.com, https://github.com/bitwarden =================================================== bitwarden.sh version 1.42.3 Docker version 20.10.8, build 3967b7d docker-compose version 1.25.0, build unknown Pulling mssql ... done Pulling web ... done Pulling attachments ... done Pulling api ... done Pulling identity ... done Pulling sso ... done Pulling admin ... done Pulling portal ... done Pulling icons ... done Pulling notifications ... done Pulling events ... done Pulling nginx ... done Creating directory /home/openservices/bwdata/core Creating directory /home/openservices/bwdata/core/attachments Creating directory /home/openservices/bwdata/logs Creating directory /home/openservices/bwdata/logs/admin Creating directory /home/openservices/bwdata/logs/api Creating directory /home/openservices/bwdata/logs/events Creating directory /home/openservices/bwdata/logs/icons Creating directory /home/openservices/bwdata/logs/identity Creating directory /home/openservices/bwdata/logs/mssql Creating directory /home/openservices/bwdata/logs/nginx Creating directory /home/openservices/bwdata/logs/notifications Creating directory /home/openservices/bwdata/logs/sso Creating directory /home/openservices/bwdata/logs/portal Creating directory /home/openservices/bwdata/mssql/backups Creating directory /home/openservices/bwdata/mssql/data Creating network "docker_default" with the default driver Creating network "docker_public" with the default driver Creating bitwarden-sso ... done Creating bitwarden-notifications ... done Creating bitwarden-api ... done Creating bitwarden-events ... done Creating bitwarden-icons ... done Creating bitwarden-attachments ... done Creating bitwarden-identity ... done Creating bitwarden-web ... done Creating bitwarden-mssql ... done Creating bitwarden-admin ... done Creating bitwarden-portal ... done Creating bitwarden-nginx ... done 1.42.3: Pulling from bitwarden/setup Digest: sha256:a85198defed5fce8dcd477c1b1d6df9282e0e46ce8dfb5d0f5378803fe02fe1e Status: Image is up to date for bitwarden/setup:1.42.3 docker.io/bitwarden/setup:1.42.3 Bitwarden is up and running! =================================================== visit https://FQDN_BITWARDEN.DOMINIO.ESO to update, run `./bitwarden.sh updateself` and then `./bitwarden.sh update`
Ya nos indica que podemos arrancar un navegador y probar Bitwarden!!! Pero antes, recuerda, que debemos mantener actualizado Bitwarden de forma periódica y lo haremos mediante:
./bitwarden.sh updateself ./bitwarden.sh update
Esta sería la interfaz predeterminada, donde por primera vez tendremos que darnos de alta desde “Crear cuenta”,
Cumplimentamos los datos para crear nuestro usuario, tendremos que validar el mail.
Y la verdad que no tiene mucho misterio, veréis que es sencilla de usar, que podréis organizar por jerarquía de carpetas, crear elementos de tipo entradas, tarjetas, identidades, compartir notas seguras con terceros…
Y si os ponéis la app móvil para iPhone o Android y conectando contra nuestro servidor de Bitwarden podremos loguearnos de igual manera, acceder de manera rápida y cacheada a los credenciales. Y además de eso, ir guardando los credenciales que nos pida el móvil para no volver a tener que teclearlos nunca más. Bitwarden nos los recordará previo escaneo de la huella y los autocompletará (por ejemplo, entre otras tantas opciones).
Y lo mismo si usamos navegador Chrome o Firefox, tendremos una extensión que se conectará contra Bitwarden y lo mismo, nos autocompletará las credenciales de cualquier sitio web, o almacenarlas directamente al crear cuentas en sitios varios…
Total, que una chulada, no? Imagino que muchos lo conoceréis, tras varios años de uso es el que más me convenció ya que cumplía con las necesidades y además tenía ese valor diferencial al ser modelo SaaS, acceso web, sin cliente, seguro… obviamente esto no lo publicaremos en internet 🙂 pero sí es ideal para centralizar todas las contraseñas de cualquier empleado/usuario de nuestras empresas/casas.
Y como siempre, agradecer este tipo de proyectos, ojalá os haya parecido interesante y nada, gracias y seguir bien por favor. Abrazos a todo el mundo!