Testando os limites do UFW com milhares de blocos de negação

1

O negócio é o seguinte: Eu tenho um persistente botnet chinês que me irrita no fórum (rodando em um servidor Ubuntu 12.04.2 em nginx, etc). Eu tenho usado o UFW ("Uncomplicated FireWall" do Ubuntu) para gerenciar o firewall, apenas como uma maneira simples de não ter que lidar com o iptables.

Eu identifiquei o URL extremamente consistente e exclusivo (para não dizer burro) que ele tenta carregar cada vez que um bot acerta, e a partir disso fiz um cron para analisar os logs de acesso a cada hora e encontrar novos invasores, e ufw deny from [ip-address] neles.

No entanto, o ataque não pára. É incrível. Estou registrando cada IP bloqueado e são quase 17.000 IPs. 98% dos IPs são da China, com alguns aqui e ali de outros países.

Este aparece funcionando bem: na prática, todos esses ataques são bloqueados, e as conexões voltaram ao normal, o tráfego diminuiu exponencialmente e o DDOS efetivo parou (se eu deixar esses clientes passarem, o volume e a velocidade dos pedidos são impressionantes).

O UFW também parece estar bem com isso. Nada está diminuindo, as solicitações estão sendo atendidas com a mesma velocidade, a latência não sofreu tanto quanto eu posso dizer. Eu tentei combinar os IPs individuais em intervalos, tanto quanto possível, mas seria difícil descobrir todos eles, e iria bloquear uma ordem de grandeza mais IPs do que realmente estão causando problemas.

Então, algumas perguntas:

  1. Quantas regras (presumivelmente iptables quando tudo estiver dito e feito) posso razoavelmente ter antes de me preocupar?
  2. Existe algum efeito negativo possível para continuar essa prática exata?
  3. Quaisquer alterações ou melhorias sugeridas?
  4. Alguém sabe sobre esse bot? Está atacando o bbPress. Existe uma maneira melhor de prevenir ataques como este em vez de tratar os sintomas?

Eu não quero bloquear toda a China, infelizmente, já que sei que temos usuários lá ...

    
por trisweb 10.05.2013 / 14:26

3 respostas

1

  1. Muito poucos
  2. Você irá, em algum momento, desacelerar seu sistema
  3. Veja abaixo
  4. Não eu

Você pede possíveis melhorias, e o primeiro passo é acelerar o ciclo de feedback. Na minha experiência, os DDOS vão embora mais rapidamente se eles perceberem rapidamente que estão sem sucesso. Portanto, responda às solicitações desse URL com um 404 e bloqueie-as imediatamente (uma maneira de conseguir isso é inserir o endereço IP em um tubo de beans e transformar o seu cronjob em algo continuamente em execução, que pesquisa o tube e bloqueia).

    
por 10.05.2013 / 14:38
1

1-2. Teoricamente, quantos você quiser. Praticamente você começaria a observar alguns problemas de memória, porque todas essas regras precisam ser carregadas. Então você teria o problema real de estourar sua CPU porque você teria que verificar todas essas regras até atingir a que combina. Também depende do que você está registrando (ou seja, você está registrando tudo, todos os DROPs e assim por diante?)

3.Use conjuntos IP, bloqueie blocos IP inteiros e / ou combine com firewall de hardware.

4.Não estou familiarizado com o bbPress, mas há um monte de coisas que você pode fazer para mitigar ataques, do armazenamento em cache ao pré-bloqueio de blocos IP relacionados à botnet.

    
por 10.05.2013 / 14:41
1

Isso não afetará o impacto da memória (até piorará um pouco), mas economizará a carga da CPU: se você não fizer isso, deverá colocar o restante do mundo na lista de permissões em vez de verificar todas as conexões recebidas em sua longa lista. IPs bloqueados.

    
por 10.05.2013 / 15:00