He leído bastantes publicaciones sobre el uso PermitUserEnvironment
y el archivo ~/.ssh/environment
para pasar variables env a un shell ssh. Los documentos oficiales de sshd y algunos otros recursos aluden a algunos riesgos de seguridad al hacer esto.
Habilitar el procesamiento del entorno puede permitir a los usuarios eludir las restricciones de acceso en algunas configuraciones utilizando mecanismos como LD_PRELOAD.
¿Cuáles son los posibles problemas de seguridad de la activación PermitUserEnvironment
? Estaba buscando mantener los detalles de conexión de DB en estas variables de entorno, ¿es esto aconsejable?
security
ssh
environment-variables
Rob Squires
fuente
fuente
Respuestas:
En primer lugar, si no está tratando de hacer algo elegante con las restricciones de acceso de los usuarios, es decir, si está ofreciendo acceso de shell interactivo, probablemente no existan riesgos de seguridad adicionales al permitir el uso del
.ssh/environment
archivo, ya que cualquier cosa el usuario podría lograr con ese archivo que también podría hacer interactivamente en su shellSi está utilizando comandos forzados SSH para limitar lo que las personas pueden hacer a través de ssh (por ejemplo, si está restringiendo a las personas a usar solo
sftp
oscp
), permitir que alguien establezca variables de entorno comoLD_PRELOAD
(o posiblemente inclusoPATH
) les permitiría secuestrar su restricciones al reemplazar las llamadas básicas de la biblioteca con su propio código. Por otro lado, si está creando el.ssh/environment
nombre en nombre de sus usuarios y no pueden administrarlo de otra manera, sus riesgos son relativamente pequeños.Sin saber más sobre su caso de uso particular, es difícil proporcionar una respuesta definitiva.
fuente