
Como muchos usuarios saben, administro muchos servidores Debian, para organizaciones personales, laborales y de voluntariado. Recientemente veo muchas publicaciones sobre superusuario y seguridad de TI sobre cómo deshabilitar contraseñas y simplemente usar la autenticación basada en claves.
Utilizo autenticación basada en claves para todo mi root
acceso desde mi servidor personal, mi computadora portátil del trabajo y la computadora que uso la mayor parte del tiempo fuera del trabajo. Sin embargo, para acceder a cualquiera de los servidores que no usan WinSCP (donde tengo guardadas mis claves, al menos para mi PC con Windows), inicio sesión como mi cuenta de usuario estándar, luego inicio sesión su
como root, usando la contraseña muy larga.
En los servidores que no administro por motivos laborales, guardo estas claves solo en esos tres lugares, principalmente para hacer copias de seguridad. Utilizo contraseñas muy seguras (en mi opinión), y sólo PermitRootLogin withoutpassword
(¡me encanta cuando los archivos de configuración me permiten usarlos en oraciones!). Cuando inicio sesión desde otro lugar, uso mi cuenta habitual con una contraseña segura, porqueNo tengo un lugar donde pueda guardar mis llaves y abrirlo si necesito iniciar sesión normalmente desde un nuevo dispositivo.
Veo que esto tiene dos posibles soluciones:
- Almacenar las claves en texto plano o cifradas en algún lugar remoto, deshabilitando todos los métodos de autenticación basados en contraseña en mis servidores. Si es así, ¿dónde y cómo puedo guardarlos de forma segura para que no se rompan?probablecomprometerse?
- Usar una contraseña segura de usuario habitual y cambiarla cada 90 días. Esta es una buena práctica, estoy seguro, pero mi memoria realmente apesta. Estoy seguro de que seguiría usando la misma contraseña de todos modos, sólo por pura costumbre, lo que rompe el objetivo de hacer esto.
Realmente me gustaría usar el método 1, pero no sé cuál sería la mejor práctica con tantos servidores, y muchos de ellos usan contraseñas diferentes solo para COMENZAR a iniciar sesión desde una nueva ubicación. Por ejemplo, suelo utilizar mi teléfono móvil para hacer un túnel hasta casa o para comprobar el estado de un servicio en un sitio remoto.
Respuesta1
Tanto la experiencia como la investigación han demostrado que las contraseñas más seguras son aquellasgrande en longitud en lugar de complejo, lo que de hecho apesta para aquellos cuya memoria apesta (¡incluido yo!). Por lo tanto, en mi opinión, utilizar la autenticación basada en claves es el camino correcto a seguir cuando se trata de gestionar una gran cantidad de servidores.
Al mismo tiempo, todo lo relacionado con la seguridad yalmacenar de forma remotaen la misma frase suele irritar los oídos. no estoy diciendocualquierUn lugar remoto es potencialmente inseguro, pero no se puede saber si realmente lo es. Por otro lado, en términos de practicidad,tendraspara almacenar la clave SSH en un lugar remoto.
Entonces, después de mezclar todos estos ingredientes, tengo 2 sugerencias:
Utilice un administrador de configuración de TI
Algunos ejemplos son: Puppet, Chef server o similares.
Mencionas que tienes un servidor personal. Probablemente este sea elmenos peorlugar para alojar su servidor de configuración central. Podría crear un módulo que guardaría su clave SSH en forma cifrada y permitiría que su computadora personal, su computadora portátil de trabajo y posibles nuevos dispositivos la implementen.
UsamosServidor de chefpara realizar estas tareas. Tiene una característica llamada bolsas de datos, y un tipo muy interesante de estas llamadasbolsas de datos cifradosque de hecho le permiten almacenar todas sus contraseñas, claves SSH y cualquier dato sensible.
Independientemente del administrador de configuración que elija, puede usarlo para implementar las claves en ambos servidores.yComputadoras personales.
Este enfoque tiene una gran ventaja: si por algún cambio su clave privada se ve comprometida, la cambia en un lugar y se implementará en todos los servidores y clientes sin perder tiempo.
Sin embargo, tiene una desventaja. Si planea acceder a sus servidores desde dispositivos móviles como teléfonos móviles, tabletas, etc., probablemente no tendrá unaChef|Puppet|Pon-aquí-tu-servidor-de-manejador-de-configuración-favoritocliente allí.
Más información sobre estos:
Utilice un administrador de archivos local cifrado
Existen algunos programas que cifrarán sus claves, independientemente de si son contraseñas, claves SSH o datos bancarios. Esto tiene una desventaja evidente: para proteger sus contraseñas necesita una contraseña (y probablemente querrá una muy buena). En cualquier caso, si te gusta este enfoque, puedes guardar tu clave cifrada en un pendrive y llevarla contigo dondequiera que vayas.
Esto tiene otra posible desventaja: puedes perder tu pendrive, alguien podría robarlo... En este caso esaúncifrado, pero probablemente querrá tomar unas cuantas tazas de café para cambiar la clave SSH en todos sus servidores y clientes Debian, lo que probablemente le llevará a pensar que el enfoque 1 es bastante más escalable.
En cualquier caso, sólo conozco un software de ese tipo que sea lo suficientemente seguro como para almacenar todas sus claves (por cierto: puede proteger su archivo de contraseñas con una contraseña (como se mencionó), un archivo de claves o ambos).
Si te gusta este enfoque, probablemente quieras echar un vistazo aKeepass.