🛡️ Como Instalar e Configurar o Fail2Ban no Oracle Linux, RHEL ou CentOS Versão 8 ou Superior

Fail2Ban é uma ferramenta poderosa de segurança que ajuda a proteger seu servidor Linux contra ataques de força bruta. Ele monitora logs do sistema e cria regras no firewall para bloquear automaticamente IPs que demonstram comportamento suspeito.

🔧 O que é o Fail2Ban e por que usar?

Se você mantém um servidor de e-mails, SSH ou outros serviços expostos à internet, provavelmente já viu tentativas de login suspeitas. O Fail2Ban observa esses acessos em arquivos de log e responde criando bloqueios temporários ou permanentes para IPs maliciosos.

📦 Instalando o Fail2Ban no Oracle Linux, RHEL ou CentOS

    1. Habilite o serviço firewalld:
sudo systemctl unmask firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
    1. Adicione o repositório EPEL:
sudo dnf install epel-release -y
    1. Instale o Fail2Ban:
sudo dnf install fail2ban fail2ban-firewalld -y

⚙️ Configurando o Fail2Ban

Renomeie e edite os arquivos de configuração padrão:

sudo mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Crie uma nova ação personalizada:

Abra o arquivo:

sudo vi /etc/fail2ban/action.d/firewallcmd-rich-rules2.conf

Conteúdo do arquivo:

[INCLUDES]
before = firewallcmd-common.conf

[Definition]
actionstart =
actionstop =
actioncheck =
fwcmd_rich_rule = rule family='<family>' source address='<ip>' %(rich-suffix)s
actionban = firewall-cmd --add-rich-rule="%(fwcmd_rich_rule)s"
actionunban = firewall-cmd --remove-rich-rule="%(fwcmd_rich_rule)s"
rich-suffix = <rich-blocktype>

Depois, edite o arquivo /etc/fail2ban/jail.d/00-firewalld.local e adicione:

banaction = firewallcmd-rich-rules2
banaction_allports = firewallcmd-rich-rules2

📝 Exemplo de configuração: servidor de e-mails Zimbra

Edite o arquivo /etc/fail2ban/jail.local ou um arquivo customizado dentro da pasta jail.d com as configurações abaixo:

[DEFAULT]
ignoreip = 127.0.0.1/8 192.168.0.0/16
bantime = 86400
findtime = 300
maxretry = 3

[sshd]
enabled = true 
bantime = 900 
maxretry = 3

[zimbra-account]
enabled = true 
filter = zimbra 
logpath = /opt/zimbra/log/mailbox.log 
bantime = 900 
maxretry = 3

[zimbra-audit]
enabled = true 
filter = zimbra 
logpath = /opt/zimbra/log/audit.log 
bantime = 900 
maxretry = 3

[zimbra-recipient]
enabled = true 
filter = zimbra 
logpath = /var/log/maillog 
bantime = 7200 
maxretry = 6

[postfix]
enabled = true 
filter = postfix 
logpath = /var/log/maillog 
bantime = 900 
maxretry = 3

🚀 Inicie e habilite o Fail2Ban

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

👀 Monitorando e administrando o Fail2Ban

Visualizar logs:

tail -f /var/log/fail2ban.log

Listar IPs banidos por um “jail”:

sudo fail2ban-client status
sudo fail2ban-client status sshd

❌ Bloquear IP manualmente

sudo fail2ban-client set sshd banip 192.0.2.10

✅ Desbloquear IP manualmente

sudo fail2ban-client set sshd unbanip 192.0.2.10

Ver as regras de firewall ativas:

sudo firewall-cmd --list-all

📌 Considerações Finais

O Fail2Ban é uma solução extremamente útil e flexível para proteger servidores Linux, especialmente em ambientes de e-mail, web e acesso remoto. Com configurações simples e práticas, é possível bloquear ameaças e manter o sistema mais seguro.

Referências:

Caso tenha alguma dúvida a respeito deste tópico sinta-se à vontade para entrar em contato

Rolar para cima