Fail2ban - bloquear ataques de força bruta no Postfix

Publicado por Diego Rodrigo da Silva em 22/07/2015

[ Hits: 7.751 ]

 


Fail2ban - bloquear ataques de força bruta no Postfix



A segurança tem se tornado a cada ano um requisito de suma importância para um bom funcionamento dos serviços online, onde administradores de sistemas devem tomar muito cuidado quanto a sua correta configuração e também nos mecanismos que garantam toda a segurança necessária para o sistema.

Em meio a esse cenário, foi criado um projeto chamado de Fail2ban tendo como seu principal objetivo o desenvolvimento de uma ferramenta onde auxilia na prevenção de ataques de força bruta em serviços.

A Fail2ban fica regularmente monitorando os logs dos mais diversos serviços, mas pode ser configurado para atender aos serviços especificados com mais agilidade.

Abaixo descrevo de forma sucinta o procedimento de instalação do Fail2ban e sua integração com o serviço Postfix.

Como instalar o Fail2ban

A instalação pode ser feita por sourcecode ou via apt-get no Ubuntu e seus derivados, irei demostrar os passos oficiais contidos no manual de instalação na página do projeto.

Requisitos:
  • Python 2.4 ou superior para suporte à ferramenta que é desenvolvida em Python
  • iptables
  • tcp-wrappers
  • Gamin (é um monitor de alterações de arquivos)

Você vai precisar de obter a última versão do código-fonte para compilar Fail2ban. Depois de ter feito isso, altere para o diretório onde você fez o download do código-fonte e execute o seguinte comando:

# tar xvjf fail2ban-xxxtar.bz2

Feito isso terá o código-fonte extraído para um diretório sob o diretório de trabalho atual. Você deve agora passar para o novo diretório onde o Fail2ban foi descompactado e executar o seguinte script de instalação:

# ./setup.py install

Fail2ban agora foi instalado em /usr/share/fail2ban/ e em /usr/bin/. Agora você está pronto para usar o aplicativo.

Mas como integrar Fail2ban na inicialização?

Vá para a pasta/arquivos onde você extraiu os fontes:

# cd /usr/local/src/fail2ban-0.8.1/files

E copie o script de inicialização de acordo com a sua distribuição para /etc/init.d:

# cp suse-initd /etc/init.d/fail2ban
# chmod 755 /etc/init.d/fail2ban

O Debian script padrão está faltando no branch master de arquivos atualmente; mas poderia ser obtido a partir da filial Debian:
Finalmente depois de copiar/editar o arquivo init, ajuste os caminhos para o cliente Fail2ban e execute chkconfig fail2ban-server ou update-rc.d ou mesmo crie os links simbólicos manualmente:

# chkconfig -a fail2ban

Ou:

# update-rc.d fail2ban defaults

Ou:

# ln -s /etc/init.d/fail2ban /etc/rc2.d/S20fail2ban

Integrar Fail2ban em logrotate

Criar o arquivo /etc/logrotate.d/fail2ban:

/var/log/fail2ban.log {
    weekly
    rotate 7
    missingok
    compress
    postrotate
      /usr/local/bin/fail2ban-client set logtarget /var/log/fail2ban.log >/dev/null
    endscript
}

Tem casos que o caminho para o cliente Fail2ban pode precisar de ser ajustado. Veja com o comando:

# whereis fail2ban-client

De acordo com o site oficial há um bug com os atuais (0.8.4-27) Fedora e Red Hat o que impedirá chroot de iniciar a menos que o SELinux esteja desativado. Em um servidor sem alterações de configuração não será iniciado e será gerado um arquivo de log do Fail2ban (pesquisar por "logtarget" em fail).

Logo após vamos configurar alguns parâmetros para o serviço Postfix. Ir no arquivo de configuração /etc/fail2ban/jail.conf e fazer a seguinte alteração nos campos:

[postfix-tcpwrapper]

enabled  = true
filter   = postfix
action   = hostsdeny[file=/etc/hosts.deny]
           sendmail[name=Postfix, dest=you@yourdomain.com]
logpath  = /var/log/postfix.log
bantime  = -1
ignoreip = 127.0.0.1/8
FindTime = 300
maxretry = 5

Estes são os parâmetros e seus significados:
  • enable - ativa o filtro através do boolean verdadeiro ou falso.
  • action - que medidas está a tomar. Aqui o IP será bloqueado via tcp-wrappers e um e-mail será enviado para mim.
  • logpath - caminho para o arquivo de log.
  • bantime - a quantidade de tempo que deseja banir o IP, o valor deve ser em segundos, como 300, valor negativo significa proibição permanente.
  • ignoreip - lista de IPs a ignorar, garantir que você adicione o seu próprio.
    FindTime - a quantidade de tempo em que as conexões serão feitas após qual o IP fica bloqueado.
    maxretry - número de tentativas até que a conexão seja bloqueada.

Agora adicione o filtro abaixo em <em>/etc/fail2ban/filter.d/postfix.conf</em>. Abaixo quaisquer filtros atuais:

failregex = warning: (.*)[]: SASL LOGIN authentication failed

Isto diz ao Fail2ban para verificar esta linha particular e proibir o IP anfitrião. Feito isso o Fail2ban está pronto para trabalhar auxiliando os administradores de sistemas.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Simulador de voô CRRCsim

Utilize SD cards no Aspire 5050 (com adaptador ENE Technology Inc) no Ubuntu

OcoMon - Sistema HelpDesk em PHP

Introdução à linguagem Java

Utilizando comando bg

  

Comentários
[1] Comentário enviado por danniel-lara em 22/07/2015 - 09:52h


Muito boa a dica , vai me ajudar
valeu



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts