Eu tenho uma pequena rede de servidores e gostaria de aumentar a segurança geral. Não tenho tempo / dinheiro / paranóia suficientes para configurar uma VPN - qual é a maneira básica de aumentar a segurança do meu sistema?
Uma coisa pode ser exigir que os usuários enviem suas chaves e insiram uma senha. Isso é meio difícil de pesquisar no google porque tudo sobre "senha da chave ssh" é sobre sshing sem senha. :-)
Um esquema com o qual eu sempre quis brincar é exigir que as conexões recebidas venham apenas de uma lista de permissões de endereços IP de endereços dinâmicos. Eu sei que alguns chefes de segurança vomitariam com o pensamento da idéia, mas o fato é que isso acrescentaria complexidade muito significativa para explorar uma caixa.
O que você acha? O que mais há por aí?
Respostas:
O login com senha e chave é o mesmo que "apenas com chave". Durante a criação da chave, você é solicitado a digitar a senha. Se você deixar em branco, não será solicitada uma senha. Se você preencher uma senha, será solicitada sempre que quiser fazer login.
Se você está preocupado com a segurança, considere alguns desses conselhos mencionados trilhões de vezes neste fórum:
Etc etc.
Atualização: Consulte a resposta aqui para saber como exigir uma chave pública e senha do sistema local com um servidor OpenSSH.
fonte
Uma ideia que achei interessante é a porta batendo - basicamente, para estabelecer a conexão ssh, primeiro é necessário investigar uma sequência de outras portas, antes que o servidor ssh reconheça uma solicitação de conexão. Se a sequência correta de portas não for usada, não haverá resposta; portanto, parece que não há servidor ssh em execução. A sequência de portas é personalizável e pode ser compartilhada com os usuários pretendidos; todo mundo seria efetivamente incapaz de se conectar.
Eu não tentei isso sozinho, mas pelo que ouvi (o que na verdade não é muito) a sobrecarga é insignificante e reduz tremendamente o seu perfil de visibilidade.
fonte
Patches relacionados à ativação diretamente no SSH e muita discussão relevante:
Isso também pode ser feito sem modificação, tendo um script de verificação de senha combinado com o uso da
ForceCommand
opção de configuração.Por fim, embora não exista nenhum módulo para ele, se você moveu a autenticação de chave pública para o PAM, seria necessário exigir que ambas as etapas passassem antes que o PAM considerasse a autenticação bem-sucedida.
fonte
Apenas use
em
sshd_config
se você estiver usando sshd de ssh.com. Este recurso não está disponível no OpenSSH.fonte
RequiredAuthentications
é a extensão definitivamente não padrão para OpenSSHVocê também pode usar senhas únicas para aumentar a segurança. Isso permitiria que os usuários fizessem login a partir de um terminal não seguro, que pode ter um keylogger, se eles tivessem gerado a próxima senha anteriormente. Além disso, existem geradores de senha que podem ser instalados mesmo em telefones Java MIDP antigos, que você carrega com você o tempo todo.
fonte
Eu recomendaria que você nunca execute um sshd, rdp ou esses serviços de gerenciamento sem restrição de IP. De fato, eu sugeriria limitar o acesso a esses serviços aos administradores conectados via VPN.
fonte
Com relação à sua pergunta original sobre exigir 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
fonte
Concordo plenamente com a 3molo. OpenSSH é o servidor SSH padrão do Linux e Unix. Não há razão para alterá-lo, principalmente 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.
fonte
Não sei por que ninguém o mencionou, mas - certifique-se de gerar as chaves mais do que 1024 bits padrão, que não são mais considerados seguros.
fonte