Pesquisa de site

Como instalar Fail2Ban para proteger SSH no CentOS/RHEL 8


Fail2ban é uma ferramenta de prevenção de intrusões gratuita, de código aberto e amplamente utilizada que verifica arquivos de log em busca de endereços IP que mostram sinais maliciosos, como muitas falhas de senha e muito mais, e os proíbe (atualiza o firewall regras para rejeitar os endereços IP). Por padrão, ele vem com filtros para vários serviços, incluindo sshd.

Leia também: Configuração inicial do servidor com CentOS/RHEL 8

Neste artigo, explicaremos como instalar e configurar o fail2ban para proteger o SSH e melhorar a segurança do servidor SSH contra ataques de força bruta em CentOS/RHEL 8.

Instalando Fail2ban no CentOS/RHEL 8

O pacote fail2ban não está nos repositórios oficiais mas está disponível no repositório EPEL. Após fazer login em seu sistema, acesse uma interface de linha de comando e habilite o repositório EPEL em seu sistema conforme mostrado.

dnf install epel-release
OR
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Depois, instale o pacote Fail2ban executando o seguinte comando.

dnf install fail2ban

Configurando Fail2ban para proteger SSH

Os arquivos de configuração fail2ban estão localizados no diretório /etc/fail2ban/ e os filtros são armazenados em /etc/fail2ban/filter.d/. diretório (o arquivo de filtro para sshd é /etc/fail2ban/filter.d/sshd.conf).

O arquivo de configuração global do servidor fail2ban é /etc/fail2ban/jail.conf, porém, não é recomendado modificar este arquivo diretamente, pois provavelmente será sobrescrito ou melhorado no caso de um pacote atualizar no futuro.

Como alternativa, é recomendado criar e adicionar suas configurações em um arquivo jail.local ou em arquivos .conf separados em /etc/fail2ban/jail. diretório d/. Observe que os parâmetros de configuração definidos em jail.local substituirão tudo o que estiver definido em jail.conf.

Para este artigo, criaremos um arquivo separado chamado jail.local no diretório /etc/fail2ban/ conforme mostrado.

vi /etc/fail2ban/jail.local

Assim que o arquivo estiver aberto, copie e cole a seguinte configuração nele. A seção [DEFAULT] contém opções globais e [sshd] contém parâmetros para a prisão sshd.


[DEFAULT] 
ignoreip = 192.168.56.2/24
bantime  = 21600
findtime  = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd

[sshd] 
enabled = true

Vamos explicar brevemente as opções na configuração acima:

  • ignoreip: especifica a lista de endereços IP ou nomes de host que não devem ser banidos.
  • bantime: especifica o número de segundos durante os quais um host é banido (ou seja, duração efetiva do banimento).
  • maxretry: especifica o número de falhas antes que um host seja banido.
  • findtime: fail2ban banirá um host se ele tiver gerado “maxretry” durante os últimos “findtime” segundos.
  • banaction: ação de banimento.
  • backend: especifica o backend usado para obter a modificação do arquivo de log.

A configuração acima, portanto, significa que se um IP falhou 3 vezes nos últimos 5 minutos, bani-lo por 6 horas e ignorar o Endereço IP 192.168.56.2.

Em seguida, inicie e ative o serviço fail2ban por enquanto e verifique se ele está instalado e funcionando usando o seguinte comando systemctl.

systemctl start fail2ban
systemctl enable fail2ban
systemctl status fail2ban

Monitoramento de endereço IP com falha e banido usando fail2ban-client

Depois de configurar fail2ban para proteger o sshd, você pode monitorar endereços IP com falha e banidos usando o fail2ban-client. Para visualizar o status atual do servidor fail2ban, execute o seguinte comando.

fail2ban-client status

Para monitorar a prisão sshd, execute.

fail2ban-client status sshd

Para cancelar o banimento de um endereço IP no fail2ban (em todas as jails e banco de dados), execute o seguinte comando.

fail2ban-client unban 192.168.56.1

Para obter mais informações sobre fail2ban, leia as páginas de manual a seguir.

man jail.conf
man fail2ban-client

Isso resume este guia! Se você tiver alguma dúvida ou opinião que queira compartilhar sobre este tópico, não hesite em nos contatar através do formulário de feedback abaixo.