DDoS Deflate ainda funciona? Veja como instalar a versão mantida, o que ela protege de verdade e as alternativas para ataques DDoS maiores.
O DDoS Deflate é um script em shell que conta quantas conexões cada IP tem com o servidor e bloqueia no firewall quem passa de um limite. É simples e ainda resolve um tipo específico de problema: um ou poucos IPs abrindo conexões demais. Antes de instalar, vale entender o que ele não faz.
A situação do DDoS Deflate hoje
- O script original, de 2005, era distribuído por um site que não existe mais. O endereço
inetbase.com/scripts/ddos/install.sh, citado em tutoriais antigos, não deve ser usado. - A continuação mais usada é o projeto jgmdev/ddos-deflate no GitHub. A última versão publicada é a 1.3, de novembro de 2018, e o código não recebe mudanças desde 2021. Funciona, mas é um projeto parado.
- Ele enxerga só o que chega até o servidor. Um ataque que lota o link de rede antes de chegar à máquina não é resolvido por nenhum script instalado nela.
Antes de começar
- Acesso root pelo SSH.
- Se o servidor tem cPanel, ele quase certamente já tem o CSF. Nesse caso, prefira a proteção do próprio CSF (seção abaixo) em vez de ter dois programas mexendo no firewall.
- O IP do seu escritório e o dos seus serviços de monitoramento, para colocar na lista de exceções.
Como instalar o DDoS Deflate
- Instale as dependências. No Ubuntu e no Debian:
No AlmaLinux e no Rocky, ative o EPEL primeiro (veja repositórios no AlmaLinux e Rocky):apt install unzip dnsutils net-tools tcpdump dsniff grepcidr
O segundo comando é separado de propósito: se algum desses dois pacotes não existir para a sua versão, o resto já está instalado. Sem odnf install unzip bind-utils net-tools tcpdump dnf install grepcidr dsniffdsniff(que traz otcpkill), o script bloqueia o IP mas não derruba as conexões que já estavam abertas. - Baixe e instale:
O instalador detecta o systemd e deixa o serviçocd /usr/local/src wget https://github.com/jgmdev/ddos-deflate/archive/master.zip -O ddos.zip unzip ddos.zip cd ddos-deflate-master ./install.shddosrodando, verificando as conexões a cada 5 segundos. - Coloque seus IPs na lista de exceções em
/etc/ddos/ignore.ip.list, um por linha (aceita faixas como203.0.113.0/24). - Ajuste a configuração em
/etc/ddos/ddos.confe reinicie comsystemctl restart ddos.
As opções que importam no ddos.conf
| Opção | Padrão | O que faz |
|---|---|---|
NO_OF_CONNECTIONS | 150 | Conexões por IP a partir das quais ele bloqueia. |
BAN_PERIOD | 600 | Segundos de bloqueio. |
FIREWALL | auto | Detecta CSF, APF ou iptables e usa o que encontrar. |
ONLY_INCOMING | false | Com true, conta só conexões de entrada. Evita bloquear servidores com quem o seu servidor conversa (APIs, banco remoto). |
ENABLE_PORTS e PORT_CONNECTIONS | false | Limites diferentes por porta, no formato porta:conexões:tempo. |
EMAIL_TO | root | Quem recebe o aviso de cada bloqueio. |
Comandos úteis: ddos -b lista os IPs bloqueados, ddos -u IP desbloqueia e ddos -v mostra as conexões ativas por IP.
ENABLE_CLOUDFLARE.Em servidor com CSF: use o CT_LIMIT
O CSF tem o mesmo mecanismo embutido, o Connection Tracking. Em /etc/csf/csf.conf:
CT_LIMIT = "300"
CT_INTERVAL = "30"
CT_PORTS = "80,443"
CT_BLOCK_TIME = "1800"
Isso bloqueia por 30 minutos o IP com mais de 300 conexões nas portas web, verificando a cada 30 segundos. Complemente com CONNLIMIT e PORTFLOOD, explicados em como configurar o CSF. Rode csf -ra depois de mudar.
Contra ataques DDoS de verdade
Um DDoS volumétrico vem de milhares de IPs ao mesmo tempo, cada um com poucas conexões, e pode passar de dezenas de gigabits por segundo. Contar conexões por IP não pega esse tipo de ataque, e o link do servidor satura antes de qualquer script reagir. O que funciona:
- Mitigação do provedor ou do datacenter: filtragem na rede antes de o tráfego chegar ao servidor. É a única defesa contra ataques que lotam o link. Pergunte ao seu provedor se o servidor tem proteção DDoS e qual o limite.
- Proxy reverso para sites, como a Cloudflare: o tráfego web passa pela rede dela, que absorve o ataque. Depois, feche as portas 80 e 443 para quem não for o proxy, senão o atacante vai direto no IP do servidor.
- Limites no servidor web: o LiteSpeed e o NGINX têm limites de requisições por IP que seguram ataques na camada da aplicação (muitas requisições a uma página pesada).
Problemas comuns
Clientes legítimos estão sendo bloqueados
Escritórios inteiros saem pela internet com um IP só, e navegadores abrem várias conexões por página. Aumente NO_OF_CONNECTIONS (ou CT_LIMIT) e ponha o IP na lista de exceções.
Bloqueou o servidor de banco de dados ou de backup
Ligue ONLY_INCOMING=true e coloque o IP desses servidores em ignore.ip.list.