Pular para o conteúdo

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.
Renato Diniz Marigo renizgo
Hits: 16.468 Categoria: Linux Subcategoria: Segurança
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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!

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Introdução

Nagios 3 + NagiosQL no Ubuntu Server 12.04

Instalação do WordPress no CentOS 7

VLAN Tagging nos sistemas GNU/Linux derivados do Red Hat

Introdução ao Shell Script

Instalação do Docker no CentOS 7

Entendendo as permissões no Linux

Segurança Física (Parte 2)

Antivírus ClamAV com proteção em tempo real

Servidor para centralização de logs - Fedora 7

Quando próximo, finja estar longe; quando longe, finja estar próximo

#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

Entre na sua conta para comentar.