Pular para o conteúdo principal

Thanwer's Blog

Melhorando a segurança do seu servidor com o Fail2ban

Table of Contents

Fail2ban é um software que escaneia arquivos de logs como o /var/log/auth.log e bane IPs com muitas falhas de login.

Isso é apenas uma camada de segurança e deve ser utilizada em conjunto com outras ferramentas como o iptables e melhorias na configuração do SSH.

Eu sempre configuro uma jail para SSH usando o fail2ban em meus servidoresGNU/Linux.

Hoje, vou mostrar como configurar uma jail simples para o SSH.

# Instalando o fail2ban

Primeiramente voce deve (obviamente) instar o pacote fail2ban.

apt install fail2ban   # Para Ubuntu/Debian
yum install fail2ban   # Para CentOS/RHEL

# Configurando o fail2ban

A configuração do fail2ban é muito simples, os arquivos estão todos localizados em: /etc/fail2ban

O fail2ban.conf contem a configuração default, é uma boa pratica não editar esse arquivo, mas sim criar uma cópia com o nome fail2ban.local, que sobrescreve o fail2ban.conf:

cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local

O padrão deve nos atender, então vamos pular isso por enquanto.

Depois, temos o arquivo jail.conf , que é onde configuramos as nossas “jails” como o nome sugere.

Aqui vamos fazer algumas alterações, primeiro vamos criar um arquivo jail.local com o seguinte conteúdo:

[DEFAULT]
bantime.multipliers = 5 15 30 60 300 720 1440 2880
bantime = 86400
findtime = 86400
maxretry = 2
ignoreip = 192.2.0.0/24, 2001:0DB8::/32

[sshd]
backend=systemd
enabled=true
mode=aggressive
action  = iptables[name=SSH, port=22, protocol=tcp]

As configurações são autoexplicativas, na seção [DEFAULT] mudamos alguns parâmetros, como o tempo que devemos banis os atacantes, e definimos IPs confiáveis. Lembre-se de alterar os valores para os que fazem sentido para o seu ambiente, principalmente o ignoreip.

Invista seu tempo para estudar e melhorar esses parâmetros.

# Ativando e testando o fail2ban

Ative e inicie o serviço fail2ban:

systemctl enable --now fail2ban

Para testar as jails SSH, basta tentar o login com a senha incorreta por algumas vezes.

Voce pode ver o status com os seguintes comandos:

fail2ban-client status
fail2ban-client status sshd

Exemplo de uma jail em um servidor de produção

Como voce pode ver, o serviço SSH em uma VPS em cloud é constantemente atacada, meu servidor já tem mais de 400 IPs banidos.

# Mais jails

Hoje eu mostrei como proteger o seu serviço SSH em uma maquina GNU/Linux, mas não acabou, voce pode usar o fail2ban para qualquer serviço!

Voce pode até mesmo integrar a proteção do fail2ban com o Cloudflare se voce usa os serviços deles!

Eu sugiro que voce veja o diretório /etc/fail2ban/filter.d, que contem os filtros default para vários serviços populares, como Apache, Asterisk, serviços de servidor de e-mail, etc…

Também leia a documentação oficial.