Como limitar tentativas de login SSH com o Fail2ban
Olá! Aqui é a Sensei da GeHost 🥋 e hoje vamos falar de um assunto que deixa qualquer servidor mais tranquilo: como impedir que robôs e invasores fiquem tentando adivinhar a senha do seu SSH a noite toda. A ferramenta certa pra isso se chama Fail2ban, e vou te mostrar, com calma, como instalar e configurar.
Este guia é voltado para quem tem acesso SSH com privilégios administrativos (root/sudo) ao servidor. Se você não sabe se o seu plano ou serviço contempla esse tipo de acesso, é só chamar o suporte GeHost pelo painel (painel.gehost.com.br) antes de seguir — a gente confirma pra você com prazer.
O que é o Fail2ban e por que ele ajuda?
Pensa no Fail2ban como um segurança na porta do seu servidor. Ele fica de olho nos registros (logs) de acesso e, quando percebe que alguém errou a senha várias vezes seguidas em pouco tempo, bloqueia o IP dessa pessoa por um período. Isso reduz drasticamente as tentativas de "força bruta" contra o seu SSH.
Antes de começar
- Você vai precisar de acesso SSH ao servidor com permissão de administrador (root ou sudo).
- Nunca feche a janela do terminal enquanto estiver mexendo em regras de firewall/SSH — se algo travar sua própria conexão, é bom ter uma segunda forma de acessar o servidor (como o console do seu provedor) só por segurança.
- Anote a porta que seu SSH usa atualmente antes de mudar qualquer configuração.
Passo 1 — Instalando o Fail2ban
Conecte-se ao servidor via SSH e escolha o comando de acordo com o sistema:
Em distribuições baseadas em Debian/Ubuntu:
sudo apt update sudo apt install fail2ban -y
Em distribuições baseadas em CentOS/AlmaLinux/RHEL:
sudo yum install epel-release -y sudo yum install fail2ban -y
Passo 2 — Criando o arquivo de configuração local
O Fail2ban vem com um arquivo padrão chamado jail.conf, mas a boa prática é nunca editar esse arquivo direto — ele pode ser sobrescrito em atualizações. Vamos criar uma cópia personalizada:
- Copie o arquivo padrão:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- Abra o novo arquivo com um editor de texto, por exemplo:
sudo nano /etc/fail2ban/jail.local
Passo 3 — Configurando a proteção do SSH
Dentro do arquivo jail.local, procure a seção [sshd] (ou crie uma, se não existir) e ajuste assim:
[sshd] enabled = true port = ssh filter = sshd maxretry = 5 findtime = 600 bantime = 3600
Traduzindo cada linha pra você:
- enabled = true → liga a proteção para o SSH.
- maxretry = 5 → depois de 5 tentativas erradas, o IP é bloqueado.
- findtime = 600 → essas tentativas são contadas dentro de uma janela de 600 segundos (10 minutos).
- bantime = 3600 → o IP fica banido por 3600 segundos (1 hora). Você pode aumentar esse valor se quiser um bloqueio mais longo.
Dica da Sensei: se você tiver um IP fixo que usa sempre (o seu, do escritório, etc.), pode adicioná-lo na lista de exceções com a linha ignoreip = 127.0.0.1/8 SEU_IP_AQUI dentro da mesma seção, assim você nunca corre o risco de se bloquear sozinho por engano.
Passo 4 — Salvando e reiniciando o serviço
- Salve o arquivo (no nano:
Ctrl+O, Enter, depoisCtrl+Xpara sair). - Reinicie o Fail2ban para aplicar as mudanças:
sudo systemctl restart fail2ban
- Confirme que ele está rodando:
sudo systemctl status fail2ban
Passo 5 — Conferindo se está funcionando
Para ver o status da proteção do SSH e quantos IPs já foram bloqueados:
sudo fail2ban-client status sshd
Se em algum momento você (ou um cliente seu) errar a senha sem querer e for bloqueado por engano, dá pra desbloquear o IP manualmente com:
sudo fail2ban-client set sshd unbanip IP_QUE_FOI_BLOQUEADO
Cuidados importantes
- Teste sempre em um segundo terminal antes de encerrar a sessão atual — assim, se algo der errado, você ainda tem uma conexão ativa para corrigir.
- Valores muito agressivos de
maxretrypodem bloquear você mesmo em caso de digitação errada. Comece com valores moderados, como no exemplo acima. - O Fail2ban complementa a segurança, mas não substitui boas práticas como senhas fortes ou autenticação por chave SSH.
Ficou com dúvida?
Sem problemas! Configuração de servidor pode assustar no começo, e é totalmente normal ter perguntas. É só abrir um chamado pelo painel do cliente (painel.gehost.com.br) que a equipe GeHost te ajuda com todo carinho. 💙