Aunque he visto muchas implementaciones de soluciones para este problema, creo que la más completa, si no la más conveniente, fue un repositorio de Git restringido a los superusuarios que solo contienen archivos de texto cifrados de contraseñas por entorno. La gestión de la rotación de contraseñas en los dispositivos, servidores mixtos y dispositivos dedicados, como módems, se manejó por separado.
Esta solución simplificó en gran medida la distribución de nuevas contraseñas, ya que los usuarios debían realizar una actualización simple para recibir la última revisión de las contraseñas, además de proporcionar un historial rastreable de las contraseñas anteriores para el mantenimiento de registros.
Como recuerdo, los archivos estaban cifrados con GPG, pero existen numerosas soluciones y enfoques viables para manejar los archivos en sí mismos.
El inconveniente obvio de este enfoque es que, especialmente cuando las contraseñas han cambiado, usted está descifrando uno o más archivos en busca de la (s) contraseña (s) requerida (s). Por supuesto, como con cualquier otra cosa, cuanto más frecuentemente use una contraseña, más probabilidades tendrá de memorizarla y, dependiendo del dispositivo (s) en cuestión, el acceso puede ser un evento infrecuente que no se ve obstaculizado por tener que pasar. un proceso algo más largo para obtener la contraseña adecuada.
Si también está interesado en estrategias y / o scripts para generar y / o cambiar contraseñas en servidores y / u otros dispositivos, me gustaría compartir las que yo también empleé.
-
Me encantaría.
Supondré que está familiarizado con el cifrado de archivos, PGP o de otro tipo. Si esto es erróneo, no dude en preguntar y con gusto le daré algunos ejemplos.
La configuración de un repositorio Git es relativamente sencilla y mostrará similitudes con la mayoría de las soluciones de administración de contenido con las que puede tener experiencia. Una nota con Git: es, por diseño, completamente abierta y, como tal, requerirá pasos adicionales para restringir el acceso a archivos o repositorios específicos. Esto se puede lograr de manera relativamente simple aprovechando las ACL del sistema de archivos (solo una posible solución). Dicho esto, sin duda le recomendaría que utilice una solución con la que se sienta cómodo y familiar, especialmente si su organización ya utiliza soluciones alternativas de administración de contenido.
Los archivos representarán, por definición, una base de datos de contraseñas que correlacionará los identificadores del dispositivo, como el nombre de host, las contraseñas y, potencialmente, los nombres de usuario. Por ejemplo: router-1.internetdomainwebsite.com administrator soopersekretpasswerd
. Lo ideal es que nunca almacene el archivo sin cifrar, sin embargo, seguir esta estrategia hace que la recuperación de contraseñas sea relativamente inconveniente. Por este motivo, recomiendo que un usuario acceda a las secuencias de comandos para que funcione dentro de su marco de encriptación, tal vez tome un identificador como término de búsqueda y escriba solo la contraseña solicitada en un archivo para que el solicitante la use una sola vez.
Cualquier dispositivo que admita cambios de contraseña puede tener secuencias de comandos. Dado que la mayoría de los dispositivos admiten el cambio de contraseñas de una CLI, recomendaría echar un vistazo al lenguaje Expect y / o sus bibliotecas para Perl, Python o el idioma que elija. Personalmente, uso un script que acepta el nombre de usuario deseado, acepta la contraseña actual, acepta y verifica la contraseña deseada, luego cambia y verifica el cambio en todos los hosts que se pasaron o proporcionaron cuando se les solicitó. Es bastante escueto Perl con espera.