Si su script puede conectarse a cualquiera de esos servidores, cualquier persona con acceso al script (o acceso privilegiado a la máquina en la que se ejecuta el script) puede conectarse a cualquiera de esos servidores.
Si el script necesita ejecutarse de forma autónoma, todas las apuestas están desactivadas. La respuesta aquí es no, no existe una forma absolutamente segura de almacenar contraseñas en dicho entorno . No hay una forma absolutamente segura y práctica de hacer nada.
En lugar de tratar de evitar lo inevitable, debes concentrarte en la defensa en profundidad .
Fristly, por supuesto, debe proteger las contraseñas adecuadamente . Esto generalmente significa mantenerlos en un archivo separado de su script y configurar permisos restrictivos del sistema de archivos . Eso es todo lo que puede hacer en este frente, desde una perspectiva de seguridad.
Sin duda, otras medidas pueden agregar oscuridad al proceso. Cifrar las contraseñas hará que el atacante necesite buscar la clave de descifrado. El uso de algún tipo de almacenamiento protegido del sistema operativo generalmente protege contra otros usuarios que acceden a su clave (por lo que no ofrece ninguna ventaja sobre los permisos del sistema de archivos, aparte de ser complejo de atacar y usar). Estas medidas retrasarán un ataque, pero ciertamente no lo impedirán contra un atacante determinado.
Ahora, tratemos las contraseñas como públicas por un momento. ¿Qué puedes hacer para mitigar el daño?
Una solución antigua y probada es restringir lo que esas credenciales pueden hacer. En un sistema UNIX, una buena manera de hacer esto es configurar un usuario separado para su script y limitar las capacidades de ese usuario , tanto en el acceso como en los servidores accedidos. Puede limitar las capacidades del usuario en el nivel SSH , en el nivel de shell o posiblemente utilizando un mecanismo de control de acceso obligatorio como SELinux .
Algo que quizás también desee considerar es mover la lógica del script a los servidores . De esa manera, obtienes una interfaz más pequeña que es más fácil de controlar, y especialmente ...
Monitor . Siempre supervise el acceso a los servidores. Preferiblemente, la autenticación de registro y los comandos ejecutados en un registro de solo agregar . No olvide monitorear los cambios en el archivo de script usando auditd
, por ejemplo.
Por supuesto, muchos de estos mecanismos no son útiles si no tiene control sobre los servidores, ya que su pregunta parece implicar. Si ese es el caso, le aconsejo que se ponga en contacto con las personas que administran los servidores y les informe sobre su secuencia de comandos y las posibles dificultades de seguridad.