Por que o sshd requer um caminho absoluto?


23

Por que sshdrequer um caminho absoluto ao reiniciar, por exemplo, em /usr/sbin/sshdvez desshd

Existem implicações de segurança?

PS a mensagem de erro:

# sshd
sshd re-exec requires execution with an absolute path

Respostas:


20

Isso é específico do OpenSSH a partir da versão 3.9 em diante.

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

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

  • Faça o sshd (8) se reexecutar ao aceitar uma nova conexão. Essa medida de segurança garante que todas as randomizações em tempo de execução sejam reaplicadas para cada conexão em vez de uma vez, durante a vida útil do processo principal. Isso inclui mapeamentos mmap e malloc, endereçamento de biblioteca compartilhada, ordem de mapeamento de biblioteca compartilhada, cookies ProPolice e StackGhost em sistemas que suportam essas coisas

De qualquer forma, geralmente é melhor reiniciar um serviço usando o script init (por exemplo /etc/init.d/sshd restart) ou usando service sshd restart. Se nada mais, o ajudará a verificar se o serviço será iniciado corretamente após a próxima reinicialização ...

( resposta original, agora irrelevante: meu primeiro palpite seria que /usr/sbinnão está no seu $ PATH. )


É claro que a sua em $ PATH, caso contrário, como posso obter essa mensagem de erro do sshd ;-P
daisy

6
Você quer dizer a mensagem de erro que você não mencionou na sua postagem?
Jenny D

2
Meu mal, editou o post
daisy

6

Isso evita que alguém injete um sshdprograma em algum lugar de um dos diretórios do seu PATH e que você o execute inadvertidamente. Este post de 2004 já descreve o problema.


Embora essa publicação descreva o problema corretamente, as conclusões tiradas no encadeamento são errôneas. Não é um bug, é uma característica :-)
Jenny D

@ JennyD Por que você acha que é um bug? Eu nunca impliquei isso.
Timo

No post ao qual você se vinculou, uma resposta foi "Bug que apareceu na atualização para o mais recente openssh". Nenhuma das respostas nesse segmento mencionou o motivo real para exigir um caminho completo - algumas mencionaram o mesmo motivo, o que é muito plausível e mostra por que é uma boa idéia usar o caminho completo para qualquer programa que abra possibilidades de login. Mas esse não é o motivo real para esse programa específico ter esse requisito.
Jenny D
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.