Eu li alguns posts sobre o uso PermitUserEnvironment
e o arquivo ~/.ssh/environment
para passar variáveis env para um shell ssh. Os documentos oficiais do sshd e alguns outros recursos aludem a alguns riscos de segurança ao fazer isso.
A ativação do processamento do ambiente pode permitir que os usuários ignorem as restrições de acesso em algumas configurações usando mecanismos como LD_PRELOAD.
Qual é o provável problema de segurança da ativação PermitUserEnvironment
? Eu estava procurando manter os detalhes da conexão com o banco de dados nessas variáveis de ambiente, isso é aconselhável?
security
ssh
environment-variables
Rob Squires
fonte
fonte
Respostas:
Antes de tudo, se você não está tentando fazer algo sofisticado com as restrições de acesso do usuário - isto é, se você está oferecendo acesso interativo ao shell - provavelmente há zero risco de segurança adicional ao permitir o uso do
.ssh/environment
arquivo, pois qualquer coisa que o usuário pode realizar com esse arquivo que também pode executar interativamente em seu shell.Se você estiver usando comandos forçados do SSH para limitar o que as pessoas podem fazer via ssh (por exemplo, se você estiver restringindo as pessoas a usar apenas
sftp
ouscp
), permitir que alguém defina variáveis de ambiente comoLD_PRELOAD
(ou possivelmente atéPATH
) permitiria que eles sequestrassem o seu restrições, substituindo as chamadas básicas da biblioteca por seu próprio código. Por outro lado, se você estiver criando o.ssh/environment
nome de seus usuários e eles não conseguirem gerenciá-lo, seus riscos serão relativamente pequenos.Sem saber mais sobre seu caso de uso específico, é difícil fornecer uma resposta definitiva.
fonte