muitas tentativas de login com falha no SSH - devo estar preocupado? [duplicado]

7

Estou gerenciando vários servidores-raiz completamente diferentes em diferentes datacenters e percebo um número bastante alto de tentativas de login com SSH com falha na maioria deles. Aqui está uma foto dos últimos três dias:

Não há padrão regular, mas geralmente faço algumas centenas de tentativas por dia. Para mim isso parece botnets randonly tentando entrar em servidores estrangeiros. Eu uso senhas bastante seguras, mas ainda assim: eu deveria estar preocupado ou fazer algo sobre isso?

O melhor seria provavelmente alterar a porta SSH, mas isso não é possível em todos os casos.

De qualquer forma, isso é normal ?

NB: Os logins PublicKey são os esperados.

    
por Udo G 02.11.2011 / 14:52

6 respostas

13

Coisas que você pode fazer:

  1. É possível configurar regras iptables para bloquear ataques ssh, essas regras permitirão no máximo 3 conexões por minuto de qualquer host e bloquearão o host por mais um minuto se essa taxa for excedida.

    iptables -A ENTRADA -p tcp --dport 22 -m estado --state NOVO -m recente --set --name SSH -j ACCEPT iptables -A INPUT -p tcp --dport 22 -m recente --update --seconds 60 --hitcount 4 --rttl --name SSH -j LOG --log-prefixo "SSH_brute_force" iptables -A INPUT -p tcp --dport 22 -m recente --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP

  2. Bloquear via syslogs

    2.1 sshdfilter : usa o iptables para bloquear (isto é, adiciona dinamicamente regras de firewall personalizadas para bloquear um atacante específico).

    2.2 Fail2Ban : é um script Python que adiciona regras de firewall personalizadas para bloquear um invasor.

    2.3 DenyHosts : não usa regras de firewall para bloquear um ataque. Em vez disso, ele escreve regras de bloqueio para /etc/hosts.deny.

  3. Use o Port Knocking (como o knockd )

  4. A melhor solução, use a AUTENTICAÇÃO DA RSA:

    Se você não usar senhas, mas apenas chaves RSA para autenticação, uma busca por força bruta por uma senha válida obviamente será inútil.

Nota: Você pode combinar algumas dessas dicas, mas o simples Rsa auth + port knocking é uma solução sólida.

    
por 02.11.2011 / 15:16
5

Você deve se preocupar e tomar medidas para proteger seus servidores.

Continuando a resposta da cop1152:

  1. Você pode alterar a porta. No entanto, se você tiver clientes que usem regularmente ssh e esperem a porta padrão, isso não é uma opção.
  2. Você pode usar um pacote como o fail2ban ( link ) para banir temporariamente os IPs que fazem vários malsucedidos tentativas de login em um curto período de tempo.
  3. Se você conhece os IPs dos quais seus clientes efetuam login, você pode usar o fail2ban para bloquear todos os IPs, exceto os de IPs conhecidos (lista de permissões AKA: link ).
por 02.11.2011 / 15:14
5

Uma ótima maneira de parar essas tentativas é configurar Bater o porto .
Algumas ferramentas para fazer isso são knockd (C), fwknop (C), KnockKnock (Python) e KnockKnockServer (Java), para citar alguns.

Port knocking kan mantém sua porta SSH fechada para o exterior até que seja recebida uma "falha secreta" ou uma autorização de pacote único.

Depois que o seu servidor recebe a falha secreta, o firewall permite novas conexões SSH por alguns segundos, permitindo que você estabeleça uma conexão.

Issopodecausarumpoucodeinconveniência,masvocênãoterámaistentativasdelogindebotnets.

Créditodaimagem: cipherdyne.org

    
por 02.11.2011 / 15:12
2

Altere a porta, mas também a regra que proíbe os IPs que tentam fazer login e falham várias vezes. Além disso, considere apenas permitir o login a partir de determinados IPs e não permitir logins de raiz. Certifique-se de que o usuário tenha que elevar ao administrador para fazer qualquer coisa.

E você pode fazer melhor do que "senhas seguras" provavelmente. Uma pesquisa do Google mostrará algumas maneiras bastante fáceis de tornar suas conexões SSH mais seguras.

Sem ofensa, mas se você for encarregado de gerenciar esses servidores, você deve saber essas coisas já. Eu não mencionei nenhum pacote específico para download, mas eles são fáceis de encontrar.

    
por 02.11.2011 / 14:59
2

Em execução na porta ssh padrão e em um IP público e provavelmente aberto a conexões de todos. Sim essas coisas são regulares. Se você usar senhas seguras e strongs, talvez esteja seguro até certo ponto, mas, novamente, nunca se sabe.

Algumas coisas a fazer seria:

  1. use a autenticação baseada em chave pública e, se possível, desative a autenticação baseada em senha.
  2. Desativar login raiz.
  3. altere a porta ssh para algum aleatório, se alterá-lo em todos os servidores, tenha algum mecanismo para lembrá-los.
  4. use algum bloqueio automático desses IPs invasores usando o fail2ban ou outros pacotes semelhantes.
  5. Implemente um servidor RAS (OpenVPN) e permita somente que o ssh desligue esse servidor RAS nesses servidores. Nem sempre é factível, mas reduz suas chances de ser investigado.
por 02.11.2011 / 15:50
1

Algumas coisas que você poderia / deveria fazer:

  • Alterar a porta
  • Tigthen iptables (conexões máximas / min, IPs selecionados, ...)
  • Desativar o login root ssh
  • Desativar senhas em texto simples
  • Usar autenticação de chave
  • Use o Port Knocking (talvez um pouco acima do limite)

Sempre que você tiver um servidor acessível à Internet, você se deparará com isso. A maioria deles são apenas scripts tentando algumas combinações. Eu coloquei este comando no meu MOTD para rastreá-lo.

echo -ne "Total failed attempts: $(grep 'Failed password' /var/log/auth.log* | wc -l) failed attempts"
    
por 02.11.2011 / 15:05

Tags