Como posso aumentar a segurança do ssh? Posso exigir uma chave e uma senha?

16

Eu tenho uma pequena rede de servidores e gostaria de aumentar a segurança geral. Eu não tenho tempo / dinheiro / paranoia suficientes para configurar uma VPN - o que é uma maneira básica de aumentar a segurança do meu sistema?

Uma coisa pode ser exigir que os usuários enviem sua chave e insiram uma senha. Isso é meio difícil de procurar porque tudo sobre "senha da chave ssh" é sobre sshing sem uma senha. : -)

Um esquema com o qual eu sempre quis brincar é exigir que as conexões de entrada só venham de uma lista branca de endereços IP dinâmicos. Eu sei que algumas cabeças de segurança vomitariam ao pensar na ideia, mas o fato é que isso acrescentaria complexidade muito significativa para explorar uma caixa.

O que você acha? O que mais está lá fora?

    
por John Bachir 19.07.2010 / 09:33

9 respostas

8

O login com senha e chave é o mesmo que "apenas com chave". Durante a criação da chave, você é solicitado a inserir a frase secreta. Se você deixar em branco, não será solicitada uma senha. Se você preencher uma frase-senha, você será solicitado sempre que quiser fazer login.

Se você estiver preocupado com a segurança, considere alguns desses conselhos mencionados trilhões de vezes neste fórum:

  • Desativar login do ssh para raiz
  • Permitir acesso ssh apenas a partir de endereços IP definidos (iptables, hosts.allow, ...)
  • Mova a porta ssh para outra porta (mais obscuridade que segurança, mas funciona)
  • Monitorize as tentativas de início de sessão estrangeiras e reaja de acordo
  • Mantenha seu sistema atualizado

Etc, etc.

Atualização: Consulte a resposta aqui para saber como exigir uma chave pública e uma senha do sistema local com um servidor OpenSSH.

    
por 19.07.2010 / 09:46
6

Uma idéia que eu achei interessante é porta batendo - basicamente, para estabelecer a conexão ssh, você primeiro precisa sondar uma sequência de outras portas, antes que o servidor ssh reconheça um pedido de conexão. Se a sequência correta de portas não for usada, não há resposta, então parece efetivamente que não há nenhum servidor ssh em execução. A sequência de portas é personalizável e pode ser compartilhada com os usuários pretendidos; todos os outros seriam efetivamente incapazes de se conectar.

Eu não tentei isso sozinho, mas pelo que eu ouvi (o que não é muito, na verdade) a sobrecarga é insignificante e reduz enormemente o seu perfil de visibilidade.

    
por 19.07.2010 / 10:22
3

Patches relacionados à ativação diretamente no SSH e muita discussão relevante:

Isso também pode ser feito sem modificação com um script de verificação de senha combinado com o uso da opção de configuração ForceCommand .

Por fim, embora não exista nenhum módulo para ele, se você mover a autenticação de chave pública para o PAM, poderá exigir que ambas as etapas sejam aprovadas antes que o PAM considere a autenticação bem-sucedida.

    
por 11.01.2012 / 19:27
2

Apenas use

RequiredAuthentications publickey, password

em sshd_config se você estiver usando o sshd em ssh.com. Este recurso não está disponível no OpenSSH.

    
por 11.01.2012 / 18:39
1

Você também pode usar senhas de uso único para aumentar a segurança. Isso permitiria que os usuários fizessem login a partir de um terminal inseguro, que pode ter um keylogger, caso tenham gerado a próxima senha. Também existem geradores de senhas que podem ser instalados mesmo em telefones Java MIDP mais antigos, que você carrega com você o tempo todo.

    
por 19.07.2010 / 09:56
1

Eu recomendaria que você nunca executasse um sshd, rdp ou serviços de gerenciamento sem restrição de IP. Na verdade, sugiro limitar o acesso a esses serviços aos administradores que se conectam pela VPN.

    
por 13.07.2011 / 08:57
1

Em relação à sua pergunta original sobre a exigência de uma chave e uma senha, se você estiver executando o RHEL ou o CentOS 6.3, isso agora é possível. As notas de versão do RHEL 6.3 descrevem , é uma questão de adicionar isso ao seu sshd_config

RequiredAuthentications2 publickey,password
    
por 27.07.2012 / 01:11
0

Concordo strongmente com o 3molo. O OpenSSH é o servidor SSH padrão do Linux e do Unix. Não há motivo para alterá-lo, especialmente por segurança. A VPN deve ser a melhor solução, que pode criptografar nosso tráfego e fornecer a autorização de senha em duas etapas.

    
por 17.02.2012 / 09:19
0

Não sei por que ninguém mencionou isso, mas você deve certificar-se de gerar as chaves mais longas que o padrão de 1024 bits, o que não é mais considerado seguro.

    
por 27.07.2012 / 01:15

Tags