Vaultwarden: La alternativa de código abierto a Bitwarden para su instalación local

Vaultwarden es una implementación de servidor ligera de la API de Bitwarden Client desarrollada en Rust.

Introducción: ¿Qué es Vaultwarden?

Esta alternativa de código abierto está diseñada específicamente para escenarios de auto-alojamiento donde los servidores oficiales de Bitwarden serían demasiado intensivos en recursos. Anteriormente conocido como «bitwarden_rs», Vaultwarden ofrece una compatibilidad casi completa con todos los clientes oficiales de Bitwarden.

Lo especial de Vaultwarden es que es completamente gratuito, requiere considerablemente menos recursos del sistema que el servidor oficial de Bitwarden y aún admite todas las características importantes. Es la solución perfecta para personas conocedoras de la tecnología, familias y pequeñas empresas que desean mantener sus contraseñas completamente bajo su propio control.

Métodos alternativos de instalación

Además de la instalación de Docker descrita en detalle en este artículo, hay varias otras opciones de instalación para Vaultwarden:

  • Binarios preconstruidos: Binarios pre-construidos para varios sistemas operativos
  • Servicio sistemático: Servicio directo del sistema sin contenedores
  • Paquetes de terceros: Paquetes comunitarios para diferentes distribuciones (AUR, Homebrew, etc.)
  • Creación de código fuente: Recopilación manual desde el código fuente de Rust
  • Alternativas de contenedores: Podman como alternativa Docker
  • Despliegues en la nube: Kubernetes, Docker Swarm o soluciones específicas para la nube

En este artículo, nos centraremos en la instalación basada en Docker, ya que es la más fácil de implementar y disponible en todas las plataformas. Para otros métodos de instalación encontrará Instrucciones detalladas en el Wiki oficial de Vaultwarden.

Beneficios de Vaultwarden

Ventajas técnicas

  • Bajo consumo de recursos: Significativamente menos consumo de RAM y CPU que el servidor oficial de Bitwarden
  • Compatibilidad total: Funciona con todos los clientes oficiales de Bitwarden (extensiones de navegador, aplicaciones móviles, aplicaciones de escritorio)
  • Desarrollo activo: Actualizaciones periódicas y un fuerte apoyo de la comunidad
  • Basado en óxido: Alto rendimiento y seguridad de almacenamiento
  • Listo para Docker: Fácil contenedorización e implementación

funcionalidad

  • Bóveda personal (bóveda personal)
  • Enviar (Intercambio seguro de archivos)
  • Anexos
  • Iconos del sitio web
  • Clave de API personal
  • organizaciones
  • Autenticación de dos factores
  • Acceso de emergencia
  • Backend del administrador

Protección y seguridad de los datos

  • Control de datos completo: Todos los datos permanecen en sus propios servidores
  • Sin dependencia de terceros proveedores: No hay riesgo de fallas de servicio o fugas de datos de proveedores externos
  • Código abierto: Código transparente que puede ser verificado por la comunidad
  • Respetuoso del cumplimiento: Ideal para empresas con estrictos requisitos de protección de datos

Desventajas de Vaultwarden

Desafíos técnicos

  • Se requiere autoalojamiento: Requiere algunos conocimientos técnicos para la instalación y el mantenimiento
  • Responsabilidad propia: Las copias de seguridad, las actualizaciones y la seguridad deben ser administradas por usted mismo
  • Sin apoyo oficial: Soporte solo por comunidad, no por Bitwarden Inc.
  • Requisito de HTTPS: La interfaz web solo funciona a través de HTTPS o localhost

Esfuerzo de mantenimiento

  • Actualizaciones periódicas: Debe hacerse manualmente
  • Gestión de copias de seguridad: Requiere su propia estrategia de copia de seguridad
  • supervisión: El monitoreo del servidor es su propia responsabilidad

Instrucciones detalladas de instalación

1. Instalación en Linux (Ubuntu/Debian)

requisitos

Estos pasos instalan todos los componentes Docker necesarios para Vaultwarden en un sistema Ubuntu/Debian, en sistemas existentes con Docker ya en ejecución se puede omitir este paso:

# Sistema de actualización - Asegura que todos los paquetes estén actualizados sudo apt update & & sudo apt upgrade -y # Instalar Docker - La plataforma de contenedores que ejecuta Vaultwarden sudo apt install -y docker.io docker-compose # Iniciar y activar el servicio Docker - Asegura que Docker se inicie automáticamente al iniciar sudo systemctl start docker sudo systemctl enable docker # Agregar usuarios al grupo Docker - Le permite ejecutar comandos Docker sin sudo # IMPORTANTE: Después de este comando tienes que desconectarte y volver a iniciar sesión! sudo usermod -aG docker $USUARIO

Instalación paso a paso

Etapa 1: Crear una estructura de directorios Aquí creamos la estructura de carpetas para Vaultwarden y sus datos:

# Crear directorio de trabajo - Guardar todos los archivos de configuración mkdir -p /opt/vaultwarden # Crear un directorio de datos - Aquí es donde Vaultwarden guarda la base de datos y los archivos # IMPORTANTE: Este directorio debe ser respaldado regularmente! mkdir -p ./vw-data

Etapa 2: Crear un archivo Docker Compose El archivo Docker Compose define cómo se ejecuta Vaultwarden:

nano docker-compose.yml

Incluye el siguiente contenido y personalízalo con #GRACIAS AL CAMBIO Valores seleccionados para su entorno:

Versión: Servicios «3.8»: bóveda: imagen: vaultwarden/server:latest container_name (nombre_contenedor más reciente): Reinicio de la bóveda: A menos que se detenga el medio ambiente: # GRACIAS AL CAMBIO: Reemplazar con su propio dominio o dirección IP DOMINIO: "https://su dominio.de" # GRACIAS AL CAMBIO: Crear un token de administrador seguro (mínimo 32 caracteres) # Generarlo con: openssl rand -hex 32ls ADMIN_TOKEN: "TuSecureAdminToken123" # Habilitar WebSocket para la sincronización en vivo WEBSOCKET_ENABLED: "verdadero" # SEGURIDAD: Después de la configuración inicial, ¡configure en "falso"! SIGNUPS_ALLOWED: volúmenes "verdaderos": # Almacenamiento de datos persistente - ¡NUNCA elimine! - ./vw-data/:/data/ puertos: # Cartografía de puertos: Puerto anfitrión:Puerto contenedor # 127.0.0.1 solo se une a localhost (más seguro) - "127.0.0.1:8080:80" - "127.0.0.1:3012:3012"

Etapa 3: Iniciar Vaultwarden Este comando descarga la imagen de Vaultwarden e inicia el contenedor en segundo plano:

# Inicie el contenedor en modo separado (se ejecuta en segundo plano) docker-compose up -d # Comprobar estado - debería mostrar "Up" docker-compose ps # Ver registros (si se producen problemas) docker-compose logs vaultwarden

Etapa 4: Configurar el proxy inverso de Nginx (opcional) Se requiere un proxy inverso para HTTPS y funciones avanzadas. Aquí instalamos Nginx con certificados SSL automáticos:

# Nginx y Certbot para certificados SSL instalan sudo apt install nginx certbot python3-certbot-nginx # Crear la configuración de Nginx para Vaultwarden sudo nano /etc/nginx/sites-available/vaultwarden

Configuración de Nginx (ajuste «your-domain.de» a su dominio):

# Servidor de reenvío HTTP-a-HTTPS { lista 80; nombre_servidor ihr-domain.de; # GRACIAS AL CAMBIO: Su dominio devuelve 301 https://$nombre_servidor$request_uri; } # Servidor de configuración HTTPS { lista 443 ssl http2; nombre_servidor dein-domain.de; # GRACIAS AL CAMBIO: Tu dominio # Rutas de certificados SSL (establecidas automáticamente por Certbot) ssl_certificate /etc/letsencrypt/live/your-domain.de/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your-domain.de/privkey.pem; # Ubicación principal de la aplicación / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $el anfitrión; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $régimen; } # Conexiones WebSocket para la ubicación de sincronización en vivo /notifications/hub { proxy_pass http://127.0.0.1:3012; Actualización de proxy_set_header $http_upgrade; Conexión proxy_set_header "upgrade"; } }

Etapa 5: Cree un certificado SSL y active Nginx

# Habilitar Nginx page sudo ln -s /etc/nginx/sites-available/vaultwarden /etc/nginx/sites-enabled/ # Prueba de configuración de Nginx sudo nginx -t # Crear certificado SSL (reemplace "your-domain.de") sudo certbot --nginx -d ihr-domain.de # Iniciar Nginx y habilitar el inicio automático sudo systemctl habilitar nginx sudo systemctl reiniciar nginx

Por lo tanto, la instalación bajo Linux ya está completa, Continúe a la sección Configuración.

2. Instalación en Windows

requisitos

  1. Docker Desktop para Windows descargar e instalar desde: https://docs.docker.com/desktop/windows/install/
  2. Git para Windows instalar (opcional, para una gestión más fácil)

Instalación paso a paso

Etapa 1: Crear directorio de trabajo**

El sistema de archivos de Windows requiere rutas ligeramente diferentes a las de Linux, no olvide ajustarlas en consecuencia:

:: Crear un directorio de trabajo en la unidad D mkdir D:\vaultwarden cd D:\vaultwarden :: Crear un directorio de datos para el almacenamiento persistente :: IMPORTANTE: Haga una copia de seguridad de este directorio regularmente! mkdir vw-data

Etapa 2: Crear un archivo Docker Compose Crea un archivo llamado docker-compose.yml (con un editor como Notepad++ o VS Code):

Ajustes importantes para Windows:

Versión: Servicios «3.8»: bóveda: imagen: vaultwarden/server:latest container_name (nombre_contenedor más reciente): Reinicio de la bóveda: A menos que se detenga el medio ambiente: # Para la instalación local de Windows - cambiar DOMAIN para uso externo: "http://localhost:8080" # GRACIAS AL CAMBIO: Generar token de administrador seguro # PowerShell: -join ((1..32) ?? ForEach {'{0:X}' -f (Get-Random -Max 16)}) ADMIN_TOKEN: "YourSecureAdminToken123" WEBSOCKET_ENABLED: "verdadero" # Establecer en "falso" después de la configuración inicial! SIGNUPS_ALLOWED: volúmenes "verdaderos": # Sintaxis de ruta de Windows con forwardslash - ./vw-data/:/data/ ports: # Vinculación de Localhost para uso local - "127.0.0.1:8080:80" - "127.0.0.1:3012:3012"

Etapa 3: Iniciar Vaultwarden Ahora abra PowerShell o Command Prompt como administrador en el directorio Vaultwarden:

:: Iniciar contenedor (descarga automáticamente la imagen) docker-compose up -d :: Comprobar el estado - debe mostrar "Up" docker-compose ps :: En caso de problemas: Ver registros docker-compose logs vaultwarden

Etapa 4: Configurar Firewall de Windows (opcional) Si quieres que tu nuevo Vaultwarden esté disponible en la red:

:: Crear una regla de firewall para el puerto 8080 netsh advfirewall firewall add rule name="Vaultwarden" dir=in action=allow protocol=TCP localport=8080

Etapa 5: Crear servicio de Windows (opcional) Para el inicio automático con Windows, por ejemplo, utilice el NSSM (Non-Sucking Service Manager):

  1. Descargar NSSM: https://nssm.cc/descargar y desembalar
  2. Crear un servicio (PowerShell como administrador):
# Ajustar la ruta NSSM cd C:\nssm-2.24\win64 # Instalar el servicio .\nssm.exe instalar VaultwardenService # Establecer ejecutable (Docker Desktop debe estar instalado) .\nssm.exe set VaultwardenService Aplicación "C:\Archivos de programa\Docker\Docker\Docker Desktop.exe" # Establecer el directorio de trabajo .\nssm.exe set VaultwardenService AppDirectory "C:\vaultwarden" # Retardo de inicio (para que Docker Desktop se inicie primero) .\nssm.exe set VaultwardenService AppExit Reinicio predeterminado .\nssm.exe set VaultwardenService DependOnService Docker Desktop Service # Iniciar servicio .\nssm.exe Iniciar VaultwardenService

Esto también completa la instalación en Windows, Continúe a la sección Configuración.

3. Instalación en macOS

requisitos

# Instalar Homebrew (si aún no está disponible) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)» # Docker instalar brew install --cask docker # Iniciar Docker Desktop abierto /Aplicaciones/Docker.app

Instalación paso a paso

Etapa 1: Crear directorio de trabajo macOS utiliza estructuras de ruta tipo Unix, por lo tanto similares a Linux:

# Crear directorio de trabajo en el directorio principal mkdir -p ~/vaultwarden cd ~/vaultwarden # Crear un directorio para los datos de Vaultwarden # IMPORTANTE: Haga copias de seguridad regularmente: ¡todas las contraseñas se almacenan aquí! mkdir vw-data

Etapa 2: Crear un archivo Docker Compose Utiliza un editor de texto como nano, vim o TextEdit:

# Crear archivo con nano (recomendado para uso terminal) nano docker-compose.yml

Configuración específica de macOS:

Versión: Servicios «3.8»: bóveda: imagen: vaultwarden/server:latest container_name (nombre_contenedor más reciente): Reinicio de la bóveda: A menos que se detenga el medio ambiente: # Para uso local - cambiar dominio para uso externo DOMAIN: "http://localhost:8080" # GRACIAS AL CAMBIO: Generar token seguro # Terminal: openssl rand -hex 32 ADMIN_TOKEN: "YourSecureAdminToken123" WEBSOCKET_ENABLED: "verdadero" # Desactivar después de la configuración por razones de seguridad! SIGNUPS_ALLOWED: "verdadero" # Específico de macOS: Establecer la zona horaria TZ: Volúmenes «Europa/Berlín»: # Ruta de macOS (Tilde no es compatible con Docker, por lo tanto, ruta relativa) - ./vw-data/:/data/ ports: # Enlace de host local para seguridad - "127.0.0.1:8080:80" - "127.0.0.1:3012:3012"

Etapa 3: Iniciar Vaultwarden

# Iniciar contenedores en segundo plano docker-compose up -d # Comprobar el estado (debería mostrar "up" y "healthy") docker-compose ps # Compruebe los registros en busca de problemas docker-compose logs -f vaultwarden

Etapa 4: Configurar el Firewall de macOS (opcional) Si el Firewall de macOS está habilitado:

# Compruebe el estado actual del firewall sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate # Permitir la conexión entrante dockers sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/Docker.app/Contents/MacOS/Docker sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/Docker.app/Contents/MacOS/Docker

Etapa 5: Inicio automático con macOS (LaunchAgent) Para iniciar automáticamente Vaultwarden al inicio, se crea un archivo LaunchAgent:

# Crear directorio LaunchAgent (si no está disponible) mkdir -p ~/Library/LaunchAgents # Crear archivo LaunchAgent nano ~/Library/LaunchAgents/com.vaultwarden.plist

Configuración de LaunchAgent (Personalizar el nombre de usuario):

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0///ES" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.vaultwarden</string> <key>ProgramArguments</key> <array> <!-- ZWINGEND Ruta a docker-compose (que docker-compose) --> <string>/usr/local/bin/docker-compose</string> <string>up</string> <string>-d</string> </array> <key>WorkingDirectory</key> <!--- Introduzca su nombre de usuario --> <string>/Usuarios/su nombre de usuario/vaultwarden</string> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <false/> <key>StandardOutPath</key> <string>/tmp/vaultwarden.stdout</string> <key>StandardErrorPath</key> <string>/tmp/vaultwarden.stderr</string> </dict> </plist>

Activar LaunchAgent:

# LaunchAgent carga y activa launchctl load ~/Library/LaunchAgents/com.vaultwarden.plist # Comprobar el estado launchctl list ?? grep vaultwarden # En caso de cambios: Recarga LaunchAgent launchctl descarga ~/Library/LaunchAgents/com.vaultwarden.plist launchctl carga ~/Library/LaunchAgents/com.vaultwarden.plist

Etapa 6: Integración Homebrew (opcional) Para una integración de macOS aún más limpia, puedes usar los servicios de Homebrew:

# Instalación de servicios homebrew (si no están disponibles) brew tap homebrew/services # Crear servicios de preparación de servicios de envoltura simples start docker # Alternativamente: Iniciar vaultwarden directamente a través del comando Docker alias vaultwarden-start="cd ~/vaultwarden && docker-compose up -d" alias vaultwarden-stop="cd ~/vaultwarden && docker-compose down" alias vaultwarden-logs="cd ~/vaultwarden && docker-compose logs -f" # Guardar alias permanentemente en .zshrc o .bash_profile echo 'alias vaultwarden-start="cd ~/vaultwarden && docker-compose up -d"' >> ~/.zshrc echo 'alias vaultwarden-stop="cd ~/vaultwarden && docker-compose down"' >> ~/.zshrc echo 'alias vaultwarden-logs="cd ~/vaultwarden && docker-compose logs -f" >> ~/.zshrc

Y Zack, eso es lo rápido que puede ir. Instalación completada. Ahora echemos un vistazo a la configuración en detalle en la siguiente sección.

Configuración y gestión avanzadas

Primeros pasos: El panel de administración

El panel de administración es la interfaz de administración central para su nuevo servidor Vaultwarden:

  1. accediendo: Navegar hasta https://domain.de/admin (o http://localhost:8080/admin con configuración local solamente)
  2. autenticación: Ingrese el token de administrador que definió en el archivo Docker Compose
  3. Ajustes iniciales importantes:
    • Configuración SMTP: Requerido para notificaciones por correo electrónico y 2FA por correo electrónico
    • Configuración del dominio: Debe coincidir con su URL real
    • Registro de usuarios: ¡Después de la configuración inicial, desactive por razones de seguridad! (Puedes invitar de todos modos)
    • Rutas de copia de seguridad: Definir directorios para copias de seguridad automáticas

Algunas frases más sobre el mensaje de error con respecto al admin_token que se muestra en amarillo arriba:

La seguridad es el todo y el fin, especialmente cuando se trata de cosas sensibles como su nuevo administrador de contraseñas. Durante mucho tiempo fue ADMIN_TOKEN en Vaultwarden solo está disponible en texto plano, no es la solución más segura, como todos sabemos. ¡No te preocupes, esto ha terminado! Desde la versión 1.28.0+ puede hash el token correctamente y así hacer su instancia aún más segura.

¿Por qué harías eso?

Imagina que alguien tiene acceso a tu config.json o sus variables de entorno. Si el ADMIN_TOKEN Esta persona tiene acceso de administrador inmediato a su servidor Vaultwarden. Con un token hash, esto es prácticamente imposible, ya que la contraseña original no se puede reconstruir a partir del hash. Genial, ¿no?

Vaultwarden ahora usa Argon2, un algoritmo hash diseñado específicamente para el cifrado de contraseñas y considerado muy seguro. Un token hash se llama Cadena de PHC (Concurso de hash de contraseñas).

Vale, ¿y cómo creo el hash?

La forma más fácil de hacerlo es directamente a través de la función integrada de Vaultwarden. Tienes dos opciones:

1. La manera fácil: hachís de bóveda

Vaultwarden viene con su propia pequeña herramienta que le da el Cadena de PHC generado. ¿Lo mejor de todo? Hay dos presets: el Valores predeterminados de Bitwarden y el Recomendaciones de la OWASP. Las recomendaciones de OWASP son las más seguras de las dos, pero ambas son una mejora significativa del texto sin formato.

Para crear el hash, simplemente ingrese el comando apropiado. Supongo que ejecuta Vaultwarden como se describe anteriormente en el Docker y llama al contenedor vwcontainer, Simplemente reemplácelo con el nombre de su contenedor.

Con los valores predeterminados de Bitwarden (por defecto):

docker exec -it vwcontainer /vaultwarden hash
# o bien directamente a través del binario:

./vaultwarden hash

Con recomendaciones de OWASP (recomendado):

docker exec -it vwcontainer /vaultwarden hash --preset owasp
# o bien directamente a través del binario:

./vaultwarden hash --preset owasp

El comando le pide dos veces una contraseña y luego escupe el final. Cadena de PHC fuera. Simplemente cópialo en tu configuración.

Importante: Si ya ha guardado su configuración a través de la interfaz de administración, se ignoran las variables de entorno. ¡Entonces también debe actualizar la contraseña a través de la interfaz de administración!

2. El camino del bricolaje: argón2 CLI

Si prefieres tomarlo en tus propias manos, también puedes argón2-CLI Utilice la herramienta que está disponible en la mayoría de las distribuciones de Linux. Aquí debe especificar los parámetros para la configuración de Bitwarden u OWASP manualmente.

Con los valores predeterminados de Bitwarden:

echo -n "SuMegaSecretPassword" ?? argon2 "$(openssl rand -base64 32)" -e -id -k 65540 -t 3 -p 4

Con las recomendaciones de OWASP:

echo -n "SuMegaSecretPassword" ?? argon2 "$(openssl rand -base64 32)" -e -id -k 19456 -t 2 -p 1

Sencillo YourMegaSecretContraseña Reemplazar con la contraseña deseada. El terminal te dará el Cadena de PHC de vuelta.

¿Qué hago con la cadena PHC?

Si tiene la cadena, puede usarla en la configuración de Docker. La forma más fácil de hacerlo es a través de variables de entorno en su entorno. docker-compose.yml El archivo. Y muy importante: Después de eso, ya no inicias sesión con el token en sí, sino con tu contraseña, que ingresaste al crear el hash.

Atención: Bajo ninguna circunstancia procesa manualmente el config.json. Esto puede conducir rápidamente a problemas. En su lugar, es mejor usar la interfaz de administración para actualizar la configuración.

Y si aún ve la molesta advertencia de que su token es inseguro, entonces ha guardado la configuración una vez a través de la interfaz de administración, o la configuración no es del todo correcta. En este caso, compruebe el Documental sobre sustitución variable en Docker-Compose o las puntas directamente en el Github Vaultwarden Repo.

¿Listo? Eso es todo, entonces. Así de fácil es hacer que su servidor Vaultwarden sea mucho más seguro.

Crear el primer usuario

La configuración inicial de una cuenta de administrador:

  1. registro: Navegar hasta https://domain.de (página principal)
  2. Crear una cuenta: Haga clic en «Crear cuenta»: esto solo funcionará si: SIGNUPS_ALLOWED: "verdadero" se establece
  3. Datos de inicio de sesión seguros:
    • Utiliza una dirección de correo electrónico válida (importante para 2FA y recuperación)
    • Elija una contraseña maestra fuerte y única (al menos 12 caracteres, caracteres especiales, números)
  4. Confirmación por correo electrónico: Si la verificación por correo electrónico está activada, haga clic en el enlace de confirmación
  5. Importante: Después de crear la primera cuenta de administrador, definitivamente deberías SIGNUPS_ALLOWED sobre "falso" ¡Prepáralo!
Interfaz de administrador de Vaultwarden después de la instalación

Crear organizaciones y grupos

Vaultwarden ayuda a las organizaciones a compartir contraseñas en equipos o familias.

Crear una organización:

  1. Inicie sesión en la interfaz web de Vaultwarden
  2. Haga clic en "Nueva organización" → "Crear organización"
  3. Nombres dados (por ejemplo, «Family Mustermann» o «Company XY»)
  4. Elija un tipo de organización (familia o empresa)

Activar grupos:

Los grupos deben estar explícitamente habilitados en Vaultwarden por una variable de entorno en el archivo Docker Compose:

medio ambiente: # Habilitar la funcionalidad de grupo ORG_GROUPS_ENABLED: "verdadero"

Después de la activación, también puede crear grupos:

  1. Seleccionar organización → «Gestionar» → «Grupos»
  2. "Nuevo grupo" → Dar nombres (por ejemplo, "Administradores", "Usuarios")
  3. Definir los derechos de acceso y asignar miembros

Colecciones y controles de acceso:

Las colecciones organizan las entradas de Vault dentro de una organización:

  1. «Gestionar» → «Colecciones» → «Nueva colección»
  2. Definir los derechos de acceso por grupo/usuario:
    • Solo lectura: Puede ver y usar contraseñas
    • Leer/escribir: Puede editar entradas
    • Gestionar: Acceso completo, incluida la eliminación

Configurar la autenticación de dos factores (2FA/MFA)

Vaultwarden admite varios métodos 2FA, que deben activarse para una máxima seguridad.

Métodos 2FA soportados:

  • Códigos de correo electrónico: Método más fácil, el código se envía por correo electrónico
  • TOTP (OTP basado en el tiempo): Autenticador de Google, Authy, Microsoft Authenticator
  • dúo: Servicio profesional 2FA con notificaciones push
  • YubiKey: Autenticación basada en hardware
  • FIDO2 WebAuthn: Teclas de hardware modernas (YubiKey 5, SoloKey, etc.)

Configurar TOTP (Google Authenticator):

  1. Configuración de la cuenta → «Seguridad» → «Inicio de sesión en dos pasos»
  2. Seleccione "Authenticator App"
  3. Escanee el código QR con la aplicación Authenticator
  4. Introduzca el código de 6 dígitos para la confirmación
  5. ¡Guarde el código de recuperación de forma segura!

Configurar la clave de hardware (FIDO2):

Se deben establecer variables de entorno adicionales para las claves de hardware:

medio ambiente: # Habilitar FIDO2 WebAuthn FIDO2_ENABLED: "verdadero" # Dominio para FIDO2 (debe coincidir exactamente con su dominio) DOMAIN: "https://domain.de"

Force 2FA globalmente (Característica Enterprise):

Vaultwarden ofrece opciones para forzar 2FA para todos los usuarios:

medio ambiente: # Deshabilitar la función 2FA Remember (obliga a 2FA cada vez que inicia sesión) DISABLE_2FA_REMEMBER: "verdadero" # Habilitar políticas organizacionales ORG_EVENTS_ENABLED: "verdadero"

Mejores prácticas para la seguridad

Panel de administración seguro exclusivamente para acceso local:

medio ambiente: # Panel de administración solo accesible desde ciertas IPs ADMIN_ALLOWED_IPS: «192.168.1.0/24,10.0.0.0/8» # Tiempo de espera de la sesión de administrador (en segundos) ADMIN_SESSION_LIFETIME: "3600"

Controlar el registro de usuarios:

medio ambiente: # Desactivar después de la configuración! SIGNUPS_ALLOWED: "falso" # Solo las invitaciones de cuentas existentes permiten INVITATIONS_ALLOWED: "verdadero" # Lista blanca de dominios para registros SIGNUPS_DOMAINS_WHITELIST: «mycompany.de,confidencewuerdig.com» (en inglés).

Configuración de correo electrónico para 2FA e invitaciones:

La configuración SMTP es esencial para el correo electrónico 2FA y las invitaciones de usuario:

medio ambiente: # Servidor SMTP (ejemplo: Gmail) SMTP_HOST: "smtp.gmail.com" SMTP_FROM: "vaultwarden@ihr-domain.de" SMTP_PORT: "587" SMTP_SECURITY: "starttls" SMTP_USERNAME: "su-email@gmail.com" # Contraseña de la aplicación requerida en Gmail! SMTP_PASSWORD: "la contraseña de tu aplicación"

Intentos de inicio de sesión fallidos de registro:

medio ambiente: # Habilite el registro extendido EXTENDED_LOGGING: "verdadero" # Registro de inicio de sesión fallido LOG_LEVEL: "advertencia" # Archivo de registro (opcional) LOG_FILE: "/data/vaultwarden.log"

Características de seguridad avanzadas

Configurar el acceso de emergencia:

El acceso de emergencia permite a las personas de confianza acceder a su bóveda en caso de una emergencia:

  1. Configuración de la cuenta → Acceso de emergencia
  2. Agregar una persona de confianza a través de la dirección de correo electrónico
  3. Definir el tiempo de espera (por ejemplo, 7 días)
  4. Seleccione el tipo de acceso: «Mostrar solo» o «Acceso completo»

Informes de salud de la bóveda:

Vaultwarden proporciona análisis de seguridad incorporados:

  • Contraseñas débiles: Identifica contraseñas inseguras
  • Contraseñas reutilizadas: Encuentra credenciales duplicadas
  • contraseñas comprometidas: Comprobaciones con la base de datos HaveIBeenPwned
  • Sitios web inseguros: Advierte contra sitios HTTP con datos de inicio de sesión

Fail2Ban para la protección de la fuerza bruta:

Los sistemas Linux deben configurar Fail2Ban:

# Fail2Ban instalar sudo apt instalar fail2ban # Crear filtro de bóveda sudo nano /etc/fail2ban/filter.d/vaultwarden.conf

Configuración de Fail2Ban:

[Definición] failregex = ^.*El nombre de usuario o contraseña es incorrecto\. Inténtalo de nuevo. PI: <HOST>\. Nombre de usuario:.*$ ignoreregex =
# Cárcel de configuración de sudo nano /etc/fail2ban/jail.d/vaultwarden.conf
[vaultwarden] habilitado = puerto verdadero = 80,443 filtro = acción de vaultwarden = iptables-allports[nombre=vaultwarden] logpath = /opt/vaultwarden/vw-data/vaultwarden.log maxretry = 3 bantime = 14400 findtime = 14400

Monitoreo y mantenimiento

Implementar el Chequeo de Salud:

servicios: bóveda: # ... otras configuraciones healthcheck: prueba: Intervalo ["CMD", "curl", "-f", "http://localhost:80/alive"]: Tiempo de espera de los años 30: 10s reintentos: 3 inicio_período: años 40

Configurar la rotación de troncos:

medio ambiente: # Límite de registros LOG_LEVEL: "advertencia" # Tamaño máximo del archivo de registro LOG_FILE: "/data/vaultwarden.log"

Configuración de Logrotate:

sudo nano /etc/logrotate.d/vaultwarden
/opt/vaultwarden/vw-data/vaultwarden.log { weekly missingok rotate 52 compress notifempty create 644 root postrotate docker-compose -f /opt/vaultwarden/docker-compose.yml restart vaultwarden endscript }

Clientes de Bitwarden y herramientas compatibles

Extensiones de navegador

Todas las extensiones oficiales del navegador Bitwarden funcionan a la perfección con Vaultwarden:

Navegadores basados en Chrome/Chromium

Firefox

Safari

  • nombre: Bitwarden para Safari
  • instalación: Mac App Store → Descargar Bitwarden
  • especificidad: Requiere la aplicación de escritorio como base

Configuración de la extensión del navegador:

Después de la instalación, debe apuntar la extensión a su servidor Vaultwarden:

  1. Instalar y abrir extensión
  2. Haga clic en el icono Configuración (gear)
  3. Cambiar la URL del servidor a: https://domain.de (o http://localhost:8080 con configuración local)
  4. Inicia sesión con tus credenciales de Vaultwarden

Aplicaciones móviles

Android

Varias opciones están disponibles aquí:

Aplicación oficial de Bitwarden:

Alternativa F-Droid:

  • nombre: Bitwarden (código abierto)
  • Descargar: Repositorio de F-Droid
  • ventaja: Totalmente de código abierto, no se requieren servicios de Google

iOS/iPadOS

Configuración de aplicaciones móviles:

  1. Instalar y abrir la aplicación
  2. Al registrarse, toque Autoalojado o Empresa
  3. Introduzca la URL del servidor: https://domain.de
  4. Inicia sesión con la cuenta de Vaultwarden
  5. Habilitar el desbloqueo biométrico en la configuración de la aplicación (recomendado)

Aplicaciones de escritorio

ventanas

  • Descargar: https://bitwarden.com/download/
  • Formatos disponibles: .exe-Installer, Tienda de Microsoft, Chocolatey, Winget
  • Instalación vía Winget: winget instalar Bitwarden.Bitwarden

macOS

  • Descargar: Mac App Store o directamente desde bitwarden.com
  • Instalación vía Homebrew: brebaje instalar --cask bitwarden
  • Características: Integración de Touch ID, integración de extensiones de Safari

Linux

Múltiples opciones de instalación disponibles:

  • AppImage: Universalmente operable en todas las distribuciones
  • Paquete .deb: Para sistemas basados en Debian/Ubuntu
  • Snap: snap instalar bitwarden
  • Flatpak: flatpak instalar flathub com.bitwarden.desktop
  • AUR (Arch Linux): yay-S bitwarden

Interfaz de línea de comandos (CLI)

La CLI de Bitwarden también es una herramienta poderosa para la automatización y el scripting:

Instalación:

# A través de npm (Node.js requerido) npm install -g @bitwarden/cli # A través de Snap snap install bw # Vía Chocolatey (Windows) choco instalar bitwarden-cli

Configuración y uso:

# Configuración de servidores bw config server https://her-domain.de # Inicia sesión en bw login your-email@domain.de # Desbloquear bóveda (devuelve tokens de sesión) exportar BW_SESSION=$(bw desbloquear --raw) # Lista de elementos bw lista de elementos # Recuperar contraseña para el sitio específico bw obtener contraseña github.com # Crear nueva entrada bw crear elemento '{"type":1,"name":"example","login":{"username":"test@example.com","password":"secret password"}}'

Estrategias de copia de seguridad

Script de copia de seguridad automática (Linux/macOS)

#!/bin/bash BACKUP_DIR="/backup/vaultwarden" FECHA=$(fecha +%Y%m%d_%H%M%S) # Crear directorio de copia de seguridad mkdir -p $BACKUP_DIR # Parada de contenedores docker-compose stop vaultwarden # Copia de seguridad de datos tar -czf $BACKUP_DIR/vaultwarden_backup_$DATE.tar.gz ./vw-data/ # Inicio contenedor docker-compose start bóvedawarden # Eliminar copias de seguridad antiguas (mayores de 30 días) find $BACKUP_DIR -nombre "vaultwarden_backup_*.tar.gz" -mtime +30 -delete

Configure este script como un cronjob:

# Editar crontab crontab -e # Copia de seguridad diaria a las 2:00 en punto 0 2 * * * /path/to/backup-script.sh

Recomendaciones de seguridad

1. Autenticación fuerte

  • Siempre utiliza tokens de administración complejos
  • También es mejor habilitar la autenticación de dos factores para todas las cuentas
  • Deshabilita el registro después de la configuración e invita a los usuarios en su lugar

2. Seguridad de la red

  • Siempre utiliza HTTPS en la producción
  • Restringe el acceso a través de reglas de firewall
  • Implementa fail2ban para la protección de la fuerza bruta

3. Actualizaciones del sistema

# Actualizaciones regulares del contenedor docker-compose pull docker-compose up -d # Actualizaciones del sistema sudo apt update && sudo apt upgrade

Solución de problemas

Problemas y soluciones comunes

Problema: La interfaz web no se carga

# Comprobar los registros de contenedores docker-compose logs vaultwarden # Compruebe los conflictos de puertos netstat -tulpn ?? grep :8080

Problema: La extensión del navegador no se conecta

  • Comprueba la URL del servidor en la configuración de la extensión
  • Asegura que HTTPS está habilitado (excepto para localhost)
  • Comprueba la configuración del firewall

Problema: El correo electrónico no funciona

  • Compruebe la configuración de SMTP en el panel de administración
  • Compruebe los registros para detectar errores de autenticación SMTP
  • Usar contraseñas de aplicaciones específicas del proveedor de correo electrónico

conclusión

Vaultwarden es una excelente alternativa para cualquier persona que quiera controlar completamente su administración de contraseñas. Con un bajo consumo de recursos y compatibilidad total con todos los clientes de Bitwarden, proporciona una solución profesional para empresas privadas y pequeñas.

La configuración única requiere comprensión técnica, pero los beneficios a largo plazo en términos de protección de datos, control y ahorro de costos compensan con creces el esfuerzo. Con las instrucciones de instalación y las recomendaciones de seguridad proporcionadas, nada se interpone en el camino de una configuración de autoalojamiento exitosa.

Nota importante: Nunca olvide hacer copias de seguridad regulares y mantener su instalación actualizada. ¡Con tal configuración, la seguridad de sus contraseñas es completamente su responsabilidad!

Otros recursos


Este artículo ha sido compilado con información de la documentación oficial de Vaultwarden y experiencias de la comunidad. Situación: Agosto de 2025