Seguridad · 4 min read · Jan 02, 2026
Configurando fail2ban con SquirrelMail en CentOS 5.3/ISPConfig 3
Configurando fail2ban con SquirrelMail en CentOS 5.3/ISPConfig 3
Introducción
Este tutorial muestra cómo puedes prevenir intentos de inicio de sesión ilimitados y, por lo tanto, ataques de fuerza bruta contra tu inicio de sesión web de SquirrelMail utilizando fail2ban.
1. Requisitos
Asegúrate de que tanto fail2ban como SquirrelMail estén instalados en una máquina CentOS v5.3/ISPConfig 3 detallada aquí.
Sin embargo, su instalación es sencilla:
yum install fail2ban squirrelmailDebes estar utilizando iptables como tu firewall. Fail2ban funciona creando una regla de eliminación temporal para la dirección IP de origen no autorizada.
2. Configuración de registro de SquirrelMail
SquirrelMail (imapd) en CentOS v5.3/ISPConfig 3 por defecto registra en /var/log/maillog pero solo como dirección IP 127.0.0.1 (localhost). Dado que estamos tratando de prohibir una dirección de origen específica, fail2ban no puede usar este archivo. Por lo tanto, instalamos y usamos Squirrel Logger para capturar la verdadera dirección de origen del intento de inicio de sesión.
Descarga e instala 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.phpMientras que este plugin era la última versión de Squirrel Logger, si ha habido una actualización de revisión, descárgalo directamente desde el sitio de Plugins de SquirrelMail aquí.
Si tu máquina utiliza una hora local que no es GMT, usa vi para cambiar: $sl_use_GMT = 1 a $sl_use_GMT = 0 en config.php:
Archivo original config.php:
...
// ¿Registrar fechas en GMT? Si no haces esto, las fechas se
// registrarán en la zona horaria en la que se encuentre cada usuario (o
// que haya establecido en sus preferencias personales)
//
// 1 = sí
// 0 = no
//
$sl_use_GMT = 1;
...Archivo modificado config.php:
...
// ¿Registrar fechas en GMT? Si no haces esto, las fechas se
// registrarán en la zona horaria en la que se encuentre cada usuario (o
// que haya establecido en sus preferencias personales)
//
// 1 = sí
// 0 = no
//
$sl_use_GMT = 0;
...Elimina el archivo gzip de Squirrel Logger descargado:
cd /usr/share/squirrelmail/plugins
rm squirrel_logger-2.3-1.2.7.tar.gzConfigura SquirrelMail para usar el plugin Squirrel Logger:
/usr/share/squirrelmail/config/conf.plConfiguración de SquirrelMail : Leer: config.php (1.4.0)
---------------------------------------------------------
Menú Principal --
1. Preferencias de Organización
2. Configuración del Servidor
3. Valores Predeterminados de Carpeta
4. Opciones Generales
5. Temas
6. Libros de Direcciones
7. Mensaje del Día (MOTD)
8. Plugins
9. Base de Datos
10. Idiomas
D. Establecer configuraciones predefinidas para servidores IMAP específicos
C Activar color
S Guardar datos
Q Salir
Comando >>Seleccionar: PluginsConfiguración de SquirrelMail : Leer: config.php (1.4.0)
---------------------------------------------------------
Plugins
Plugins Instalados
1. delete_move_next
2. squirrelspell
3. newmail
Plugins Disponibles:
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 Volver al Menú Principal
C Activar color
S Guardar datos
Q Salir
Comando >> Seleccionar: squirrel_loggerConfiguración de SquirrelMail : Leer: config.php (1.4.0)
---------------------------------------------------------
Plugins
Plugins Instalados
1. delete_move_next
2. squirrelspell
3. newmail
4. squirrel_logger
Plugins Disponibles:
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 Volver al Menú Principal
C Activar color
S Guardar datos
Q Salir
Comando >> Seleccionar: Guardar datos, Salir3. Configuración de fail2ban
Cambia al directorio de configuración de fail2ban:
cd /etc/fail2banAsumiendo que estás utilizando el transporte http para SquirrelMail, usa vi para agregar las siguientes líneas al archivo 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 = 4Asegúrate de que maxretry y las direcciones de correo electrónico para dest y sender estén configuradas según tus requisitos.
Cambia al directorio de filtros de fail2ban:
cd filter.dEn el directorio filter.d, usa vi para crear un archivo squirrelmail.conf con el siguiente contenido:
# Archivo de configuración de Fail2Ban
#
# Autor: Bill Landry ((email_protected))
#
# $Revision: 510 $
[Definition]
# Opción: failregex
# Notas.: regex para coincidir con los mensajes de fallos de contraseña en el archivo de registro. El
# host debe coincidir con un grupo llamado "host". La etiqueta "" puede
# ser utilizada para coincidencias estándar de IP/nombre de host y es solo un alias para
# (?:::f{4,6}:)?(?P\S+)
# Valores: TEXTO
failregex = \[LOGIN_ERROR\].*from : Usuario desconocido o contraseña incorrecta
# Opción: ignoreregex
# Notas.: regex para ignorar. Si este regex coincide, la línea es ignorada.
# Valores: TEXTO
ignoreregex = Fail2ban necesita reconocer el formato de fecha utilizado en el archivo squirrelmail_access_log.
cd /usr/share/fail2ban/serverUsa vi para editar el archivo datedetector.py y agrega las siguientes líneas entre las secciones de formato de Apache y 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)Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.