Fail2ban: como proteger VPS contra ataques brute force
Configure o Fail2ban na VPS para bloquear tentativas de login SSH em massa: instalação no Ubuntu/Debian, jail do sshd, integração com UFW e verificação de bans.

VPS com SSH exposto na internet recebe varreduras e tentativas de login o tempo todo. O Fail2ban lê falhas de autenticação e bloqueia o IP no firewall após um limite — sem precisar fechar a porta 22 manualmente.
1. Instalar o Fail2ban
sudo apt update
sudo apt install -y fail2ban
sudo systemctl enable --now fail2banNo Debian 12 minimal, instale também python3-systemd se o backend journal falhar: sudo apt install -y python3-systemd.
2. Configurar o jail do SSH
Não edite jail.conf. Crie jail.local com apenas o que você quer sobrescrever:
[DEFAULT]
backend = systemd
banaction = ufw
findtime = 10m
maxretry = 3
bantime = 1h
ignoreip = 127.0.0.1/8 ::1 SEU.IP.FIXO.AQUI
[sshd]
enabled = true
port = ssh
maxretry = 3
bantime = 3600| Opção | Função |
|---|---|
| findtime | Janela em que as falhas são contadas |
| maxretry | Tentativas antes do ban |
| bantime | Duração do bloqueio (3600 = 1 hora) |
| ignoreip | IPs que nunca serão banidos |
| banaction = ufw | Integra com UFW se já estiver em uso |
3. Aplicar e verificar
sudo systemctl restart fail2ban
sudo fail2ban-client status
sudo fail2ban-client status sshd
# Desbanir IP específico
sudo fail2ban-client set sshd unbanip 203.0.113.10
# Ver regras UFW adicionadas pelo Fail2ban
sudo ufw status numberedO status do jail sshd deve mostrar currently banned e total banned após tentativas reais de invasão. Em ambiente de teste, não force ban no seu próprio IP sem ignoreip configurado.
4. Endurecer o SSH (complemento)
- Desative login por senha e use chave SSH (PasswordAuthentication no)
- Troque a porta padrão 22 se fizer sentido na sua política
- Mantenha UFW permitindo só portas necessárias
- Atualize o sistema: sudo apt upgrade
Fail2ban reduz ruído de brute force; chave SSH e firewall fechado são a base. Para servidores de jogo na VPS, veja também o guia de otimização de performance do Minecraft.
5. Jail opcional para Nginx (painel web)
Se expõe painel ou site com login HTTP, habilite jails como nginx-http-auth ou nginx-botsearch (dependem dos logs em /var/log/nginx/). O princípio é o mesmo: filtro + limite + ban no firewall.
Erros comuns
- Jail sshd inativo por backend errado (use systemd no Ubuntu 22.04+)
- banaction incompatível com o firewall (UFW vs nftables puro)
- Esquecer ignoreip e perder acesso SSH
- Achar que Fail2ban protege contra DDoS volumétrico
- Editar jail.conf e perder configuração no apt upgrade
Perguntas frequentes
Respostas diretas antes de contratar
Você também pode gostar
Servidor dedicado vs VPS: quando contratar cada um
Compare servidor dedicado e VPS para Minecraft e jogos: performance, custo, isolamento de recursos, Anti-DDoS e cenários ideais para escolher a infraestrutura certa no Brasil.
Samuel Akires
Como transferir o gerenciamento de DNS do seu domínio para a Cloudflare
Aprenda a migrar o DNS do seu domínio para a Cloudflare sem derrubar site ou e-mail: revise os registros, troque os nameservers, valide a propagação e reative o DNSSEC.
Samuel Akires
Mods e otimização de servidor Minecraft para performance
Guia completo de performance para servidores Minecraft: mods de otimização, flags JVM, view-distance, limites de entidades, Spark profiler e boas práticas para manter TPS estável em vanilla, Paper e modpacks.
Samuel Akires
Como criar um servidor Minecraft Java na RoxyCloud
Tutorial passo a passo para criar servidor Minecraft Java Edition na RoxyCloud: escolha o plano certo, instale Paper no painel, aceite a EULA, configure e convide amigos em minutos.
Samuel Akires
