in

Fail2ban: configuração básica para prevenir ataques de força bruta

Como prevenir ataques de força bruta em diversos serviços

Fail2ban: Configuração básica para previnir ataques de força bruta

Fail2ban é um software para prevenir ataques de força bruta. Sendo que ele faz análise de logs, tomando algumas atitudes como criação de regras no firewall e envio de alertas ao administrador. Após instalação, podemos fazer uso de diversos filtros para vários serviços (ssh, postfix…). Fail2ban: configuração básica para prevenir ataques de força bruta. Segundo o site da própria ferramenta o Fail2ban é capaz de reduzir a taxa de tentativas de logins não desejados, entretanto isso não elimina os risco de um sistema de autenticação falho.

Instalação

Inicialmente é necessário dizer que os pré-requisitos básicos são python>=2.4 e um firewall, no caso será o iptables. A instalação pode ser feita a partir do código fonte, entretanto para facilitar utilizaremos o gerenciador de pacotes em um ambiente Ubuntu.

#apt update
#apt install fail2ban

Arquivos e diretórios importantesFail2ban: configuração básica para prevenir ataques de força bruta

Antes de configurar é necessário conhecer alguns termos e arquivos básicos.

  • Filtros(filters): Um filtro é definido com expressões regulares, que correspondem a padrões de tentativas de invasões em logs.
  • Ações(actions): define comandos a serem executados, por exemplo, bloquear ou liberar um determinado IP.
  • Jail(jaulas): combina os filtros com as ações.
  • /etc/fail2ban/fail2ban.conf: Arquivo com configurações básicas.
  • /etc/fail2ban/jail.conf: arquivo com configurações de serviços monitorados, combinando filtros e ações. Na verdade, configurações feitas pelo usuário, se  recomenda a utilização do jail.local ao invés de jail.conf.
  • /etc/fail2ban/action.d/: diretório onde ficam as regras de ações a serem tomadas, caso os filtros deêm match.
  • /etc/fail2ban/filter.d/: diretório com expressões e padrões para detectar os ataques.

Arquivo jail.local

Agora que está instalado, vamos configurar para monitorar um serviço. No caso explicando linha a linha:

  • Habilitando a verificação com enabled = true.
  • Pedindo para usar o filtro sshd que fica na pasta /etc/fail2ban/filter.d/ (filtro já existe, não foi necessário alterar).
  • Usando 1 script de ação iptables que fica em /etc/fail2ban/filter.d/.
  • Usando a variável logpath para dizer o arquivo de log, que será usado para verificar as tentativas de login que falharam.
  • Com maxretry, estamos dizendo a quantidade máxima que um usuário pode errar a senha antes do banimento do IP.
  • Bantime é o tempo de vigência do banimento do IP em segundos.
  • E por fim com ignoreip, como o nome já diz estamos pedindo para ignorar faixas de IP.

[ssh]
enabled = true
filter = sshd
action = iptables[name=ssh, port=”ssh”, protocol=tcp]
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
ignoreip = 127.0.0.0/8 10.0.0.0/8

Comandos básicos para uso

Iniciando:

service fail2ban start

Verificando IP bloqueado:

iptables -L

Desbloqueando IP(onde a <Chain name> e <IP> conseguimos no comando acima):

iptables -D fail2ban-<CHAIN_NAME> -s <IP> -j DROP

Verificando Log:

tail /var/log/fail2ban.log

Checando serviços/Jail configurado:

fail2ban-client status

Checando status de serviços/Jail:

fail2ban-client status ssh

Checando filtro (regex):

fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf

Finalizando sobre Fail2ban: configuração básica para previnir ataques de força bruta

Fail2ban é uma excelente alternativa para prevenir ataques de força bruta, entretanto não te salvará em casos de senhas fracas e outras políticas de segurança equivocadas. Mas acredito que ficará surpreso com a quantidade de IPs bloqueados, após a instalação dele em uma máquina com portas abertas na internet. Todavia é possível realizar testes, para isso erre de propósito sua senha ssh mais vezes que o máximo permitido, e verifique que o ip de sua máquina será bloqueado. Para finalizar esse é apenas uma maneira de configurar o software, pois pode ser usados com diversos sistemas operacionais  e diversos meios de bloquear acessos (outros firewall).

Escrito por Bruno Amadio Caires

Trabalhando desde 2007 com com informática e tecnologias, tenho como formação técnico de informática (UNICAMP) e Bacharelado em Ciências da Computação (Anhanguera), usuário de linux e nas horas livres gosto de conhecer novas tecnologias que envolvam python, robótica e automação, jogos e um tanto de outras coisas.

Visão do Mars Rover de 2020 Conseguiu 20/20

Visão do Mars Rover de 2020 conseguiu 20/20

Linux 5.4-rc4 chega como outro candidato normal

Kernel Linux 5.3-rc4 é lançado