fbpx
Pesquisar

Fail2Ban: Guia de Instalação, Utilização e APIs Integradas

O Fail2Ban é uma ferramenta de segurança amplamente utilizada para proteger servidores contra ataques maliciosos, como tentativas de login forçado (bruteforce). Ele funciona monitorando os logs do sistema em busca de padrões suspeitos e bloqueando endereços IP que violam regras de segurança predefinidas. Isso ajuda a manter o servidor seguro e livre de acessos não autorizados.

Neste artigo, exploraremos em detalhes o que é o Fail2Ban, como instalá-lo, exemplos práticos de configuração, e as APIs que podem ser usadas em conjunto com ele para aprimorar ainda mais a segurança do seu servidor.

O Que é o Fail2Ban?

O Fail2Ban é uma aplicação que monitora os arquivos de log do sistema (como /var/log/auth.log ou /var/log/secure) e reage a padrões suspeitos (como múltiplas tentativas de login falhas). Quando detecta atividades suspeitas, ele aplica ações predefinidas, como bloquear o endereço IP por um período específico utilizando o firewall do sistema.

Instalação do Fail2Ban

A instalação do Fail2Ban é bastante simples e pode ser realizada na maioria das distribuições Linux. Abaixo, vamos detalhar o processo de instalação nas distribuições mais comuns.

1. Instalando o Fail2Ban

Em Distribuições Baseadas em Debian (Ubuntu)

No Ubuntu ou outras distribuições baseadas em Debian, use o seguinte comando:

sudo apt-get update
sudo apt-get install fail2ban

Em Distribuições Baseadas em Red Hat (CentOS, Fedora)

Para instalar o Fail2Ban em distribuições baseadas em Red Hat, execute:

sudo dnf install epel-release
sudo dnf install fail2ban

2. Inicializando o Fail2Ban

Após a instalação, inicie o serviço Fail2Ban e habilite-o para iniciar automaticamente no boot:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

3. Verificando o Status do Fail2Ban

Para verificar se o Fail2Ban está funcionando corretamente, use:

sudo systemctl status fail2ban

O comando deve mostrar o serviço ativo e em execução.

Configuração do Fail2Ban

A configuração do Fail2Ban é feita principalmente por meio de arquivos de configuração localizados em /etc/fail2ban/. É recomendado não modificar diretamente o arquivo principal (jail.conf), mas sim criar uma cópia personalizada chamada jail.local.

1. Configurando o jail.local

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

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

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

sudo nano /etc/fail2ban/jail.local

2. Configurando o Tempo de Banimento e Tolerância

No arquivo jail.local, você pode definir o tempo de banimento (bantime) e o número máximo de tentativas de login falhas permitidas (maxretry):

bantime = 600
findtime = 600
maxretry = 5
  • bantime: Tempo em segundos pelo qual um IP ficará bloqueado. Pode ser configurado como “forever” para um banimento permanente.
  • findtime: Período de tempo durante o qual o número de tentativas de login falhas será contado.
  • maxretry: Número máximo de tentativas de login falhas permitidas antes de o IP ser bloqueado.

3. Configurando Jails Específicas

Os “jails” no Fail2Ban são as regras específicas que você deseja monitorar. Cada jail monitora um serviço específico e possui suas próprias configurações. Por exemplo, para habilitar um jail para SSH, adicione ou modifique a seção [sshd] no arquivo jail.local:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
  • enabled: Define se o jail está ativo.
  • port: Porta que será monitorada (padrão é 22 para SSH).
  • filter: O arquivo de filtro específico a ser usado (geralmente definido em /etc/fail2ban/filter.d/).
  • logpath: Caminho do arquivo de log onde o Fail2Ban buscará por tentativas de login falhas.

Após fazer alterações no arquivo de configuração, reinicie o serviço Fail2Ban:

sudo systemctl restart fail2ban

4. Verificando IPs Bloqueados

Para visualizar a lista de IPs atualmente bloqueados, use:

sudo fail2ban-client status sshd

Esse comando mostra o status do jail SSH, incluindo a lista de IPs banidos.

Exemplo de Utilização do Fail2Ban

Vamos configurar o Fail2Ban para monitorar um servidor Apache e bloquear IPs que tentem acessar URLs sensíveis repetidamente. Para isso, precisamos criar um novo filtro.

1. Criando um Filtro Personalizado

Crie um arquivo de filtro para o Apache:

sudo nano /etc/fail2ban/filter.d/apache-auth.conf

Adicione o seguinte conteúdo para detectar tentativas de acesso não autorizadas:

[Definition]
failregex = ^<HOST> -.* "(GET|POST).* HTTP.*" 401

Este filtro identifica respostas “401 Unauthorized” no log do Apache.

2. Configurando o Jail

Adicione o seguinte bloco ao seu jail.local para ativar o filtro:

[apache-auth]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/access.log
maxretry = 3

Isso fará com que o Fail2Ban monitore os logs do Apache e bloqueie IPs que tentem acessar páginas protegidas mais de três vezes.

3. Reiniciando o Fail2Ban

Após adicionar as configurações, reinicie o Fail2Ban para aplicar as mudanças:

sudo systemctl restart fail2ban

APIs que Podem Ser Usadas em Conjunto com o Fail2Ban

Existem várias APIs e ferramentas que podem ser usadas em conjunto com o Fail2Ban para aprimorar ainda mais a segurança do servidor:

1. AbuseIPDB

O AbuseIPDB é uma API que permite verificar e reportar endereços IP maliciosos. O Fail2Ban pode ser configurado para consultar a API do AbuseIPDB, verificando se um endereço IP está listado como malicioso e, em seguida, tomar medidas adicionais, como banimento imediato.

2. MaxMind GeoIP

O MaxMind GeoIP permite identificar a localização geográfica de um endereço IP. O Fail2Ban pode ser configurado para banir automaticamente IPs de regiões específicas, aumentando a segurança contra ataques que se originam de determinados países.

3. Blacklist da Dolutech

A Dolutech mantém uma blacklist constantemente atualizada com endereços IP que praticam atividades maliciosas, como ataques de força bruta, DDoS, ransomware e phishing. Integrar essa blacklist ao Fail2Ban permite bloquear automaticamente IPs conhecidos por comportamento abusivo, melhorando significativamente a segurança do seu servidor.

4. CrowdSec

O CrowdSec é uma solução colaborativa de segurança que coleta e compartilha informações sobre IPs maliciosos em tempo real. O Fail2Ban pode ser integrado ao CrowdSec para adicionar ou remover IPs da lista de banidos com base em dados de inteligência compartilhados.

Conclusão

O Fail2Ban é uma ferramenta indispensável para administradores de sistemas que desejam proteger seus servidores contra ataques como tentativas de login forçado. Sua flexibilidade e capacidade de integração com diversas APIs e serviços tornam-no um aliado poderoso na implementação de medidas de segurança.

Com as configurações corretas e a integração de APIs como AbuseIPDB, MaxMind GeoIP, e a blacklist da Dolutech, o Fail2Ban pode fornecer uma camada adicional de proteção ao seu ambiente de servidor, mantendo-o seguro contra uma ampla gama de ameaças cibernéticas.

Amante por tecnologia Especialista em Cibersegurança e Big Data, Formado em Administração de Infraestrutura de Redes, Pós-Graduado em Ciências de Dados e Big Data Analytics e Machine Learning, Com MBA em Segurança da Informação, Escritor do livro ” Cibersegurança: Protegendo a sua Reputação Digital”.

Conheça nosso Canal do Youtube
Escute Nosso DoluCast
Melhores da Semana