Um servidor com SSH aberto recebe, dia e noite, tentativas automáticas de palavra-passe vindas de todo o mundo. O fail2ban lê os registos, vê os endereços que falham vezes demais e bloqueia-os durante um tempo. Não substitui a chave SSH, mas limpa o ruído e trava quem insiste. Os comandos são seus, num servidor seu: o suporte não os instala nem repara (ver até onde vai o nosso suporte).
Instalar
| 1 |
Debian e Ubuntu: sudo apt update e sudo apt install fail2ban.
|
|
| 2 |
AlmaLinux e Rocky: o pacote vem de um repositório extra: sudo dnf install epel-release e depois sudo dnf install fail2ban.
|
|
| 3 |
Ligue o serviço e faça-o arrancar com o servidor: sudo systemctl enable --now fail2ban.
|
|
Configurar sem estragar
Não edite o ficheiro /etc/fail2ban/jail.conf: uma actualização do pacote pode substituí-lo. Crie o seu, /etc/fail2ban/jail.local, só com o que quer mudar:
[DEFAULT]
ignoreip = 127.0.0.1/8 ::1 O.SEU.ENDERECO
bantime = 1h
findtime = 10m
maxretry = 5
[sshd]
enabled = true
| Linha |
O que faz |
| ignoreip |
Endereços que nunca são bloqueados. Ponha aí o seu, para não se bloquear a si. Separe-os por espaços. |
| maxretry |
Quantas falhas, dentro do tempo de findtime, antes de bloquear. Os valores deste exemplo (5, 10 minutos, 1 hora) são só um ponto de partida. |
| findtime |
A janela em que as falhas são contadas. |
| bantime |
Durante quanto tempo o endereço fica bloqueado. |
| port |
Se o seu SSH usa outra porta, acrescente em [sshd] a linha port = 2222, com o número da sua. |
| 1 |
Reinicie para aplicar: sudo systemctl restart fail2ban. Pode testar a configuração antes com sudo fail2ban-client -t.
|
|
| 2 |
Veja o estado geral: sudo fail2ban-client status lista as “jails” activas, que devem incluir a sshd.
|
|
| 3 |
Veja quem está bloqueado: sudo fail2ban-client status sshd.
|
|
| 4 |
Desbloqueie um endereço (o seu, se se enganou várias vezes): sudo fail2ban-client set sshd unbanip O.ENDERECO.
|
|
|
Pode bloquear-se a si. Falhar a palavra-passe cinco vezes seguidas é o suficiente. Por isso o ignoreip e uma chave SSH que funcione. Se acontecer, entre por outra rede (dados móveis, por exemplo) e desbloqueie, ou use o console do painel: ver perdi o acesso SSH ao servidor, que tem este caso como a terceira causa.
|
|
Se o registo do SSH não existe, o fail2ban não tem o que ler. Em sistemas mais recentes, que guardam os registos no journal, acrescente backend = systemd na secção [sshd]. Onde os registos ficam está em os registos num VPS Linux. A firewall faz o resto do trabalho com o fail2ban: ver configurar a firewall ufw.
|
PRODUTO RECOMENDADO Servidor VPS com acesso root Recursos só seus, o sistema que escolher, reinstalação quando quiser. desde 7.560,00 Kz/mês (plano de 3 anos, com cupão) Ver planos |