Introducción
A raíz de un viejo hilo de seguridad informática en el que se acabó recomendando el uso de la aplicación Bitwarden como gesdtor de contraseñas, muchos usuarios decidimos dar el paso y cambiar a dicha aplicación en lugar de utilizar la misma contraseña para todos los sitios web y/o utilizar el gestor de contraseña de los navegadores.
Como buena persona amante de la privacidad que soy, decidí dar el paso de mantener mis aplicaciones en mi propio servidor para así prescindir de servidores externos. Para ello instalé una imagen no oficial de docker a través de docker-compose que lleva funcionando más de año y medio sin problemas.
La razón de este hilo
El haber prescindido de la nube propia de bitwarden para almacenar mis claves puede llevar a un gran problema: La pérdida de todos los datos. Si bien, en mi caso, tengo montado un raid5 y hago backups semanales a onedrive (de forma encriptada) esto no quita que, por negligencia o inseguridad, me transmita más tranquilidad el tener cierta información sensible en nubes externas que, por lo general, suelen ser menos propensas a fallar.
Y esto nos lleva al propósito general del hilo: ¿Qué ocurre si pierdo la conexión de internet de mi casa y el servidor se desconecta de la red?. El usuario @hda propuso en el hilo original una solución, utiizar un servidor externo para levantar el servicio inmediatamente.
Opción 1
En mi caso dispongo de un vps de oracle (free tier) en el que tengo montada una herramienta que monitorea mi red y, en caso de que haya una caída, se manda automáticamente una notificación vía telegram. Entiendo que, creando un pequeño script (¿En python? ¿Bash?) se podría levantar automáticamente el contenedor y cambiar las DNS del subdominio para que apunte a este nuevo servidor. Para ello haría falta duplicar contenedores del servidor local al servidor de origen:
- Nginx Proxy Manager -> Reverse proxy
- Cloudflared -> Conexión directa al servidor sin necesidad de abrir puertos
- Vaultwarden
Opción 2
En el caso de querer usar AWS (como hda) y no querer depende de argo tunnel (y abrir puertos), se ha propuesto utilizar la siguiente imagen para montar un DDNS en el propio servidor.
Dicho contenedor podría solventar el problema de cómo cambiar las rutas CNAME en caso de que uptime kuma indique que se ha perdido la conexión con el servidor local.
Elegir lo más versátil
Ahora llega el momento de decidir cómo y con que tecnología implementarlo. Sinceramente, desconozco si herramientas como terraform nos podrían ayudar en algo, entiendo que para el manejo de contenedores en todo caso nos podría valer kubernetes pero nunca he utilizado ninguna de las dos.
Me gustaría que nos diérais vuestra opinión y conocimiento con respecto a este tema del que, seguro, podemos (y yo el primero) aprender mucho más.
Muchas gracias a todos.