El ecosistema de la gestión de contraseñas suele dar sorpresas imprevistas. Recientemente, los rumores sobre cambios en las condiciones y planes de Bitwarden volvieron a poner sobre la mesa un debate estrictamente operativo: cuando tus credenciales dependen de la nube de un tercero, asumís un riesgo de disponibilidad y costo que no controlás. Si las tarifas suben o las funciones esenciales se limitan, tu operatividad diaria se ve afectada de inmediato.
Para mitigar este riesgo sin perder la comodidad de un gestor moderno, decidí montar mi propio servidor de contraseñas utilizando Vaultwarden (la versión ligera de Bitwarden escrita en Rust), securizado con Cloudflare Tunnels y estructurado con un almacenamiento externo a prueba de fallas.
Acá te cuento cómo lo armé y por qué tiene sentido desde un punto de vista práctico.
La gestión de riesgos al delegar tus credenciales (Y el valor del Self-Hosting)
Usar un administrador de contraseñas en la nube comercial es cómodo, pero introduce riesgos operativos que cualquier administrador de sistemas debe evaluar:
-
Riesgo de disponibilidad y costos: Estás sujeto a que la plataforma mantenga su infraestructura online sin caídas globales y a que no modifique unilateralmente sus planes de precios o límites de uso.
-
Control de vectores de ataque: Al estar en una base de datos centralizada con millones de usuarios de todo el mundo, esos servidores son un objetivo prioritario y constante para atacantes.
Autoalojar el servicio no es una postura ideológica, es una decisión de control y previsibilidad:
-
Autonomía operativa: Nadie puede limitar o bloquear el acceso a tus propias claves por un cambio de política comercial.
-
Cifrado bajo tu control: Sos el único que custodia la base de datos y define los niveles de acceso a la infraestructura donde corre.
Para lograr esto de forma eficiente y sin el consumo de recursos de la versión oficial de Bitwarden (que requiere una infraestructura considerable), opté por Vaultwarden. Consume apenas unos megabytes de RAM, responde con una latencia mínima y mantiene compatibilidad nativa con todas las aplicaciones oficiales de Bitwarden (móvil, escritorio y extensiones del navegador).
La Arquitectura: Separando el almacenamiento para blindar los datos
Uno de los mayores miedos al autoalojar un servicio tan crítico es: ¿Qué pasa si se rompe el disco rígido de mi servidor?
Para mitigar este punto de falla, diseñé una arquitectura donde el sistema operativo y el motor de contenedores corren en el almacenamiento interno (un NVMe), pero la base de datos de Vaultwarden (db.sqlite3) vive físicamente en un SSD externo dedicado exclusivamente a datos (/data).
Utilizando Podman (la alternativa moderna, rootless y más segura a Docker en entornos Linux), el despliegue se reduce a un solo comando. Además, usamos el flag :U para que Podman maneje de forma automática y segura los permisos de usuario (UID/GID) en el disco externo:
podman run -d --name vaultwarden \
-v /data/vaultwarden/data:/data:U \
-p 8080:80 \
docker.io/vaultwarden/server:latest
¿El beneficio de este esquema?
Si el disco interno del servidor muere o el sistema operativo se corrompe, cero pánico. El “cofre” con las contraseñas cifradas está intacto en el SSD externo. Recuperarlo en cualquier otra máquina toma literalmente dos minutos: conectás el SSD, ejecutás el mismo comando de Podman y todo vuelve a la vida.
Como última medida de seguridad extra, este disco /data de mi homelab está sujeto a una política de backups periódicos automatizados. Desacoplar el almacenamiento te da alta disponibilidad ante fallas físicas del servidor, pero un backup sólido sigue siendo la única garantía real contra desastres.
El Puente Seguro: Cloudflare Tunnels (cloudflared)
El siguiente desafío era el acceso remoto. Necesitaba entrar a mi gestor desde fuera de casa (el celular en la calle o la notebook en la oficina) de forma segura y con un certificado SSL válido, pero sin abrir puertos en mi router ni exponer mi IP pública al mundo.
La solución elegante fue Cloudflare Tunnels.
[Cliente] ---> (HTTPS) ---> [Red Cloudflare] ---> (Túnel Seguro) ---> [cloudflared] ---> [Vaultwarden (8080)]
Instalando el agente cloudflared localmente en mi red, este establece una conexión de salida segura y encriptada hacia los servidores de Cloudflare. Luego, mapeo mi dominio personalizado (por ejemplo, vault.mi-dominio.ar) directamente hacia el puerto interno 8080 donde escucha Vaultwarden.
-
Tráfico cifrado con HTTPS de punta a punta.
-
Protección contra ataques DDoS nativa de Cloudflare.
-
IP residencial oculta detrás de la red de la compañía.
Conclusión: Control total de tu infraestructura de seguridad
Tomar las riendas de herramientas tan críticas como un gestor de contraseñas no debería responder a un impulso de desconfianza ciega, sino a una estrategia lógica de mitigación de riesgos y optimización de recursos.
Tener montado un entorno con Vaultwarden + Podman + Cloudflare Tunnels no solo me dio una plataforma idéntica en funciones a la versión comercial, sino que me devolvió la previsibilidad. Mis contraseñas están seguras, mi infraestructura está fuera del radar de internet, y ante cualquier falla de hardware, la recuperación está garantizada en minutos gracias al almacenamiento desacoplado.