En la actualidad, gestionar contraseñas de manera segura es una necesidad fundamental, dado el creciente número de servicios en línea que utilizamos a diario. Bitwarden es una de las soluciones más completas y accesibles para este desafío. Se trata de un gestor de contraseñas de código abierto que permite almacenar de forma segura contraseñas, notas, y otros datos sensibles en una bóveda encriptada.
Bitwarden ofrece una plataforma que prioriza la privacidad y seguridad, utilizando encriptación de extremo a extremo, lo que garantiza que solo tú puedas acceder a tu información. Además, su flexibilidad lo hace ideal tanto para usuarios individuales como para equipos de trabajo, ya que permite compartir de manera segura contraseñas y otros datos con otros miembros de tu organización.
En este tutorial, te explicaremos cómo instalar Bitwarden usando Docker, acompañado de un proxy inverso configurado con Nginx para mejorar la gestión de tráfico y seguridad. Utilizaremos Debian 12 como sistema operativo base, pero si prefieres Ubuntu, los pasos deberían ser prácticamente idénticos. Al final de este proceso, tendrás una instalación robusta y bien optimizada de Discourse, lista para ser utilizada en producción.
En su día, hicimos este tutorial que explica instalar Discourse:

Instalación de Bitwarden
El procedimiento para instalar Bitwarden se debe de seguir de la siguiente forma. Lo primero nos conectaremos al servidor por SSH.
Instalación de Docker
Para la instalación de Bitwarden, es necesario tener previamente instalado Docker, para instalar Docker en Debian 12:

Creación de usuario
Para ejecutar Bitwarden deberemos de crear un usuario especifico para que ejecute el contenedor de Docker.
adduser bitwardenConfiguramos contraseña al usuario:
passwd bitwardenAñadimos el usuario al grupo de Docker:
usermod -aG docker bitwardenCreamos el directorio de la instalación:
mkdir /opt/bitwardenConfiguramos los permisos de los directorios:
chmod -R 700 /opt/bitwarden
chown -R bitwarden:bitwarden /opt/bitwardenInstalación de Bitwarden
Lo primero será iniciar con nuestro usuario nuevo y acceder al directorio de la instalación:
su - bitwarden
cd /opt/bitwardenAhora con el usuario de bitwarden ejecutamos los siguientes comandos para instalar Bitwarden:
$ curl -s -L -o bitwarden.sh "https://func.bitwarden.com/api/dl/?app=self-host&platform=linux"Cambiamos permisos al ejecutable:
$ chmod +x bitwarden.shY lo ejecutamos:
$ ./bitwarden.sh installPara la instalación de Bitwarden es importante seguir lo que nos pide durante la instalación, pero debemos de indicar que no queremos configurar SSL ni certbot.
_ _ _ _
| |__ (_) |___ ____ _ _ __ __| | ___ _ __
| '_ \| | __\ \ /\ / / _` | '__/ _` |/ _ \ '_ \
| |_) | | |_ \ V V / (_| | | | (_| | __/ | | |
|_.__/|_|\__| \_/\_/ \__,_|_| \__,_|\___|_| |_|
Open source password management solutions
Copyright 2015-2024, 8bit Solutions LLC
https://bitwarden.com, https://github.com/bitwarden
===================================================
bitwarden.sh version 2024.8.0
Docker version 27.1.2, build d01f264
Docker Compose version v2.29.2Primero nos preguntará por el dominio:
(!) Enter the domain name for your Bitwarden instance (ex. bitwarden.example.com): password.voidnull.esLuego nos preguntará si queremos que Let's Encrypt genere los certificados, indicamos que no.
(!) Do you want to use Let's Encrypt to generate a free SSL certificate? (y/n): nIndicamos el nombre de la base de datos:
(!) Enter the database name for your Bitwarden instance (ex. vault): vaultpassDescargará las imágenes necesarias para Bitwareden y luego nos pedirá un código que debemos de adquirir en https://bitwarden.com/host:
(!) Enter your installation id (get at https://bitwarden.com/host): bab0b556-bd11XXXXXXXTambién tendremos que añadir la key que nos aparece en la web:
(!) Enter your installation key: XXXXXXXXEscogemos región (en mi caso Europa):
(!) Enter your region (US/EU) [US]: EULe decimos que no genere los certificados SSL:
(!) Do you have a SSL certificate to use? (y/N): n
Y tampoco que genere los certificados autofirmados:
(!) Do you want to generate a self-signed SSL certificate? (y/N): nReconfigurar la aplicación
Tenemos que modificar la configuración que se genera, para ello tendremos que editar el siguiente fichero:
nano /opt/bitwarden/bwdata/config.ymlHay que cambiar el parámetro url y poner nuestro subdominio o dominio:
url: password.voidnull.esY añadir la IP de localhost en el apartado de real_ips:
real_ips:
- 127.0.0.1También la configuración de los puertos para HTTP y HTTPS:
http_port: 8081
https_port: 8444Luego hay que editar el siguiente fichero /opt/bitwarden/bwdata/env/global.override.env y modificar el siguiente:
globalSettings__baseServiceUri__vault=http://password.voidnull.esTras estos cambios, tenemos que hacer un rebuild de la aplicación:
./bitwarden.sh rebuildCreación del certificado SSL
Creamos el certificado para luego añadirlo a la configuración de Nginx de más tarde, así que creamos el certificado con:
certbot certonlyConfiguración Nginx
Lo siguiente será instalar Nginx y configurar el servidor con la siguiente configuración que veréis a continuación.
apt install nginxLa configuración debe ser la siguiente:
server {
listen 80; listen [::]:80;
server_name password.voidnull.es;
server_tokens off;
return 301 https://$host$request_uri;
}
# Default server configuration
#
server {
# SSL configuration
#
server_tokens off;
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name password.voidnull.es;
ssl_certificate /etc/letsencrypt/live/password.voidnull.es/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/password.voidnull.es/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-EC>
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
}Con esta configuración, ya podemos reiniciar Nginx para aplicar la nueva configuración:
systemctl reload nginxY si todo ha ido bien, deberíamos de poder acceder al subdominio y acceder a Bitwarden.
Configurar el correo
Para poder crear una cuenta administradora, es necesario tener configurada el apartado de correo, para ello tendremos que editar /opt/bitwarden/bwdata/env/global.override.env y editaremos el siguiente contenido con nuestra configuración SMTP:
globalSettings__mail__replyToEmail=usuario@dominio.com
globalSettings__mail__smtp__host=mail.dominio.com
globalSettings__mail__smtp__port=PUERTO
globalSettings__mail__smtp__ssl=true
globalSettings__mail__smtp__username=usuario@dominio.com
globalSettings__mail__smtp__password=contraseñaseguraTambién, si queremos indicar que un usuario es el administrador:
adminSettings__admins=usuario@dominio.comTras estos cambios, tenemos que hacer un rebuild de la aplicación:
./bitwarden.sh rebuildMás sobre ./voidNull
- 📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "De la A a la Z: Los comandos de GNU/Linux"
- 💪 ¡Forma parte de la Comunidad de ./voidNull!
- 🤖 Disfruta de todos nuestros Cursos sobre Ansible, Proxmox, Home Assistant entre otros.
- 📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra Newsletter mensual.


Comentarios