Como Proteger o SSH com Fail2Ban no Debian 12: Guia Completo para Aumentar a Segurança

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:

Bash
apt update -y
apt upgrade -y

2. Instalar o Fail2Ban

Para instalar o Fail2Ban, execute o comando:

Bash
apt install fail2ban

3. Instalar e Configurar o Firewall

Instale o UFW (Uncomplicated Firewall) com o seguinte comando:

Bash
apt install ufw

Ative o UFW:

Bash
ufw enable

Permita o tráfego SSH:

Bash
ufw allow 22

Recarregue as configurações do UFW:

Bash
ufw reload

4. Configurar o Fail2Ban para SSH

Crie uma cópia do arquivo de configuração padrão do Fail2Ban:

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

Abra o arquivo jail.local em um editor de texto:

Bash
nano /etc/fail2ban/jail.local

Encontre a seção [sshd] e ajuste as configurações conforme abaixo:

Bash
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

Configurações Importantes:

  • enabled: Defina como true 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 filtro sshd).
  • 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:

Bash
systemctl restart fail2ban

Verifique o status do Fail2Ban com:

Bash
systemctl status fail2ban

Saída Esperada:

Bash
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:

Bash
fail2ban-client status sshd

Para desbanir um IP:

Bash
fail2ban-client set sshd unbanip "ENDEREÇO_IP_AQUI"

Para banir um IP:

Bash
fail2ban-client set sshd banip "ENDEREÇO_IP_AQUI"

Após banir um endereço IP, tente fazer login para verificar a restrição:

Bash
ssh root@<Seu_Endereço_IP>

Deverá receber a mensagem:

Bash
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.

Artigos Relacionados