Fail2ban - bloquear ataques de força bruta no Postfix

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

[ Hits: 7.868 ]

 


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

Montar pastas via SSH Linux

Instalação e configuração do Bind9 no CentOS 5.5 64 bits

Livros para os exames LPI (Linux Professional Institute) 101, 102, 201 e 202

Introdução a linguagem Assembly com o MIPS

Virtualização com KVM no Red Hat

  

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