Proteção utilizando fail2ban contra ataques do tipo

O fail2ban pode monitorar a tentativa de login nos serviços ssh, pam, xinetd, apache, vsftpd, proftpd, wuftpd, postfix, couriersmtp, courierauth, sasl e named, e em uma ação pró-ativa bloquear o possível ataque, adicionando uma regra no firewall.

[ Hits: 77.112 ]

Por: Ricardo Brito do Nascimento em 30/08/2011 | Blog: http://brito.blog.incolume.com.br


Configuração para fail2ban



Após a instalação o fail2ban disponibilizará o diretório de configuração "/etc/fail2ban".

# ls /etc/fail2ban/
action.d    fail2ban.conf    filter.d    jail.conf

Os arquivos interessantes para configuração são os "fail2ban.conf" e "jail.conf", vejamos primeiro o fail2ban.conf.

...
[Definition]

# Option:  loglevel
# Notes.:  Set the log level output.
#          1 = ERROR
#          2 = WARN
#          3 = INFO
#          4 = DEBUG
# Values:  NUM  Default:  3
#
loglevel = 3

# Option:  logtarget
# Notes.:  Set the log target. This could be a file, SYSLOG, STDERR or STDOUT.
#          Only one log target can be specified.
# Values:  STDOUT STDERR SYSLOG file  Default:  /var/log/fail2ban.log
#
logtarget = /var/log/fail2ban.log

As linhas importantes deste arquivo são a "loglevel = 3" e "logtarget = /var/log/fail2ban.log", que definem o nível de informação no log e o arquivo de log do fail2ban, para acompanhamento e possíveis correções.

Já no arquivo "/etc/jail.conf", é onde tem-se a maior parte da configuração.

...
[DEFAULT]

# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1
bantime  = 600
maxretry = 3
...

Nas diretivas:
  • ignoreip : É listado os endereços de IP (ex.: 127.0.0.1), ou Mascara CIDR-Classless Inter Domain Routing (ex.: 192.168.12.0/23, onde 192.168.12.0/23 = 192.168.12.0/24 + 192.168.13.0/24), ou DNS host (ex.: perfumes.incolume.com.br ou brito.blog.incolume.com.br), que deverão ser ignorados pelo fail2ban;
  • bantime : É definido o tempo em segundos, que o IP ofensor ficará banido e/ou bloqueado para o serviço;
  • maxretry : É definido a quantidade máxima de tentativas de acesso.
...
# Destination email address used solely for the interpolations in
# jail.{conf,local} configuration files.
destemail = root@localhost

#
...

  • destemail : Define o email que receberá as notificações, claro, que somente, se o smtp estiver configurado.
...
# Default banning action (e.g. iptables, iptables-new,
# iptables-multiport, shorewall, etc) It is used to define
# action_* variables. Can be overriden globally or per
# section within jail.local file
banaction = iptables-multiport
...

  • banaction : Define qual a ação de banimento será executada, se o firewall for iptables, não modifique.
...
[ssh]

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

Finalmente a definição de segurança para os serviços, os quais estão destacados entre colchetes como no fragmento acima, [ssh], [pam-generic], e assim sucessivamente. Estre trecho conterá as mesmas diretivas, para qualquer serviço configurado.
  • enabled : habilita ou desabilita a verificação do serviço;
  • port : a porta na qual o serviço esculta;
  • filter : padrão que será utilizada para identificação do filtro;
  • logpath : arquivo de log com caminho completo;
  • maxretry : quantidade máxima de tentativas de acesso;
  • sendmail-whois : a configuração de notificação por email, sender=remetente, dest = destinatário e name = Assunto.
Página anterior     Próxima página

Páginas do artigo
   1. Introdução e Instalação do fail2ban
   2. Configuração para fail2ban
   3. Exemplos e Referências
Outros artigos deste autor

Clonagem de Hardware Hotline em Software Livre

Configurando Subversion

Explorando o wget

CMS Plone 4.1.6 com invólucro Virtualenv + Buildout + Mount Point + BLOB Storage + Unicode UTF-8

Conexão com chaves assimétricas sem uso de senha em servidor sshd

Leitura recomendada

Segurança em seu Linux

Usuário especial para desligar servidores Linux

Bom escudo não teme espada: o módulo pam_cracklib

Ataque de Rougue AP com AIRBASE-NG

Snort_INLINE: Proteção total

  
Comentários
[1] Comentário enviado por removido em 30/08/2011 - 15:01h

Muito bom !

[2] Comentário enviado por rbn_jesus em 19/10/2011 - 10:04h

obrigado Thalysson!

[3] Comentário enviado por alex.oliver em 28/09/2012 - 09:14h

Olá Ricardo!

Sensacional o artigo, estou iniciando um trabalho com essa ferramenta, e tenho uma dúvida... na opção "enable = false", esta estaria ativando a monitoração desejada ou estaria stopando-a?
Fiquei em dúvida, porque estou usando o arquivo jail.* como a extensão .local, teria algo a ver ou viajei muito?!

Abraços!

[4] Comentário enviado por sylviomgs em 28/06/2016 - 13:31h

Boa tarde, Ótimo artigo, gostaria de saber onde visualizo a blacklist q o fail2ban cria...

[5] Comentário enviado por davidfagundes em 08/12/2017 - 15:16h

muito bom o artigo, tenho uma pergunta, consigo bloquear ao invés do IP o MAC ??


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts