Meu servidor da Web é constantemente atacado por vários endereços IP. Eles tentam cinco senhas e depois alteram o endereço IP.
Eu fiz vários bloqueios, como usar chaves ssh e não permitir senhas, e não permitir o login raiz remoto.
Existe algo que eu possa fazer para me livrar dessas tentativas de ataque? Na falta disso, existem defesas específicas que eu devo colocar?
Respostas:
É de fato um fato da vida. Você pode instalar ferramentas para filtrar os hosts que o atacam após algumas tentativas falhas.
DenyHosts analisa seus arquivos de log e adiciona automaticamente atacantes ao seu
/etc/hosts.deny
arquivo.Verifique a documentação sobre como configurá-lo para suas necessidades.
Atualização : alguns pontos importantes sugeridos nos comentários
certifique-se de configurar as ferramentas corretamente como DenyHosts, pois você pode se bloquear (por exemplo, você pode configurar uma máquina ou rede que nunca é filtrada)
O DenyHosts não aumenta a segurança do sistema: apenas filtra ataques no nível do IP (pode reduzir a carga em máquinas pequenas e o tamanho dos arquivos de log, mas nada mais)
fonte
refs Q1.3
denyhosts.sourceforge.net/faq.html#1_0apt-get install denyhosts
me trancou fora da minha máquina.Segui estas instruções para adicionar um atraso de 7 segundos a cada tentativa de login com senha incorreta. Eu transformei meu sshd em um "tarpit" para os scanners de força bruta.
Devo também acrescentar que meu sshd tarpit modificado registra as senhas com falha. Isso pode não ser totalmente ético, pois fornece ao usuário root uma visão de quais usuários comuns digitam incorretamente como suas próprias senhas, mas como eu sou o único usuário "real", acho que está tudo bem.
Não o tenho executado em uma porta não padrão, pois o aspecto "tarpit" não desperdiçaria o tempo de ninguém.
fonte
Se apenas um pequeno número de pessoas precisar fazer o SSH para o sistema, considere mover o SSH para uma porta não padrão (por exemplo, 6422, 8080 etc.) Isso por si só reduzirá bastante o número de tentativas de login (e possivelmente protegerá você de algumas falhas não corrigidas) Worm baseado em exploração SSH, por exemplo).
fonte
Concordo com a resposta de @ Matteo; o que você vê são essencialmente milhares de sistemas zumbis executando um ataque de força bruta distribuída em seu servidor porque existe um site em execução, o que significa que pode haver usuários que possam ter uma conta de login que possa ser adivinhada com esforço mínimo por parte do script kiddie - ele tem um programa que ordena aos milhares de zumbis que façam tentativas de força bruta em algumas centenas de hosts de sites por vez e apenas compilem uma lista dos retornos bem-sucedidos.
Da mesma forma, às vezes você pode ver muitas permutas de "http://your.web.host/phpmyadmin/" em seus
/var/log/apache2/access.log
arquivos; essas são verificações automatizadas para as formas mais comuns de configurar o PHPMyAdmin e tentam várias explorações conhecidas se uma for encontrada (por isso, aliás, é por isso que comecei a pedir aos clientes que usassem o site da PMA que eu pessoalmente mantenha-se atualizado em vez de instalar sua própria versão e esqueça de mantê-la atualizada, mas agora estamos em uma tangente).Além de enviar o comando original, nem lhe custa tempo ou largura de banda; é fogo e esqueça.
Outro software muito útil para situações como essa é o fail2ban , que usa o iptables para bloquear tentativas de conexão após vários logons claramente falsos ou outras tentativas de exploração.
fonte
Tente configurar o Fail2ban . Ele fornece uma maneira muito flexível de procurar tentativas com falha e possui modelos para SSH, HTTP e serviços comuns.
O Fail2ban atualizará o iptables de acordo com suas ações. Adoro.
fonte
Você pode usar IPTABLES para interromper o tráfego sem executar um daemon como Fail2Ban ou DenyHosts.
fonte
Se você consegue, acho que a melhor maneira de lidar com coisas como essa é usar uma VPN. Dessa forma, a única coisa que eles podem atingir é a VPN. Não deve haver nenhum serviço aberto ao mundo em geral, exceto aqueles que são necessários para o acesso de "todos", como o servidor da web. Tudo o resto deve ser bloqueado pelo firewall. Agora, a única coisa que você realmente precisa se preocupar em proteger é sua VPN. Se puder, obtenha um IP estático para os computadores dos quais você gerencia seus servidores e bloqueie sua VPN nesse endereço IP específico. Esta é realmente a única maneira de impedir que as pessoas tentem forçar brutalmente as senhas.
fonte
Sshguard funciona muito bem. Estou usando junto com o iptables.
fonte