Segurança · 4 min read · Jan 02, 2026

Configurando fail2ban Com SquirrelMail No CentOS 5.3/ISPConfig 3

Configurando fail2ban Com SquirrelMail No CentOS 5.3/ISPConfig 3

Introdução

Este tutorial mostra como você pode prevenir tentativas de login ilimitadas e, portanto, ataques de força bruta contra seu login Web do SquirrelMail usando fail2ban.

1. Requisitos

Certifique-se de que tanto fail2ban quanto SquirrelMail estão instalados em uma máquina CentOS v5.3/ISPConfig 3 detalhada aqui.

No entanto, a instalação é simples:

yum install fail2ban squirrelmail

Você deve estar usando ativamente iptables como seu firewall. O Fail2ban funciona criando uma regra de bloqueio temporária para o endereço IP de origem não autorizado.

2. Configuração de log do SquirrelMail

O SquirrelMail (imapd) sob CentOS v5.3/ISPConfig 3, por padrão, registra em /var/log/maillog, mas apenas como endereço IP 127.0.0.1 (localhost). Como estamos tentando banir um endereço de origem específico, o fail2ban não pode usar este arquivo. Portanto, instalamos e usamos o Squirrel Logger para capturar o verdadeiro endereço de origem da tentativa de login.

Baixe e instale o Squirrel Logger:

cd /usr/share/squirrelmail/plugins  
wget http://squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fsquirrel_logger-2.3-1.2.7.tar.gz  
tar zxvf squirrel_logger-2.3-1.2.7.tar.gz  
cd squirrel_logger-2.3-1.2.7  
cp config_example.php config.php

Embora este plugin seja a versão mais recente do Squirrel Logger, se houve uma atualização de revisão, baixe-o diretamente do site de Plugins do SquirrelMail aqui.

Se sua máquina usa um horário local que não é GMT, use vi para mudar: $sl_use_GMT = 1 para $sl_use_GMT = 0 em config.php:

Configuração original config.php:

...
// Registrar datas em GMT?  Se você não fizer isso, as datas serão
// registradas no fuso horário em que cada usuário está (ou
// definiu em suas preferências pessoais)
//
//    1 = sim
//    0 = não
//
$sl_use_GMT = 1;
...

Configuração modificada config.php:

...
// Registrar datas em GMT?  Se você não fizer isso, as datas serão
// registradas no fuso horário em que cada usuário está (ou
// definiu em suas preferências pessoais)
//
//    1 = sim
//    0 = não
//
$sl_use_GMT = 0;
...

Exclua o arquivo gzip do Squirrel Logger baixado:

cd /usr/share/squirrelmail/plugins  
rm squirrel_logger-2.3-1.2.7.tar.gz

Configure o SquirrelMail para usar o plugin Squirrel Logger:

/usr/share/squirrelmail/config/conf.pl
Configuração do SquirrelMail : Ler: config.php (1.4.0)
---------------------------------------------------------
Menu Principal --
1.  Preferências da Organização
2.  Configurações do Servidor
3.  Padrões de Pasta
4.  Opções Gerais
5.  Temas
6.  Catálogos de Endereços
7.  Mensagem do Dia (MOTD)
8.  Plugins
9.  Banco de Dados
10. Idiomas

D.  Definir configurações pré-definidas para servidores IMAP específicos

C   Ativar cores
S   Salvar dados
Q   Sair

Comando >>
Selecione: Plugins
Configuração do SquirrelMail : Ler: config.php (1.4.0)
---------------------------------------------------------
Plugins
  Plugins Instalados
    1. delete_move_next
    2. squirrelspell
    3. newmail  

  Plugins Disponíveis:
    4. listcommands
    5. fortune
    6. filters
    7. translate
    8. abook_take
    9. spamcop
    10. squirrel_logger
    11. mail_fetch
    12. calendar
    13. sent_subfolders
    14. message_details
    15. administrator
    16. info
    17. bug_report

R   Retornar ao Menu Principal
C   Ativar cores
S   Salvar dados
Q   Sair

Comando >> 
Selecione: squirrel_logger
Configuração do SquirrelMail : Ler: config.php (1.4.0)
---------------------------------------------------------
Plugins
  Plugins Instalados
    1. delete_move_next
    2. squirrelspell
    3. newmail
    4. squirrel_logger  

  Plugins Disponíveis:
    5. listcommands
    6. fortune
    7. filters
    8. translate
    9. abook_take
    10. spamcop
    11. mail_fetch
    12. calendar
    13. sent_subfolders
    14. message_details
    15. administrator
    16. info
    17. bug_report

R   Retornar ao Menu Principal
C   Ativar cores
S   Salvar dados
Q   Sair

Comando >> 
Selecione: Salvar dados, Sair

3. Configuração do Fail2ban

Mude para o diretório de configuração do fail2ban:

cd /etc/fail2ban

Assumindo que você está usando transporte http para o SquirrelMail, use vi para adicionar as seguintes linhas ao arquivo jail.conf:

[squirrelmail-iptables]
enabled  = true
filter   = squirrelmail
action   = iptables[name=SquirrelMail, port=http, protocol=tcp]
           sendmail-whois[name=SquirrelMail, dest=you@your_domain.com, sender=fail2ban@your_domain.com]
logpath  = /var/lib/squirrelmail/prefs/squirrelmail_access_log
maxretry = 4

Certifique-se de que maxretry e os endereços de e-mail para dest e sender estão configurados de acordo com suas necessidades.

Mude para o diretório de filtros do fail2ban:

cd filter.d

No diretório filter.d, use vi para criar um arquivo squirrelmail.conf com o seguinte conteúdo:

# Arquivo de configuração do Fail2Ban
#
# Autor: Bill Landry ((email_protected))
#
# $Revision: 510 $

[Definition]

# Opção: failregex
# Notas.: regex para corresponder às mensagens de falha de senha no logfile. O
#         host deve ser correspondido por um grupo chamado "host". A tag "" pode
#         ser usada para correspondência padrão de IP/nome de host e é apenas um alias para
#         (?:::f{4,6}:)?(?P\S+)
# Valores: TEXTO

failregex = \[LOGIN_ERROR\].*from : Usuário desconhecido ou senha incorreta

# Opção:  ignoreregex
# Notas.:  regex para ignorar. Se este regex corresponder, a linha é ignorada.
# Valores:  TEXTO

ignoreregex =

O Fail2ban precisa reconhecer o formato de data usado no arquivo squirrelmail_access_log.

cd /usr/share/fail2ban/server

Use vi para editar o arquivo datedetector.py e adicione as seguintes linhas entre as seções de formato Apache e Exim:

# SquirrelMail 09/13/2007 06:43:20
template = DateStrptime()
template.setName("Month/Day/Year Hour:Minute:Second")
template.setRegex("\d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2}")
template.setPattern("%m/%d/%Y %H:%M:%S")
self.__templates.append(template)
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.