Sécurité · 4 min read · Jan 02, 2026
Configurer fail2ban avec SquirrelMail sur CentOS 5.3/ISPConfig 3
Configurer fail2ban avec SquirrelMail sur CentOS 5.3/ISPConfig 3
Introduction
Ce tutoriel montre comment vous pouvez empêcher des tentatives de connexion illimitées et donc des attaques par force brute contre votre connexion Web SquirrelMail en utilisant fail2ban.
1. Exigences
Assurez-vous que fail2ban et SquirrelMail sont installés sur une machine CentOS v5.3/ISPConfig 3 détaillée ici.
Cependant, leur installation est simple :
yum install fail2ban squirrelmailVous devez utiliser activement iptables comme votre pare-feu. Fail2ban fonctionne en créant une règle de rejet temporaire pour l’adresse IP source non autorisée.
2. Configuration des journaux SquirrelMail
SquirrelMail (imapd) sous CentOS v5.3/ISPConfig 3 enregistre par défaut dans /var/log/maillog mais uniquement comme adresse IP 127.0.0.1 (localhost). Puisque nous essayons d’interdire une adresse source spécifique, fail2ban ne peut pas utiliser ce fichier. Par conséquent, nous installons et utilisons Squirrel Logger pour capturer la véritable adresse source de la tentative de connexion.
Téléchargez et installez 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.phpBien que ce plugin soit la dernière version de Squirrel Logger, s’il y a eu une mise à jour de révision, téléchargez-le directement depuis le site des plugins SquirrelMail ici.
Si votre machine utilise un fuseau horaire local qui n’est pas GMT, utilisez vi pour changer : $sl_use_GMT = 1 à $sl_use_GMT = 0 dans config.php :
Original config.php :
...
// Enregistrer les dates en GMT ? Si vous ne le faites pas, les dates seront
// enregistrées dans le fuseau horaire de chaque utilisateur (ou
// défini dans leurs préférences personnelles)
//
// 1 = oui
// 0 = non
//
$sl_use_GMT = 1;
...Modified config.php :
...
// Enregistrer les dates en GMT ? Si vous ne le faites pas, les dates seront
// enregistrées dans le fuseau horaire de chaque utilisateur (ou
// défini dans leurs préférences personnelles)
//
// 1 = oui
// 0 = non
//
$sl_use_GMT = 0;
...Supprimez le fichier gzip Squirrel Logger téléchargé :
cd /usr/share/squirrelmail/plugins
rm squirrel_logger-2.3-1.2.7.tar.gzConfigurez SquirrelMail pour utiliser le plugin Squirrel Logger :
/usr/share/squirrelmail/config/conf.plConfiguration de SquirrelMail : Lire : config.php (1.4.0)
---------------------------------------------------------
Menu Principal --
1. Préférences d'organisation
2. Paramètres du serveur
3. Paramètres par défaut des dossiers
4. Options générales
5. Thèmes
6. Carnets d'adresses
7. Message du jour (MOTD)
8. Plugins
9. Base de données
10. Langues
D. Définir des paramètres prédéfinis pour des serveurs IMAP spécifiques
C Activer la couleur
S Enregistrer les données
Q Quitter
Commande >>Sélectionnez : PluginsConfiguration de SquirrelMail : Lire : config.php (1.4.0)
---------------------------------------------------------
Plugins
Plugins installés
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 Retour au menu principal
C Activer la couleur
S Enregistrer les données
Q Quitter
Commande >> Sélectionnez : squirrel_loggerConfiguration de SquirrelMail : Lire : config.php (1.4.0)
---------------------------------------------------------
Plugins
Plugins installés
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 Retour au menu principal
C Activer la couleur
S Enregistrer les données
Q Quitter
Commande >> Sélectionnez : Enregistrer les données, Quitter3. Configuration de Fail2ban
Changez de répertoire vers le répertoire de configuration de fail2ban :
cd /etc/fail2banEn supposant que vous utilisez le transport http pour SquirrelMail, utilisez vi pour ajouter les lignes suivantes au fichier 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 = 4Assurez-vous que maxretry et les adresses e-mail pour dest et sender sont définies selon vos besoins.
Changez de répertoire vers le répertoire des filtres de fail2ban :
cd filter.dDans le répertoire filter.d, utilisez vi pour créer un fichier squirrelmail.conf avec le contenu suivant :
# Fichier de configuration Fail2Ban
#
# Auteur : Bill Landry ((email_protected))
#
# $Revision: 510 $
[Definition]
# Option : failregex
# Notes : regex pour correspondre aux messages d'échec de mot de passe dans le fichier journal. L
# hôte doit être correspondre par un groupe nommé "host". Le tag "" peut
# être utilisé pour la correspondance standard IP/nom d'hôte et est seulement un alias pour
# (?:::f{4,6}:)?(?P\S+)
# Valeurs : TEXTE
failregex = \[LOGIN_ERROR\].*from : Utilisateur inconnu ou mot de passe incorrect
# Option : ignoreregex
# Notes : regex à ignorer. Si cette regex correspond, la ligne est ignorée.
# Valeurs : TEXTE
ignoreregex = Fail2ban doit reconnaître le format de date utilisé dans le fichier squirrelmail_access_log.
cd /usr/share/fail2ban/serverUtilisez vi pour éditer le fichier datedetector.py et ajoutez les lignes suivantes entre les sections de format Apache et 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)Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.