Email

Il modulo Email è composto da tre parti principali:

  • server SMTP per l’invio e la ricezione [1]
  • server IMAP e POP3 per la lettura della posta [2], e linguaggio Sieve per organizzarla [3]
  • Filtro anti-spam, anti-virus e blocco allegati [4]

Vantaggi

  • Completa autonomia nella gestione della posta
  • Esclusione di eventuali problemi dovuti al provider
  • Possibilità di ricostruire tutto il tragitto dei messaggi al fine di individuare eventuali errori
  • Scansione anti-spam ed anti-virus ottimizzata

Vedi anche gli argomenti correlati:

  • Come funziona la posta elettronica [5]
  • Record DNS di tipo MX [6]
  • Simple Mail Transfer Protocol (SMTP) [7]

Domini

NethServer consente la gestione di un numero illimitato di domini, configurabili dalla pagina Email > Domini. Per ciascun dominio sono disponibili due modalità:

  • Consegna locale: la posta viene consegnata agli utenti locali e salvata in formato Maildir [8]
  • Passa ad un altro server (relay): la posta ricevuta viene inoltrata ad un altro server di posta

Nota

Eliminando un dominio, non verranno eliminate e-mail, ma solo inibita la ricezione di mail indirizzate al dominio. Eventuali mail già ricevute rimarranno conservate sul server.

NethServer permette di conservare una copia nascosta di tutte le mail dirette ad uno specifico dominio: tutti i messaggi verranno consegnati sia al destinatario sia ad un utente (o gruppo) locale. Questa opzione è attivabile attraverso la check box Spedisci sempre una copia (Bcc)

Avvertimento

L’attivazione della «copia nascosta» va valutata attentamente, perché, in ambito aziendale, potrebbe essere equiparata ad un telecontrollo del lavoratore, vietato dalla legge in alcuni stati.

La funzionalità Aggiungi una nota legale in calce ai messaggi inviati aggiunge automaticamente alle email in spedizione un testo predefinito, detto disclaimer, utilizzabile per esempio, per soddisfare possibili requisiti di legge. Si noti che firma e disclaimer sono concetti molto diversi.

La firma dovrebbe essere inserita nel testo della email solo dal client di posta (il MUA): Outlook, Thunderbird, ecc.. È un testo personalizzabile contente ad esempio i dati del mittente, contatti, indirizzi, numeri di telefono.

Esempio di firma:

John Smith
President | My Mighty Company | Middle Earth
555-555-5555 | [email protected] | http://www.mydomain.com

Il «disclaimer» invece, è un testo fisso e può essere soltanto «allegato» dal server. Il disclaimer viene allegato alla mail in uscita, non aggiunto al messaggio.

Questa tecnica permette di non alterarne la validità in caso di utilizzo di firma digitale.

Esempio di disclaimer:

This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed.  If you have received this email in error please
notify the system manager.  This message contains confidential
information and is intended only for the individual named.

Il disclaimer può contenere codice Markdown [9] che consente la formattazione del testo.

Indirizzi email

Il sistema consente la creazione di un numero illimitato di indirizzi email detti anche pseudonimi dalla pagina Indirizzi email. Ciascun indirizzo è associato ad un utente o un gruppo di sistema a cui è associata una mailbox (see Caselle di posta di utenti e gruppi). Può funzionare con tutti i domini configurati oppure solo su domini specifici. Per esempio:

A volte, un’azienda preferisce che le comunicazioni aziendali tramite email utilizzino degli indirizzi email «ufficiali» (amministrazione@dominio.it o supporto@dominio.it) piuttosto che indirizzi nominativi (nome.cognome@dominio.it), perché il destinatario potrebbe essere assente ed in questo caso non si corre il rischio di lasciarsi sfuggire eventuali risposte.

Quando si crea un nuovo account dalle pagine Utenti o Gruppi, il sistema suggerisce un indirizzo email di default per ogni dominio di posta configurato.

Per esempio, creando un nuovo profilo per l’utente Donald Duck:

Caselle di posta di utenti e gruppi

I messaggi di posta elettronica consegnati ad un utente o gruppo, così come configurato dalla pagina Indirizzi email, sono scritti in una posizione del disco chiamata casella di posta.

Quando viene installato il modulo Email, eventuali utenti e gruppi già esistenti non hanno una casella di posta associata. Essa deve essere abilitata in maniera esplicita dalla scheda Utenti > Servizi o Gruppi > Servizi. Al contrario, i nuovi account hanno questa opzione abilitata di default.

Dalla stessa scheda Servizi delle pagine Utenti e Gruppi può essere impostato un indirizzo email esterno dove saranno inoltrati i messaggi. Una copia di ogni singolo messaggio può essere mantenuta sul server stesso.

Quando un indirizzo è associato ad un gruppo, il server può essere configurato per consegnare i messaggi di posta in due modi, dalla scheda Gruppi > Servizi:

  • inviare una copia del messaggio a ciascun membro del gruppo
  • depositare il messaggio in una cartella condivisa. Questa opzione è raccomandata per gruppi con tanti membri che ricevono allegati molto grandi.

Avvertimento

L’eliminazione di un gruppo o di un utente rimuove la casella di posta associata!

Dal pannello Email > Caselle di posta è possibile scegliere quali protocolli utilizzare per consentire l’access alle mailbox di utenti e gruppi:

  • IMAP [10] (raccomandato)
  • POP3 [11] (sconsigliato)

Per motivi di sicurezza, tutti protocolli richiedono la connessione cifrata in modalità STARTTLS. Anche se fortemente sconsigliato, è possibile disabilitare la cifratura abilitando l’opzione Consenti connessioni non cifrate. In questo modo le password e i contenuti dei messaggi possono transitare in chiaro nella rete.

Avvertimento

Non consentire le connessioni in chiaro negli ambienti di produzione!

Dalla stessa pagina lo Spazio disco di una casella di posta può essere limitato da una quota prestabilita. Se alle caselle di posta è applicata una quota, la pagina Dashboard > Mail quota riassume l’utilizzo dello spazio disco di ogni utente. La quota può essere personalizzata per un utente particolare dal controllo Utenti > Modifica > Servizi > Quota email personalizzata.

I messaggi marcati come spam (vedi Filtro) possono essere spostati automaticamente all’interno della cartella junkmail abilitando l’opzione Sposta nella cartella «junkmail». I messaggi di spam vengono automaticamente rimossi dopo che è trascorso il periodo specificato da Conserva per. Tale periodo può essere personalizzato per un utente particolare dal controllo Utenti > Modifica > Servizi > Personalizza tempo di permanenza delle email di spam.

L’utente admin può impersonare un altro utente, acquisendo pieni diritti sui contenuti della casella di posta e sui permessi delle cartelle di quest’ultimo. L’opzione Admin può accedere impersonando un altro utente controlla questa facoltà, conosciuta con il nome di master user in [2].

Quando Admin può accedere impersonando un altro utente è abilitata, il server IMAP accetta qualsiasi nome utente al quale sia aggiunto il suffisso *admin, e la password di admin come credenziali valide.

Per esempio, per accedere come john con la password di admin secr3t, utilizzare le seguenti credenziali:

  • nome utente: john*admin
  • password: secr3t

Messaggi

Dalla pagina Email > Messaggi, il controllo Accetta messaggi fino a imposta la dimensione massima dei messaggi che attraversano il sistema. Se questo limite è superato, un messaggio non entra affatto nel sistema, e viene rifiutato.

Quando un messaggio entra in NethServer, viene registrato nella coda messaggi, in attesa di essere consegnato o inoltrato altrove (relay). Quando NethServer inoltra un messaggio ad un server remoto, possono verificarsi degli errori. Per esempio:

  • la connessione di rete fallisce, oppure
  • l’altro server è spento, o è in sovraccarico

Questi ed altri errori sono temporanei: in questi casi, NethServer tenta di riconnettersi all’host remoto ad intervalli regolari, finché viene raggiunto un limite. Il controllo Tenta l’invio per imposta questo limite. Di default è impostato a 4 giorni.

Mentre i messaggi sono nella coda, l’amministratore può richiedere un tentativo immediato di spedizione, premendo il pulsante Tenta l’invio dalla scheda Gestione coda. In alternativa, l’amministratore può eliminare i messaggi in coda in maniera selettiva, o svuotare completamente la coda mediante il pulsante Elimina tutti.

L’opzione Spedisci sempre una copia abilita la copia nascosta di qualsiasi messaggio attraversi il server di posta. Questa funzionalità è differente dall’opzione simile nella scheda Email > Domain perché non fa differenza tra i domini di posta e in più cattura i messaggi in uscita.

Avvertimento

L’attivazione della «copia nascosta» va valutata attentamente, perché, in ambito aziendale, potrebbe essere equiparata ad un telecontrollo del lavoratore, vietato dalla legge in alcuni stati.

L’opzione Invia tramite smarthost obbliga tutti i messaggi in uscita ad essere diretti verso un server SMTP speciale, detto in gergo smarthost. Uno smarthost accetta d’inoltrare i messaggi sotto certe restrizioni. Potrebbe controllare:

  • l’indirizzo IP del client
  • le credenziali SMTP AUTH

Nota

Spedire tramite uno smarthost è in genere sconsigliato, a meno che il server non sia temporaneamente in una blacklist [12], o il traffico SMTP sia bloccato dall’ISP.

Filtro

Tutta la posta in transito è sottoposta ad una serie di controlli che possono essere abilitati selettivamente dalla pagina Email > Filtro:

  • Blocco allegati
  • Anti-virus
  • Anti-spam

Blocco allegati

Il sistema può ispezionare le email, negando l’accesso a messaggi che contengono file in formati proibiti dalle politiche aziendali. È possibile bloccare i seguenti tipi:

  • file eseguibili (es. exe, msi)
  • archivi di file (es. zip, tar.gz, docx)
  • lista personalizzata di estensioni

Il sistema riconosce il tipo del file analizzandone il contenuto, indipendentemente dal nome del file. Quindi è possibile che file MS Word (docx) e OpenOffice (odt) siano bloccati perché sono in realtà anche degli archivi zip.

Anti-virus

Il componente anti-virus individua i messaggi di posta elettronica contenenti virus. I messaggi infetti vengono scartati. Il database contenente le impronte dei virus è aggiornato periodicamente.

Anti-spam

Il filtro anti-spam [14] analizza la posta elettronica rilevando e classificando un messaggio come spam [13] utilizzando criteri euristici, regole predeterminate e valutazioni statistiche sul contenuto del messaggio. Le regole sono pubbliche e aggiornate periodicamente. Il filtro inoltre può controllare se il server mittente è presente in una o più blacklist (DNSBL). Un punteggio è associato ad ognuna di queste regole.

Il punteggio totale raccolto alla fine dell’analisi consente al server di decidere se rifiutare il messaggio o marcarlo come spam e consegnarlo lo stesso. Le soglie dei punteggi sono controllate mediante i cursori Soglia spam e Soglia rifiuto messaggio, nella pagina Email > Filtro.

I messaggi marcati come spam hanno uno speciale header X-Spam-Flag: YES. L’opzione Aggiungi un prefisso all’oggetto dei messaggi spam evidenzia i messaggi marcati come spam, modificandone con la stringa data l’oggetto (header Subject).

I filtri statistici, chiamati bayesiani [15], sono regole speciali che evolvono e adattano rapidamente l’esito dell’analisi dei messaggi marcandoli come spam o ham.

I filtri bayesiani possono essere addestrati mediante un qualsiasi client IMAP, semplicemente spostando un messaggio dentro o fuori della cartella «junkmail». Come prerequisito, la cartella junkmail deve essere abilitata dalla pagina Email > Caselle di posta, abilitando l’opzione Sposta nella cartella «junkmail».

  • Spostando un messaggio dentro la cartella «junkmail», i filtri apprendono che il messaggio è spam e assegneranno un punteggio più alto ad altri messaggi simili.
  • Al contrario, spostando un messaggio fuori di «junkmail», i filtri apprendono che è ham: a messaggi simili sarà assegnato un punteggio più basso.

Normalmente qualsiasi utente può addestrare i filtri con questa tecnica. Se un gruppo chiamato spamtrainers esiste, solo gli utenti di questo gruppo saranno invece autorizzati ad addestrare i filtri.

Nota

E” buona norma controllare costantemente la propria junkmail per non correre il rischio di perdere messaggi riconosciuti erroneamente come spam.

Se il sistema fallisce nel riconoscere lo spam anche dopo alcuni tentativi di allenamento, la whitelist e la blacklist possono venire in aiuto. Queste sono liste di indirizzi di posta elettronica che vengono o sempre ammessi o sempre rifiutati a spedire o ricevere un messaggio.

La sezione Regole di accesso per indirizzi email consente la creazione di tre tipi di regole:

  • Blocca da: tutti i messaggi provenienti dal mittente indicato vengono sempre bloccati
  • Accetta da: tutti i messaggi provenienti dal mittente indicato vengono sempre accettati
  • Accetta a: tutti i messaggi destinati all’indirizzo indicato vengono sempre accettati

Benchè sconsigliato è possibile creare regole non solo sul singolo indirizzo email, ma su un intero dominio di posta, per farlo è sufficiente specificare solo il dominio nella regola (es: nethserver.org).

Nota

Il controllo anti-virus è eseguito indipendentemente dalle impostazioni di whitelist.

Blocco porta 25

Se il sistema è anche il gateway della rete, le zone blue e green non potranno inviare mail a server esterni usando la porta 25 (SMTP). Il blocco della porta 25 evita che macchine nella LAN siano utilizzate da remoto per l’invio di SPAM.

L’amministratore può cambiare questa politica creando un’apposita regola del firewall nella pagina Regole.

Configurazione client

NethServer supporta client per la posta elettronica aderenti agli standard che utilizzano le seguenti porte IANA:

  • imap/143
  • pop3/110
  • smtp/587
  • sieve/4190

L’autenticazione richiede la cifratura in modalità STARTTLS e supporta le seguenti varianti:

  • LOGIN
  • PLAIN

Inoltre le seguenti porte SSL sono disponibili per software datato che ancora non supporta STARTTLS:

  • imaps/993
  • pop3s/995
  • smtps/465

Avvertimento

La porta SMTP standard 25 è riservata per i trasferimenti di messaggi tra server MTA. Nei client utilizzare solo le porte summenzionate.

Se NethServer agisce anche come server DNS nella LAN, registra il suo nome come record MX insieme ai seguenti alias:

  • smtp.<dominio>
  • imap.<dominio>
  • pop.<dominio>
  • pop3.<dominio>

Esempio:

  • Dominio: miosito.com
  • Hostname: mail.miosito.com
  • MX record: mail.miosito.com
  • Alias disponibili: smtp.miosito.com, imap.miosito.com, pop.miosito.com, pop3.miosito.com.

Nota

Alcuni client email (es.: Mozilla Thunderbird) sono in grado di usare gli alias DNS e il record MX per configurare automaticamente gli account di posta, digitando soltanto l’indirizzo email.

Per disabilitare il record MX e gli alias, accedere alla console di root e digitare:

config setprop postfix MxRecordStatus disabled
signal-event nethserver-hosts-update

Politiche SMTP di invio speciali

La configurazione predefinita di NethServer richiede che tutti i client utilizzino la porta submission (587) con cifratura e autenticazione abilitate per inviare messaggi attraverso il server SMTP.

Per semplificare la configurazione di ambienti preesistenti, la pagina Email > Accesso SMTP consente di specificare delle eccezioni ai criteri di accesso SMTP di default.

Avvertimento

non modificare i criteri di accesso di default in ambienti nuovi!

Per esempio, ci sono alcuni dispositivi (stampanti, scanner, …) che non supportano l’autenticazione SMTP, la cifratura o l’uso di porte personalizzate. Questi possono essere abilitati all’invio di messaggi email elencando il loro indirizzo IP nell’area di testo Consenti relay dai seguenti indirizzi IP.

Sotto Opzioni avanzate si trovano inoltre

  • L’opzione Consenti relay dalle reti fidate, che abilita la spedizione di messaggi da qualsiasi client connesso dalle reti fidate.
  • L’opzione Abilita autenticazione sulla porta 25, che consente l’autenticazione dei client SMTP e l’invio (relay) di messaggi anche sulla porta 25.

HELO personalizzato

Il primo passo di una sessione SMTP è lo scambio del comando HELO (o EHLO). Tale comando richiede un parametro obbligatorio che l’RFC 1123 definisce come il nome di dominio principale e valido del server.

NethServer ed altri server di posta, nel tentativo di ridurre lo spam, non accettano HELO con domini non registrati nel DNS pubblico.

Quando comunica con un altro server di posta, NethServer utilizza il valore del dominio principale (FQDN) come parametro del comando HELO. Se questo non è registrato nel DNS pubblico, l’HELO può essere corretto impostando una prop speciale. Per esempio, assumendo che myhelo.example.com sia il record registrato nel DNS pubblico, digitare i seguenti comandi:

config setprop postfix HeloHost myhelo.example.com
signal-event nethserver-mail-common-save

Tale configurazione è utilizzabile anche quando non si è proprio in possesso di un dominio registrato, in questo caso è possibile registrare gratuitamente un DNS dinamico, associarlo all’IP pubblico del server ed utilizzare questo dominio come parametro HeloHost del precedente comando.

Email in Active Directory

Il modulo Email si integra in un ambiente Active Directory (AD) se il ruolo Active Directory member è abilitato nella pagina Rete Windows.

Assicurarsi che il valore del campo Ramo LDAP degli account nella pagina Rete Windows sia correttamente impostato al ramo LDAP sotto cui gli utenti e i gruppi per cui attivare l’email sono posizionati.

Questo è l’esempio di un nodo LDAP corrispondente ad un utente di AD (alcuni attributi sono stati omessi):

dn: CN=John Smith,OU=Sviluppo,OU=Nethesis,DC=adnethesis,DC=it
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: John Smith
sn: Smith
givenName: John
distinguishedName: CN=John Smith,OU=Sviluppo,OU=Nethesis,DC=adnethesis,DC
 =it
instanceType: 4
displayName: John Smith
memberOf: CN=sviluppo,OU=Nethesis,DC=adnethesis,DC=it
memberOf: CN=secgroup,OU=Nethesis,DC=adnethesis,DC=it
memberOf: CN=tecnici,OU=Nethesis,DC=adnethesis,DC=it
name: John Smith
primaryGroupID: 513
sAMAccountName: john.smith
sAMAccountType: 805306368
userAccountControl: 66048
userPrincipalName: [email protected]
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=adnethesis,DC=it
mail: [email protected]
otherMailbox: smtp:[email protected]
proxyAddresses: smtp:[email protected]

Per far funzionare NethServer con il database LDAP esterno di Active Directory vengono applicate le seguenti regole:

  1. Sono considerati solo gli account abilitati (attributo userAccountControl).
  2. Il nome di login per IMAP e SMTP è preso dall’attributo sAMAccountName.
  3. Gli indirizzi email associati ad un utente provengono dagli attributi mail, otherMailbox e proxyAddresses. Gli ultimi due si aspettano il prefisso smtp: prima del valore vero e proprio. Inoltre userPrincipalName è di default considerato anche come indirizzo email, ma può essere disabilitato (vedi i comandi qui sotto).
  4. L’indirizzo email di un gruppo è preso dal suo attributo mail. Per default ogni gruppo è trattato come una lista di distribuzione: una copia del messaggio è consegnata ai suoi membri.
  5. Il suffisso di dominio degli indirizzi email specificati dagli attributi suddetti deve corrispondere ad uno dei domini configurati, altrimenti viene ignorato.

Per configurare globalmente i gruppi di sicurezza per ricevere i messaggi in una cartella condivisa, digitare i seguenti comandi nella console di root:

config setprop postfix AdsGroupsDeliveryType shared
signal-event nethserver-samba-save

Avvertimento

Evitare le lettere maiuscole nel nome dei gruppi di AD con cartella condivisa: le ACL IMAP non funzionano come atteso. Vedere BUG#2744.

Per evitare che l’attributo userPrincipalName sia considerato un indirizzo email valido, digitare i seguenti comandi nella console di root:

config setprop postfix AdsMapUserPrincipalStatus disabled
signal-event nethserver-samba-save

Posta eliminata Outlook

A differenza della quasi totalità dei client IMAP, Outlook non sposta i messaggi eliminati nel cestino, ma si limita a marcarli «cancellati».

È possibile forzare lo spostamento di tali messaggi nel cestino con questi comandi:

config setprop dovecot DeletedToTrash enabled
signal-event nethserver-mail-server-save

Si consiglia quindi di modificare la configurazione di Outlook in modo che nasconda i messaggi eliminati dalla posta in arrivo. La funzione è disponibile nel menu delle opzioni di visualizzazione.

Log

Ogni operazione eseguita dal server di posta è trascritta nei seguenti file di log:

  • /var/log/maillog: contiene tutte le operazioni di invio e consegna
  • /var/log/imap: contiene tutte le azioni di login/logout alle caselle di posta

Un transazione registrata nel file maillog di solito coinvolge diversi componenti del server di posta. Ogni riga contiene rispettivamente:

  • la data e l’ora
  • il nome host
  • il nome del componente e l’id del processo dell’istanza
  • il testo che descrive l’operazione

Di seguito una breve descrizione dei nomi dei componenti e delle azioni tipiche che eseguono:

transfer/smtpd

Identifica il demone SMTP in ascolto sulla porta 25 pubblica. Una riga di log di questo componente segnala un’attività che coinvolge un altro server di posta (MTA).

submission/smtpd

Identifica il demone SMTP in ascolto sulla porta 587 o 465 pubblica. Una riga di log di questo componente segnala un’attività che coinvolge un client di posta (MUA) che spedisce un messaggio.

amavis

Il demone SMTP Amavis applica tutte le regole di filtraggio della posta elettronica. Le righe di log di questo componente dettagliano le decisioni prese dal filtro.

queue/smtpd

Identifica un demone SMTP interno, accessibile unicamente dal sistema locale. Si occupa di ricevere e mettere in coda i messaggi buoni provenienti da Amavis.

relay/smtp

Questo è il client SMTP connesso ad un server remoto: prende un messaggio dalla coda e lo trasferisce al server remoto, così come specificato dalla configurazione dei domini di posta.

delivery/lmtp

I messaggi diretti agli account locali sono presi dalla coda e trasferiti all’istanza di Dovecot locale.

dovecot

Il demone Dovecot consegna i messaggi nelle caselle di posta degli utenti, eventualmente applicando i filtri Sieve.

Un quadro di tutto il sistema è disponibile dal sito workaround.org [16].

Riferimenti

[1]Postfix mail server http://www.postfix.org/
[2](1, 2) (1, 2) Dovecot Secure IMAP server http://www.dovecot.org/
[3]Sieve mail filtering language http://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)
[4]MTA/content-checker interface http://www.ijs.si/software/amavisd/
[5]Email, http://en.wikipedia.org/wiki/Email
[6]The MX DNS record, http://en.wikipedia.org/wiki/MX_record
[7]SMTP, http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
[8]The Maildir format, http://en.wikipedia.org/wiki/Maildir
[9]The Markdown plain text formatting syntax, http://en.wikipedia.org/wiki/Markdown
[10]IMAP http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol
[11]POP3 http://en.wikipedia.org/wiki/Post_Office_Protocol
[12]DNSBL http://en.wikipedia.org/wiki/DNSBL
[13]SPAM http://en.wikipedia.org/wiki/Spamming
[14]Spamassassin home page http://wiki.apache.org/spamassassin/Spam
[15]Bayesian filtering http://en.wikipedia.org/wiki/Naive_Bayes_spam_filtering
[16]The wondrous Ways of an Email https://workaround.org/ispmail/lenny/bigpicture