Como Proteger sua VPS Contra Varreduras Maliciosas: Guia Completo de Instalação e Configuração do Fail2Ban

Sejamos realistas: para muitos administradores de sistemas, no momento em que você compra um servidor, instala o sistema e aponta o domínio para o IP público, sua máquina já se torna alvo de dezenas de milhares de scripts automatizados ao redor do mundo.

Em 2026, confiar apenas na alteração da porta SSH ou na instalação de um painel de controle visual não é mais suficiente. Se você verificar o arquivo /var/log/auth.log, verá a tela cheia de tentativas de login por força bruta vindas de diversas regiões. Mesmo que você desabilite o login por senha, essas requisições maliciosas simultâneas continuam consumindo o processamento (CPU) e o número de conexões de rede do seu servidor.

Para evitar que seu servidor de produção seja paralisado por scanners ou até mesmo transformado em uma máquina zumbi (botnet), vamos direto à solução de defesa robusta: Instalação e Configuração Detalhada do Fail2Ban.

Esta solução não apenas intercepta com precisão o brute-force no SSH, mas também se integra ao Nginx para defender seu site contra ataques de negação de serviço (CC) e invasões no WordPress. Forneceremos conclusões claras, dados técnicos e arquivos de configuração prontos para uso, resolvendo de vez o problema das varreduras maliciosas.

Entendendo a Lógica do Fail2Ban

No ambiente da rede pública, as varreduras maliciosas geralmente se dividem em dois tipos:

  1. Varredura de Portas e Brute-force SSH: Robôs tentam incessantemente a porta 22 (ou outras), usando dicionários de senhas fracas.
  2. Vulnerabilidades Web e Scanners CC: Focados em plataformas como WordPress, buscam por wp-login.php, diretórios de plugins sensíveis ou fazem requisições de alta frequência para esgotar o banco de dados.

A lógica do Fail2Ban é elegante: ele é essencialmente um Sistema de Prevenção de Intrusão (IPS) baseado em logs. Ele monitora em tempo real vários arquivos de log (como SSH, Nginx e logs do sistema). Se detectar que um IP disparou um número de comportamentos maliciosos (maxretry) dentro de um período definido (findtime), o Fail2Ban aciona o firewall do sistema (iptables, ufw ou firewalld) para descartar (Drop) esse IP na camada de rede por um tempo determinado (bantime).

🔥 Parâmetros de Defesa Core do Fail2Ban
Dados Técnicos
Nome do Parâmetro Descrição Unidade/Formato Valor Sugerido Efeito Prático
findtime Período de contagem Segundos (s) / Minutos (m) 10m (600s) Define a janela de tempo do ataque
maxretry Máximo de erros Número 3 a 5 Bloqueia após exceder estes erros
bantime Tempo de banimento Horas (h) / Dias (d) 24h ou 48h Tempo de permanência no bloqueio

Instalação Rápida e Correção da Lógica de Configuração

Independentemente de sua VPS rodar Debian ou Ubuntu, o processo de instalação é extremamente simples.

1. Instalação com um clique

sudo apt update
sudo apt install fail2ban -y

2. A Regra de Ouro da Configuração

Após a instalação, os arquivos ficam em /etc/fail2ban/. Aqui está um erro comum de iniciantes: nunca edite o arquivo jail.conf diretamente.

A lógica de leitura correta é: O sistema carrega primeiro a configuração padrão global de jail.conf e, em seguida, lê jail.local, onde os parâmetros deste último sobrescrevem os do primeiro. Quando o software for atualizado no futuro, o jail.conf será substituído, mas suas configurações em jail.local permanecerão intactas.

Portanto, o primeiro passo é copiar o arquivo original:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

3. Editando a Estratégia Global

Abra /etc/fail2ban/jail.local e localize o bloco [DEFAULT] para definir sua linha de base de segurança:

Configuração de segurança global no Fail2Ban
  • ignoreip = 127.0.0.1/8 ::1 SEU_IP_LOCAL (Lista branca para evitar auto-bloqueio, crucial).
  • bantime = 24h (Tempo de punição).
  • findtime = 10m (Janela estatística).
  • maxretry = 3 (Tentativas toleradas).

Prática Avançada 1: Combo de Defesa SSH

Existe um mito de que ‘se desabilitei senhas e uso Chaves SSH, não preciso do Fail2Ban’. Isso é perigoso. Mesmo com chaves, scripts maliciosos continuam tentando conexões TCP, gerando logs inúteis e consumindo recursos do serviço SSH para processar os handshakes.

A defesa definitiva é: Mudar a porta padrão do SSH + Desabilitar login Root por senha + Apenas chaves SSH + Fail2Ban como última camada. Isso reduz 99% das tentativas e o Fail2Ban descarta o resto na camada de rede.

[sshd]
enabled = true
port    = 2222  # Ajuste para sua porta SSH customizada
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 3

Prática Avançada 2: Proteção WordPress

Para ataques ao wp-login.php e XML-RPC, as versões novas do Fail2Ban já trazem regras predefinidas. Adicione ao final do seu jail.local:

[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/nginx/access.log
maxretry = 5
findtime = 10m
bantime = 24h

Prática Avançada 3: Defesa contra Ataques CC no Nginx

Ataques CC usam várias máquinas para simular usuários reais e esgotar o PHP/Banco de Dados. Com o módulo limit_req do Nginx, o Fail2Ban pode bloquear esses IPs rapidamente.

1. Bloqueio de Requisições de Alta Frequência

[nginx-limit-req]
enabled = true
port    = http,https
filter  = nginx-limit-req
logpath = /var/log/nginx/error.log
findtime = 1m
maxretry = 10  # Bloqueia se atingir o limite 10 vezes em 1 minuto
bantime = 24h

2. Bloqueio de Scanners de Vulnerabilidade 404

[nginx-botsearch]
enabled = true
port     = http,https
filter   = nginx-botsearch
logpath  = /var/log/nginx/access.log
maxretry = 3

Após configurar, reinicie o serviço: sudo systemctl restart fail2ban. Verifique o status com: sudo fail2ban-client status nginx-limit-req.

💡 Guia de Sobrevivência:

  • Cuidado com banimento permanente (bantime = -1): Isso pode tornar as correntes do firewall gigantescas, prejudicando a performance e dificultando a solução de problemas de bloqueio indevido. O ideal são bans de 24-48 horas.
  • Entenda a Defesa em Camadas: O Fail2Ban opera na camada de aplicação/sistema. Para ataques DDoS massivos de centenas de Gbps, você precisa de limpeza de tráfego (DDoS Scrubbing) no nível do Data Center. Use máquinas com proteção inclusa na rede do provedor e o Fail2Ban para a precisão cirúrgica na aplicação.

Seguindo este guia, a estrutura de segurança do seu servidor estará à frente de 90% dos concorrentes que operam sem proteção no mercado.

Fim do artigo
 0
Comentários(Sem comentários)