Por que o sshd requer um caminho absoluto?

19

Por que sshd exige um caminho absoluto ao reiniciar, por exemplo, /usr/sbin/sshd em vez de sshd

Existe alguma implicação de segurança?

P.S a mensagem de erro:

# sshd
sshd re-exec requires execution with an absolute path
    
por daisy 15.01.2014 / 08:28

2 respostas

16

Isso é específico para o OpenSSH da versão 3.9 em diante.

Para cada nova conexão, o sshd será executado novamente, para garantir que todas as aleatorizações em tempo de execução sejam geradas novamente para cada nova conexão. Para que o sshd seja executado novamente, ele precisa conhecer o caminho completo para si mesmo.

Aqui está uma citação das notas de lançamento do 3.9:

  • Make sshd(8) re-execute itself on accepting a new connection. This security measure ensures that all execute-time randomisations are reapplied for each connection rather than once, for the master process' lifetime. This includes mmap and malloc mappings, shared library addressing, shared library mapping order, ProPolice and StackGhost cookies on systems that support such things

Em qualquer caso, geralmente é melhor reiniciar um serviço usando seu script de inicialização (por exemplo, /etc/init.d/sshd restart ) ou usando service sshd restart . Se nada mais, irá ajudá-lo a verificar se o serviço será iniciado corretamente após a próxima reinicialização ...

( resposta original, agora irrelevante: meu primeiro palpite seria de que /usr/sbin não está em seu $ PATH. )

    
por 15.01.2014 / 08:35
4

Isso impede que alguém injete um programa sshd em algum lugar em um dos diretórios em seu PATH e você, inadvertidamente, executá-lo. Esta postagem de 2004 já descreve o assunto.

    
por 15.01.2014 / 08:42