Mail Access Log Analyzer

Mail Access Log Analyzer è uno script Bash per sistemi Linux (Debian/Ubuntu) con server di posta ISPConfig + Dovecot che permette di analizzare in modo rapido e visivo gli accessi alla casella email tramite protocollo POP3 e IMAP.

A cosa serve

Lanciato da terminale con privilegi di root, lo script legge il file di log /var/log/mail.log e mostra, per ogni utente, l’ultimo accesso effettuato alla propria casella di posta. È utile per il sistemista che deve monitorare chi si è connesso, da quale indirizzo IP e con quale livello di sicurezza.

Funzionalità principali

Avviandosi, lo script chiede interattivamente due filtri opzionali: il dominio da analizzare (ad esempio google.it o dominio.com) e il tipo di connessione da visualizzare, scegliendo tra tutte le connessioni, solo quelle cifrate (TLS/SSL) o solo quelle in chiaro. Se non si inserisce nulla, mostra tutto.

Il risultato viene presentato in una tabella colorata ordinata per data crescente, con le seguenti colonne:

Data/OraUtenteIPProtocolloCifratura

Le righe sono colorate in verde per le connessioni sicure (TLS/SSL) e in giallo per quelle non cifrate, rendendo immediatamente evidente quale utente sta accedendo in modo non protetto.

Requisiti

  • Sistema operativo: Debian / Ubuntu
  • Server di posta: Dovecot (con ISPConfig)
  • Nessuna dipendenza esterna: usa solo strumenti standard di sistema (grep, sed, awk)

Guida all’installazione e utilizzo — Mail Access Log Analyzer

1. Copia lo script sul server

Carica il file mail_access_report.sh sul tuo server tramite SCP o SFTP, oppure crealo direttamente da terminale:

bash

nano /usr/local/bin/mail_access_report.sh

Incolla il contenuto dello script, salva con CTRL+O e chiudi con CTRL+X.


2. Rendi lo script eseguibile

bash

chmod +x /usr/local/bin/mail_access_report.sh

Mettendolo in /usr/local/bin/ potrai richiamarlo da qualsiasi directory semplicemente digitando il suo nome.


3. Esegui lo script

Lo script deve essere eseguito come root perché il file /var/log/mail.log è in sola lettura per gli utenti normali:

bash

sudo mail_access_report.sh

oppure, se sei già root:

bash

mail_access_report.sh

4. Utilizzo interattivo

All’avvio lo script ti pone due domande.

Domanda 1 — Filtro per dominio:

Filtra per dominio
Esempi: google.it  dominio.com  (lascia vuoto = tutti i domini)
Dominio:

Digita il dominio che vuoi analizzare (es. google.it oppure dominio.com) oppure premi Invio per vedere tutti i domini presenti nel log.

Domanda 2 — Tipo di connessione:

Filtra per tipo di connessione
  1) Tutte (sicure e non sicure)
  2) Solo connessioni SICURE (TLS/SSL)
  3) Solo connessioni NON SICURE
Scelta [1-3, default=1]:

Digita 1, 2 o 3 oppure premi Invio per vedere tutto.


5. Lettura del risultato

Lo script produce una tabella simile a questa:

+---------------------+-------------------------------------+------------------+-------------+-----------+
| Data/Ora            | Utente                              | IP               | Protocollo  | Cifratura |
+---------------------+-------------------------------------+------------------+-------------+-----------+
| 2026-03-22T08:50:52 | mario.rossi@dominio.com             | 109.118.74.22    | imap-login  | NON SICURO|
| 2026-03-23T09:07:44 | barbara.bianchi@dominio.com         | 37.60.34.166     | pop3-login  | SICURO    |
| 2026-03-23T10:40:41 | elena.verdi@google.it               | 176.57.126.125   | pop3-login  | SICURO    |
+---------------------+-------------------------------------+------------------+-------------+-----------+

Ogni riga rappresenta l’ultimo accesso registrato per quell’utente. Le righe sono ordinate per data crescente (dal più vecchio al più recente). Il colore verde indica una connessione cifrata TLS/SSL, il giallo una connessione in chiaro non protetta.


6. Cosa fare se un utente risulta NON SICURO

Se noti utenti che si connettono senza cifratura, significa che il loro client di posta (Outlook, Thunderbird, Mail, ecc.) è configurato senza SSL/TLS. In quel caso è opportuno:

  1. Contattare l’utente e guidarlo nella riconfigurazione del client
  2. Verificare che le porte sicure siano attive su Dovecot: 993 per IMAP SSL e 995 per POP3 SSL

7. Problemi comuni

Il log non viene trovato:

[ERRORE] File di log non trovato: /var/log/mail.log

Verifica che Dovecot stia effettivamente scrivendo su quel file:

bash

ls -lh /var/log/

Su alcune configurazioni il log potrebbe trovarsi in /var/log/syslog. In quel caso modifica la riga iniziale dello script:

bash

LOGFILE="/var/log/syslog"

Nessun risultato trovato: Significa che nel log non ci sono accessi corrispondenti ai filtri scelti. Prova a rieseguire senza filtri (premi Invio a entrambe le domande) per verificare che il log contenga effettivamente dati.

Permessi negati:

bash

Permission denied

Assicurati di eseguire lo script come root o con sudo.