O Fail2Ban é uma ferramenta poderosa para proteger sistemas Linux contra vários tipos de ataques, especialmente aqueles direcionados a serviços acessíveis pela internet, como o SSH (Secure Shell). O objetivo principal do Fail2Ban é monitorar arquivos de log em busca de atividades suspeitas e modificar dinamicamente as regras do firewall para bloquear endereços IP que exibem comportamento malicioso. Siga este guia para configurar o Fail2Ban no Debian 12 e proteger o seu servidor SSH.
1. Atualizar o Sistema
Primeiro, certifique-se de que o sistema está atualizado:
apt update -y
apt upgrade -y
2. Instalar o Fail2Ban
Para instalar o Fail2Ban, execute o comando:
apt install fail2ban
3. Instalar e Configurar o Firewall
Instale o UFW (Uncomplicated Firewall) com o seguinte comando:
apt install ufw
Ative o UFW:
ufw enable
Permita o tráfego SSH:
ufw allow 22
Recarregue as configurações do UFW:
ufw reload
4. Configurar o Fail2Ban para SSH
Crie uma cópia do arquivo de configuração padrão do Fail2Ban:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Abra o arquivo jail.local
em um editor de texto:
nano /etc/fail2ban/jail.local
Encontre a seção [sshd]
e ajuste as configurações conforme abaixo:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Configurações Importantes:
enabled
: Defina comotrue
para ativar a regra.port
: A porta onde o serviço SSH está executando (o padrão éssh
, que equivale à porta 22).filter
: O filtro a ser usado (neste caso, o filtrosshd
).logpath
: O caminho para o arquivo de log do SSH.maxretry
: O número de falhas antes de um IP ser banido.
Salve e feche o arquivo.
5. Reiniciar o Fail2Ban
Reinicie o serviço Fail2Ban para aplicar as mudanças:
systemctl restart fail2ban
Verifique o status do Fail2Ban com:
systemctl status fail2ban
Saída Esperada:
root@vps:~# systemctl status fail2ban
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; preset: enabled)
Active: active (running) since Fri 2024-09-11 23:15:02 UTC; 40min ago
Docs: man:fail2ban(1)
Main PID: 13872 (fail2ban-server)
Tasks: 3 (limit: 4624)
Memory: 12.0M
CPU: 203ms
CGroup: /system.slice/fail2ban.service
└─15873 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
Verifique o status do sshd
jail:
fail2ban-client status sshd
Para desbanir um IP:
fail2ban-client set sshd unbanip "ENDEREÇO_IP_AQUI"
Para banir um IP:
fail2ban-client set sshd banip "ENDEREÇO_IP_AQUI"
Após banir um endereço IP, tente fazer login para verificar a restrição:
ssh root@<Seu_Endereço_IP>
Deverá receber a mensagem:
ssh: connect to host <Seu_Endereço_IP> port 22: Connection refused
Este guia oferece um método eficaz para proteger o seu servidor SSH usando o Fail2Ban no Debian 12, ajudando a evitar acessos indesejados e mantendo a segurança do sistema.