Sicurezza · 3 min read · Jan 02, 2026
Configurare fail2ban con SquirrelMail su CentOS 5.3/ISPConfig 3
Configurare fail2ban con SquirrelMail su CentOS 5.3/ISPConfig 3
Introduzione
Questo tutorial mostra come puoi prevenire tentativi di accesso illimitati e quindi attacchi di forza bruta contro il tuo accesso Web SquirrelMail utilizzando fail2ban.
1. Requisiti
Assicurati che sia fail2ban che SquirrelMail siano installati su una macchina CentOS v5.3/ISPConfig 3 come dettagliato qui.
Tuttavia, la loro installazione è semplice:
yum install fail2ban squirrelmailDevi utilizzare attivamente iptables come firewall. Fail2ban funziona creando una regola di drop temporanea per l’indirizzo IP sorgente non autorizzato.
2. Configurazione del logging di SquirrelMail
SquirrelMail (imapd) sotto CentOS v5.3/ISPConfig 3 per impostazione predefinita registra in /var/log/maillog ma solo come indirizzo IP 127.0.0.1 (localhost). Poiché stiamo cercando di bannare un indirizzo sorgente specifico, fail2ban non può utilizzare questo file. Pertanto, installiamo e utilizziamo Squirrel Logger per catturare il vero indirizzo sorgente del tentativo di accesso.
Scarica e installa 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.phpSebbene questo plugin fosse l’ultima versione di Squirrel Logger, se c’è stata un’aggiornamento della revisione, scaricalo direttamente dal sito dei Plugin di SquirrelMail qui.
Se la tua macchina utilizza un’ora locale che non è GMT, usa vi per cambiare: $sl_use_GMT = 1 a $sl_use_GMT = 0 in config.php:
Originale config.php:
...
// Registrare le date in GMT? Se non lo fai, le date saranno
// registrate in qualsiasi fuso orario in cui si trova ogni utente (o
// ha impostato nelle proprie preferenze personali)
//
// 1 = sì
// 0 = no
//
$sl_use_GMT = 1;
...config.php modificato:
...
// Registrare le date in GMT? Se non lo fai, le date saranno
// registrate in qualsiasi fuso orario in cui si trova ogni utente (o
// ha impostato nelle proprie preferenze personali)
//
// 1 = sì
// 0 = no
//
$sl_use_GMT = 0;
...Elimina il file gzip di Squirrel Logger scaricato:
cd /usr/share/squirrelmail/plugins
rm squirrel_logger-2.3-1.2.7.tar.gzConfigura SquirrelMail per utilizzare il plugin Squirrel Logger:
/usr/share/squirrelmail/config/conf.plConfigurazione di SquirrelMail : Leggi: config.php (1.4.0)
---------------------------------------------------------
Menu Principale --
1. Preferenze Organizzazione
2. Impostazioni Server
3. Impostazioni Cartella
4. Opzioni Generali
5. Temi
6. Rubriche
7. Messaggio del Giorno (MOTD)
8. Plugin
9. Database
10. Lingue
D. Imposta impostazioni predefinite per server IMAP specifici
C Attiva il colore
S Salva dati
Q Esci
Comando >>Seleziona: PluginConfigurazione di SquirrelMail : Leggi: config.php (1.4.0)
---------------------------------------------------------
Plugin
Plugin Installati
1. delete_move_next
2. squirrelspell
3. newmail
Plugin Disponibili:
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 Torna al Menu Principale
C Attiva il colore
S Salva dati
Q Esci
Comando >> Seleziona: squirrel_loggerConfigurazione di SquirrelMail : Leggi: config.php (1.4.0)
---------------------------------------------------------
Plugin
Plugin Installati
1. delete_move_next
2. squirrelspell
3. newmail
4. squirrel_logger
Plugin Disponibili:
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 Torna al Menu Principale
C Attiva il colore
S Salva dati
Q Esci
Comando >> Seleziona: Salva dati, Esci3. Configurazione di Fail2ban
Cambia nella directory di configurazione di fail2ban:
cd /etc/fail2banAssumendo che stai utilizzando il trasporto http per SquirrelMail, usa vi per aggiungere le seguenti righe al file 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 = 4Assicurati che maxretry e gli indirizzi email per dest e sender siano impostati secondo le tue esigenze.
Cambia nella directory dei filtri di fail2ban:
cd filter.dNella directory filter.d, usa vi per creare un file squirrelmail.conf con il seguente contenuto:
# File di configurazione di Fail2Ban
#
# Autore: Bill Landry ((email_protected))
#
# $Revision: 510 $
[Definition]
# Opzione: failregex
# Note.: regex per abbinare i messaggi di errore di password nel logfile. Il
# host deve essere abbinato da un gruppo chiamato "host". L'etichetta "" può
# essere utilizzata per l'abbinamento standard IP/nome host ed è solo un alias per
# (?:::f{4,6}:)?(?P\S+)
# Valori: TESTO
failregex = \[LOGIN_ERROR\].*from : Utente sconosciuto o password errata
# Opzione: ignoreregex
# Note.: regex da ignorare. Se questa regex corrisponde, la riga viene ignorata.
# Valori: TESTO
ignoreregex = Fail2ban deve riconoscere il formato della data utilizzato nel file squirrelmail_access_log.
cd /usr/share/fail2ban/serverUsa vi per modificare il file datedetector.py e aggiungere le seguenti righe tra le sezioni del formato Apache e del formato 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)Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.