Cómo puede autohospedar Bitwarden (casi) sin costo con Google Cloud

Un administrador de contraseñas es una de las formas más fáciles de salvaguardar su identidad en línea contra actores maliciosos y robos. De la gran cantidad de opciones disponibles, los proyectos de código abierto como Bitwarden y Keepass se consideran universalmente como los más confiables.

Pero, ¿y si quieres dar un paso más? ¿Puede alojar Bitwarden en un servidor privado para aumentar su seguridad?

¿Por qué autohospedar Bitwarden?

Bitwarden ofrece una solución hospedada conveniente para la mayoría de los usuarios que cualquiera puede usar de forma gratuita o con una tarifa mensual nominal, según el conjunto de funciones que necesite. Dado que sus contraseñas se almacenan en un formato cifrado, ni siquiera los desarrolladores de Bitwarden pueden acceder a ellas.

Sin embargo, las personas más exigentes y orientadas a la privacidad pueden querer tener un control total sobre sus contraseñas, cifradas o no. Con ese fin, Bitwarden ofrece una opción autohospedada, que le permite implementar todo el software de administración de contraseñas en su propio hardware. El administrador de contraseñas admite oficialmente esta opción "local".

Sin embargo, el mayor obstáculo para el autohospedaje es encontrar una computadora siempre disponible para implementar el software. Si bien podría usar una computadora de repuesto o incluso una Raspberry Pi como servidor doméstico, están lejos de ser confiables.

Un servicio externo, por otro lado, garantiza el tiempo de actividad. Google Cloud, por ejemplo, garantiza que sus servidores estarán disponibles al menos el 99% del tiempo según su Acuerdo de nivel de servicio de Compute Engine .

Además, si su servidor deja de funcionar, no tendrá un destino de sincronización hasta que lo solucione. La puesta en marcha de una nueva instancia de servidor en la nube, por otro lado, es rápida y no requiere una extensa solución de problemas de hardware.

El autohospedaje también significa que usted tiene el control de la seguridad de su administrador de contraseñas. Incluso si el servicio público de Bitwarden es víctima de una violación de seguridad en el futuro, su base de datos seguirá siendo privada y no se verá afectada.

¿Qué proveedor de almacenamiento en la nube debería elegir?

Google Cloud, Microsoft Azure y Amazon AWS son los tres mayores proveedores de servicios en la nube por participación de mercado.

Afortunadamente para nosotros, los tres también tienen niveles gratuitos, lo que le permite albergar una pequeña cantidad de servicios sin costo alguno. Naturalmente, existen algunas restricciones, como las especificaciones de hardware y la ubicación geográfica, pero no deberían importar demasiado para el simple alojamiento de Bitwarden.

Sin embargo, de nuestras tres opciones disponibles, Google Cloud es el único servicio que ofrece un nivel siempre gratuito más allá del período de prueba inicial de 12 meses. La mayor limitación de este servidor es que viene con un ancho de banda insignificante y asignaciones de almacenamiento. Sin embargo, dado que solo lo usamos para el alojamiento de contraseñas, ninguna de esas limitaciones será un problema.

Más específicamente, Google Cloud ofrece una instancia de servidor f1-micro de forma gratuita, siempre que la aloje en regiones específicas. En el momento de la publicación, las opciones se limitan a Oregón, Iowa y Carolina del Sur.

Sin embargo, incluso si vive lejos de estas regiones, la usabilidad de Bitwarden no se verá tan afectada. La distancia física entre usted y el centro de datos es mucho más importante para las aplicaciones que involucran archivos grandes como la transmisión de video.

Por último, Google solo proporciona 1 GB de ancho de banda de red saliente para su instancia gratuita cada mes. La interfaz web de Bitwarden usa unos pocos megabytes de datos cada vez que la carga, pero el simple hecho de sincronizar sus contraseñas con regularidad no debería empujarlo a superar este límite.

Nota: Si bien la capa gratuita de Google le permite arrendar hardware de forma gratuita, tendrá que pagar una pequeña tarifa por reservar una dirección IP estática. Esto se debe a que Internet ya se ha quedado sin direcciones IPv4. Dado que la demanda supera la oferta, Google Cloud actualmente cobra 0,002 dólares por dirección IP por hora. Si ejecuta su servidor Bitwarden las 24 horas del día, los 7 días de la semana durante un mes completo, se le facturará $ 1,44.

Primer paso: aprovisionamiento de un servidor para Bitwarden

Para comenzar, diríjase a la consola de Google Cloud e inicie sesión en su cuenta de Google. Luego, navegue hasta la sección del motor de cómputo de la plataforma y presione el botón 'Crear' para activar una nueva instancia de máquina virtual.

Ingrese un nombre para la máquina y seleccione una de las regiones mencionadas anteriormente en el menú desplegable. A continuación, en la sección Configuración de la máquina, asegúrese de seleccionar 'f1-micro' como tipo de servidor. Esta configuración garantizará que su servidor se encuentre en el nivel Siempre gratuito de Google.

Por último, simplemente seleccione 'Debian' o 'Ubuntu' como imagen de arranque de su máquina virtual y establezca un tamaño de disco de 30 GB, el máximo permitido. Después de confirmar la creación de su nueva máquina virtual, espere unos minutos para que aparezca en la lista de VM.

A continuación, deberá asignar una dirección IP estática a su máquina virtual. De esta manera, puede acceder a su instancia de Bitwarden desde la misma IP en todo momento. Para hacer esto, simplemente siga esta página de documentación .

Una vez que tenga su IP estática, navegue hasta su proveedor de dominio y configure un registro DNS que apunte a la misma dirección. Las instrucciones para este paso variarán según el proveedor que utilice; simplemente consulte su documentación.

Suponiendo que haya configurado todo correctamente, su nombre de dominio (abc.xyz) pronto apuntará directamente a su máquina virtual de Google Cloud.

¡Ahora estamos listos para instalar Bitwarden en esta máquina virtual! Vuelva a la lista de VM haciendo clic aquí y conéctese haciendo clic en el botón SSH.

Implemente Bitwarden en su servidor

Después de conectarse con éxito a su máquina virtual, ejecute los siguientes comandos para actualizar el sistema operativo base.

 Sudo apt-get update
 Sudo apt-get upgrade

Luego, instale Docker ingresando:

 curl -fsSL https://get.docker.com -o get-docker.sh
 sh get-docker.sh

En caso de que falle el script de instalación anterior, instale Docker manualmente o siga la documentación oficial .

En este punto, todo lo que queda por hacer es descargar la imagen de Docker de Bitwarden y ejecutarla. Los siguientes comandos logran precisamente eso:

 docker pull bitwardenrs/server:latest
 docker run -d --name bitwarden -v /bw-data/:/data/ -p 80:80 bitwardenrs/server:latest

En este punto, Bitwarden está completamente instalado en su servidor. Sin embargo, los clientes externos todavía no pueden conectarse a su instancia de Bitwarden. Para eso, deberá proporcionar al servidor web un certificado TLS válido. Este requisito es para garantizar que sus contraseñas permanezcan seguras mientras se envían de un lado a otro.

Proxy inverso y SSL con Caddy

Caddy es un proxy inverso de código abierto que nos abstrae la mayor parte de esta complejidad. Siempre que su dominio esté configurado correctamente, Caddy generará y renovará automáticamente los certificados requeridos.

Para instalar Caddy a través de Docker, simplemente ingrese el siguiente comando:

 docker pull caddy/caddy:alpine

A continuación, cree un directorio para que Caddy ejecute y almacene sus certificados y archivos. El segundo comando crea un archivo de configuración en blanco:

 sudo mkdir /etc/caddy
 sudo nano /etc/Caddyfile

Pega los siguientes contenidos:

 yourbitwardendomain.com {
reverse_proxy /notifications/hub/negotiate 0.0.0.0:80
reverse_proxy /notifications/hub 0.0.0.0:3012
reverse_proxy 0.0.0.0:80
}

No olvide reemplazar 'yourbitwardendomain.com' en el bloque anterior con su propio dominio. Presione Ctrl + X para guardar.

Luego, simplemente inicie el contenedor Docker:

 sudo docker run -d --name caddy -v /etc/Caddyfile:/etc/caddy/Caddyfile -v /etc/caddy:/root/.local/share/caddy --net host --restart on-failure caddy/caddy:alpine

¡Y eso es! Visitar su dominio ahora debería llevarlo directamente a Bitwarden, a través de una conexión segura, nada menos.

Si la página no se carga por algún motivo, es posible que se haya perdido un paso o que haya configurado Caddy incorrectamente. Recuerde, Bitwarden solo funcionará en una conexión HTTPS, por lo que no se puede acceder directamente navegando a la dirección IP pública de su servidor.

Comience a hacer una copia de seguridad de sus contraseñas en Bitwarden

Una vez que su servidor autohospedado de Bitwarden esté en funcionamiento, podrá comenzar a cargar y almacenar sus contraseñas de forma segura.

Maxim Zhgulev / Unsplash