Qual é a lógica das permissões padrão de / etc / ssh / ssh_known_hosts?

4

Por padrão, o Debian e o Ubuntu (pelo menos) definem /etc/ssh/ssh_known_hosts sem permissão de leitura para outros. Qual a lógica por trás disso? Não consigo pensar em nenhum risco de segurança com o+r e, por outro lado, tê-lo publicamente legível é útil para arquivos distribuídos pelo administrador.

    
por Daniel C. Sobral 22.08.2011 / 20:52

3 respostas

2

Eu diria que o ponto de bloquear o acesso a esse arquivo é evitar que um intruso que tenha comprometido seu sistema obtenha uma lista de hosts aos quais meu sistema tem acesso. A lógica semelhante se aplica à opção HashKnownHosts sendo ativada por padrão ultimamente. Você geralmente não quer que seu sistema forneça tudo que um intruso precisa para controlar tudo na sua rede.

Se você adicionou apenas entradas com hash em seu /etc/ssh/ssh_known_hosts , não acho que seria um grande negócio, pois não é possível reverter o hash.

    
por 22.08.2011 / 21:07
0

As chaves ssh não devem ser compartilhadas sem um bom motivo. / etc / ssh / * são opções de configuração que se aplicam a todos usuários. O arquivo ssh_known_hosts é uma maneira de especificar uma lista de hosts conhecidos para todos os usuários que efetuam login nessa caixa. Acredito que você também possa adicionar entradas ao /home/*/.ssh/known_hosts para aplicar um host "conhecido" a um usuário específico. Não deve haver problemas com o proprietário ter permissões de leitura .... na verdade ... todos os usuários devem ter permissões de leitura nesse arquivo. A preocupação é quando você aplica permissões de gravação.

Esse arquivo é usado para identificar a impressão digital do servidor remoto ... assim, quando você faz ssh em seu servidor uber-secure ... você está realmente ssh'in em seu servidor ... e não em algum outro servidor de propriedade de um servidor. hacker que está jogando man-in-the-middle.

    
por 22.08.2011 / 20:58
0

Se isso ainda acontecer, então parece ser um bug. O ssh usa a permissão do usuário quando lê este arquivo, portanto, se ele não for legível pelo mundo, ele não terá efeito algum.

Acabei de testar o id. Se eu definir a permissão de / etc / ssh / ssh_known_hosts para 600, então o ssh exibirá que "A autenticidade do host ... não pode ser estabelecida".

Se eu configurá-lo para 644, posso fazer login no servidor remoto sem o prompt.

sshd man page afirma claramente que "Este arquivo deve ser gravável apenas pelo usuário root / proprietário e deve ser legível por todos. "

    
por 12.11.2017 / 13:41