Instalação do Fail2Ban no CentOS 7

O Fail2Ban é conhecido como uma ferramenta simples e segura para evitar ataques de "Brute Force", onde o atacante tenta de inúmeras formas acesso a um sistema. Com o Fail2Ban monitorando estas conexões, automaticamente cria regras de Firewall temporárias para banir este tipo de acesso.

[ Hits: 15.562 ]

Por: Renato Diniz Marigo em 01/06/2016 | Blog: http://www.renatomarigo.com.br


Introdução



O Fail2Ban é um aplicativo escrito em Python utilizado para monitorar logs de serviços, verificando as tentativas de conexão sem sucesso e encontrando algo suspeito. Pode bloquear de forma pró-ativa os possíveis ataques adicionando regras de Firewall para proteção.

O Fail2Ban é conhecido como um ferramenta simples e segura para evitar ataques de Brute Force, onde o atacante tenta de inúmeras formas acesso a um sistema. Com o Fail2Ban monitorando estas conexões, automaticamente cria regras de Firewall temporárias para banir este tipo de acesso.

Mais informações do projeto, podem ser encontradas em:
Neste artigo, iremos abordar a instalação em um servidor CentOS 7.

Requisitos

Como o Fail2Ban foi escrito em Python, ele depende da instalação do Python 2.3 ou superior.

O Python já vem embarcado no Linux e para verificar a versão instalada, digite:

# python -V
Python 2.7.5

Caso não esteja instalado, o que é muito difícil, instale através do gerenciador de pacotes yum:

# yum install python

Precisamos do pacote wget, que pode ser instalado com o comando:

# yum install wget

Instalação

A instalação pode ser feita através do código fonte:

# wget https://sourceforge.net/projects/fail2ban/files/fail2ban-stable/fail2ban-0.8.11/fail2ban-0.8.11.tar.gz

Obs.: verificar se não existe alguma versão atualizada da versão stable:
Descompactando o arquivo:

# tar -xvzf fail2ban-0.8.11.tar.gz
# cd /fail2ban-0.8.11
# python setup.py install

A instalação também pode ser feita através do gerenciador de pacotes yum, apontando para o site onde possui o pacote ".rpm":

# yum localinstall http://mirror.globo.com/epel//7/x86_64/f/fail2ban-server-0.9.3-1.el7.noarch.rpm

O arquivo de configuração "fail2ban.conf", possui duas configurações importantes:

# vim /etc/fail2ban/fail2ban.conf

[Definition]

# Option: loglevel
# Notes.: Set the log level output.
#         CRITICAL
#         ERROR
#         WARNING
#         NOTICE
#         INFO
#         DEBUG
# Values: [ LEVEL ]  Default: ERROR
#
loglevel = INFO

# Option: logtarget
# Notes.: Set the log target. This could be a file, SYSLOG, STDERR or STDOUT.
#         Only one log target can be specified.
#         If you change logtarget from the default value and you are
#         using logrotate -- also adjust or disable rotation in the
#         corresponding configuration file
#         (e.g. /etc/logrotate.d/fail2ban on Debian systems)
# Values: [ STDOUT | STDERR | SYSLOG | FILE ]  Default: STDERR
#
logtarget = /var/log/fail2ban.log

Obs.: o campo loglevel determina o tipo de informação que deseja no LOG. O campo logtarget determina o local onde será salvo este LOG.

O maior número de configurações encontra-se no arquivo /etc/jail.conf, as mais importantes são:

# vim /etc/fail2ban/jail.conf

ignoreip = 127.0.0.1/8

Neste campo, você pode usar os endereços ou range de sua rede local e endereços de DNS, separados por vírgula, com o intuito de se serem ignorados pela análise do Fail2Ban.

bantime  = 600

Neste campo, é definido o número em segundo em que o host será banido.

maxretry = 5

Neste campo, é definido a quantidade máxima de tentativas sem sucesso aceitas antes de banir o host.

destemail = root@localhost
sender = root@localhost

Nestes campos, caso o SMTP esteja configurado, você pode colocar o e-mail de destino e o e-mail que enviará as notificações.

banaction = iptables-multiport

Neste campo, mostra que o método padrão de configuração para realizar o bloqueio é o IPtables.

Os serviços gerenciados pelo Fail2Ban ficam no diretório /etc/fail2ban/filter.d/ e pode ser configurado os serviços que desejar.

Exemplo de configurações instaladas por padrão:

# ls /etc/fail2ban/filter.d/
apache-auth.conf
apache-common.conf
nagios.conf
nginx-http-auth.conf
etc.


Para exemplificar, vou mostrar a configuração do bloqueio do serviço SSH.

# vim /etc/fail2ban/jail.conf

[ssh]

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
sendmail-whois[name=SSH, dest=renato@renato.com.br, sender=renato@renato.com.br]

Dentro do arquivo "jail.conf", existe um bloco para tratar diversos serviços e este bloco para tratar do serviço do SSH.

Explicação dos campos:
  • Enable = Este campo é usado para habilitar ou desabilitar o serviço.
  • Port = Este campo é usado para definir a porta que o serviço utiliza.
  • Filter = Este campo define um nome para este filtro.
  • Logpath = Este campo define o caminho completo de onde o LOG do serviço será salvo.
  • Maxretry = Este campo define o número máximo de tentativas de tentativas de acesso.
  • Sendmail-whois = Este campo define a configuração do envio de mensagens.

Após todo o processo de configuração, não se esqueça de iniciar o serviço:

# service fail2ban start

Configurar o serviço para o início automático do sistema:

# chkconfig fail2ban on

Conclusão

Este é um excelente modo de banir ataques de "brute force" e, com alguns ajustes, você pode ampliar estas configurações para diversos outros tipos de serviços.

Espero ter ajudado!

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Instalação de um Servidor Web

Debian Linux 4 iniciando o Windows como terminal server

Comando: journalctl - Monitoramento de LOGs

Zabbix Server 2.0 no Ubuntu Server 12.04 - Instalação e configuração

Instalação do Docker no CentOS 7

Leitura recomendada

ACCT - O contabilizador de processos do Linux

Instalando Apache, MariaDB e PHP com HTTPS no Arch Linux

Debian Squeeze - Instalando VirtualBox com acesso WEB via phpVirtualBox

Criptografar arquivos importantes no seu Linux

Segurança Física (Parte 1)

  
Comentários
[1] Comentário enviado por removido em 01/06/2016 - 21:25h

Ola.

O pacote dele esta disponível no repositório EPEL, então outra forma de instalar mantendo as

1 - Habilitar o epel:

yum install -y epel-release

1 - Instalar direto com o yum

yum install -y fail2ban


*Sou artigo ficou simples e direto, favoritado.


------------------------------------------------------
KISS principle, RTFM and STFW = 42


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts