Sessão SSH potencialmente invadida e práticas recomendadas para SSH

14

Estou surtando um pouco no momento. Estou SSHing em um servidor remoto que eu comissionei recentemente. Eu estou fazendo isso como raiz. Instalei o fail2ban e tive uma quantidade enorme de IPs proibidos no log.

A última vez que entrei, notei que meu terminal estava realmente lento e minha conexão à Internet caiu. Quando o comprei após cerca de 5 minutos, efetuei login novamente no servidor e fiz um 'quem' e percebi que havia dois usuários root logados. Eu pensaria que, se minha conexão terminasse, o processo da última sessão teria sido parou no servidor?

A conexão terminou com um 'Falha na gravação: tubo quebrado' quando eu fui desconectado. Eu matei a sessão do bash com a outra raiz. Eu não sei muito sobre segurança ssh, no entanto, as sessões podem ser invadidas? existe uma maneira de verificar isso? Preciso continuar logando via ssh, que precauções devo tomar? Se de alguma forma eu estivesse passando por um proxy para acessar meu servidor (como um homem no ataque do meio), eles poderiam seqüestrar minha sessão ssh?

MarMan29
fonte

Respostas:

40

Os logins raiz provavelmente estão danificando as sessões do shell que você já foi. Provavelmente seu servidor também está recebendo o dDOS com todas as tentativas de logon.

Bloqueie o SSH. Não permita o login root e as solicitações que estão tentando fazer força bruta nesta máquina falharão imediatamente (consumindo muito menos recursos). Efetue login como usuário normal e aumente as permissões viasudo , uma prática que você deve fazer de qualquer maneira. Também restrinja o login SSH a uma lista de IPs de clientes, para que as máquinas desagradáveis ​​nem possam tentar fazer login.

Use chaves SSH em vez de senhas para o login do usuário. Eles são mais fáceis de lidar e podem ser protegidos por senha, caso você acidentalmente entregue uma chave privada para o lugar errado (dando-lhe tempo para substituí-las e invalidar a antiga). Como o @EEAA mencionado nos comentários, você também deve desativar a autenticação baseada em senha, se desejar restringir os clientes a usar apenas chaves em vez de senhas e chaves.

Se os clãs mongol continuarem a agredir a muralha da cidade, talvez mude o SSH para uma porta alta diferente (abaixo de 1024, como @AustinBurke apontou - para usar uma porta privilegiada) em vez de 22. Isso reduzirá o tráfego nessa porta se é um problema para você (e a maioria dos bots não é muito elegante, então eles tentam apenas 22). Isso não impedirá que você tente a porta 22 ou mesmo escaneie sua máquina para ver qual porta está escutando no SSH e, na maioria dos casos, é um inconveniente desnecessário. Mas isso pode ajudar.

Outros podem fornecer mais dicas, mas essas são medidas de segurança bastante genéricas para um servidor SSH voltado para o público.

Spooler
fonte
22
Usar chaves não é suficiente. É preciso desativar a autenticação de senha também.
EEAA
4
@marcelm "Uma quantidade enorme de IPs proibidos no log " não sugere que isso possa estar acontecendo?
TripeHound
4
@tripehound Não, não. Não diz nada sobre os recursos relativos consumidos.
Marcelm #
3
No entanto, é uma dica para esse efeito, @marcelm.
Lightness Races com Monica
4
Embora isso seja viável neste universo, o ssh é bastante seguro. É claro que você pode pegar esse tráfego durante o voo e armazená-lo em seu estado criptografado, mas uma troca de chaves Diffie – Hellman é usada para estabelecer um canal criptografado. Quebrar isso nem é possível se você tiver a chave ssh privada e pública que foi usada para autenticação, pois a chave do fluxo nunca foi comunicada durante a sessão. Quando alguém quebrar esse fluxo, todos estaremos mortos.
Spooler