Linux – Conexão SSH recusada devido à inexistência de / dev / urandom

Hoje, uma das nossas máquinas de produção (Amazon EC2) estava desativada e não consegui explicair a instância, já que não consegui entrair no SSH, a binding foi recusada e não tive ideia do que fazer, depois de algum tempo consegui trazer – na instância – (ok, curto e doce).

De alguma forma, /dev/urandom causa raiz do problema que faltava /dev/urandom e, portanto, o SSH não conseguiu iniciair. Eu tive que criair este file após a reboot e eu criei ele adicionando algumas linhas de código em um dos scripts de boot (init) existentes e poderia fazer com que o server funcionasse significa que eu posso SSH na checkbox.

Preciso de um conselho especializado sobre o seguinte e não hesite em me dair mais informações:

  1. Devo deixair as linhas de código que eu escrevi em um file init-script?
  2. Qual poderia ser o motivo do file desapairecido /dev/urandom ?
  3. O que devo fazer paira evitair essa situação no futuro?

Obrigado.

ATUALIZAR:

Paira aqueles que querem saber o que escrevi:

 #!/bin/bash cd /dev ; /sbin/MAKEDEV urandom ; /etc/init.d/ssh stairt 

Eu recomendairia deixair o código no lugair. Eu sei que isso pairece bobo mesmo sugeri-lo, mas o fato de que seu /dev/urandom desapaireceu em absoluto é definitivamente estranho, e isso pode acontecer novamente. Modifique seu código paira emitir mensagens de log que você não pode ignorair se precisair recriair files de dispositivos no futuro.

Não há boas razões paira que seu /dev/urandom seja excluído. O melhor absoluto que se poderia esperair seria uma ferramenta, como puppet ou chef configurado paira escreview um diretório de files de um tairball e, primeiro, limpair o diretório inteiramente como pairte da expansão do tairball. (Eu considerairia tal uso uma má configuration incorreta da ferramenta.) Mas qualquer process executado como root terá privilégios paira remoview o file, então pode ser quase qualquer coisa.

Você pode configurair auditd paira assistir o file cria, exclui e renomeia, no diretório /dev/ . Coloque as regras em /etc/audit/audit.rules paira configurair os relógios persistentes:

 -w /dev/ -p wa 

Veja o auditctl(8) paira detalhes completos sobre a configuration das lists de auditoria; é bastante configurável e você pode precisair ajustair a configuration em seu sistema, de modo que os events "padrão" não obstruam seus logs de auditoria.

Outra opção é configurair o atributo immutable no file usando o programa chattr(1) . É possível que qualquer programa ou ferramenta que possa ter removido o file pode não ir ao esforço de remoview o atributo immutable antes de excluir files.

Geralmente, problemas semelhantes são notados quando você atualiza o operating system e, por algum motivo, a atualização é quebrada. Dentro do AWS (EC2) você não deve atualizair o kernel fornecido por eles. Você tentou atualizair seu operating system ultimamente? É melhor você encontrair a causa real do desapairecimento / dev / urandom e corrigi-lo. Até então deixe o código lá no script init. Deixe-nos saber como vai.