[an error occurred while processing this directive]
[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]

Installazione Ubuntu Server 10.04 LTS come Mail Server

Posted on the marzo 31st, 2012 under Ubuntu by admin

Questa guida descrive come installare e configurare un mail server in ambiente Linux utilizzando la distribuzione Ubuntu Server 10.04 LTS (Long Time Service) e i seguenti pacchetti software per offrire i vari servizi necessari allo scopo:

  • Postfix: Server STMP (MTA)
  • Dovecot: Server IMAP e POP3
  • Mailscanner: servizio anti-spam (spamassassin) e anti-virus (ClamAV)
  • Apache e SquirrelMail: servizio di WebMail

Questo tipo di configurazione permetterà la gestione di più domini e più account virtuali e si suddivide nei seguenti articoli:
Parte 1 – Installazione Mail server
Parte 2 – Configurazione e personalizzazione dei vari servizi di posta elettronica
Parte 3 – Creazione utenti e account e-mail
Parte 4 – Possibili problematiche e approfondimenti
Apendice A – Utilizzo di porte SMTP non starndard
Apendice B – Gestione risposte automatiche con l’auto-responder vacation

 

Installazione Ubuntu Server 10.04 LTS come Mail Server

Scaricare l’immagine ISO di Ubuntu Server 10.04 LTS e masterizzarla su CD quindi avviare con il CD inserito il PC che fungerà da server.

Seguire i passi necessari fornendo le seguenti informazioni quando richieste:

Choose language: Italia

Configurazione tastiera: Italiana

Nome host: <indicare il nome che volete attribuire alla vostra macchina> (esempio: mioserver)

Partizionamento dischi: Guidato – usa l’intero disco e imposta LVM (default)

dopo varie conferme esegue la formattazione del disco.

Creazione utente principale:

<nome-utente> (esempio: admin)

<password>

cifrare home directory: NO

Proxy HTTP: se non si ha un proxy premere Invio lasciando vuota la richiesta

Modalità di installazione degli aggiornamenti: Nessun aggiornamento automatico (default)

Quando chiede i servizi da installare scegliere i seguenti:

  • LAMP Server (Linux, Apache, MySQL, PHP)
  • Mail Server
  • OpenSSH Server (servirà per accedere ed amministrare il server in remoto via SSH)

Proseguendo vengono richieste le seguenti informazioni per i vari servizi:

  • LAMP Server:
    • password per utente root di MySQL
  • Mail Server Postfix
    • Tipo installazione: Sito internet (ovvero un server collegato ad internet che invia e riceve posta direttamente senza passare da un relay server)
    • Nome Mail Server: esempio mioserver.miodominio.local
  • installare boot-loader GRUB: SI

Terminata l’installazione risultano già attivi e funzionanti i servizi SMTP, POP3 ed IMAP offerti da Postfix e Dovecot.

Inoltre è già possibile collegarsi in ssh.

Attribuire un IP statico alla macchina modificando il file interfaces. L’IP sarà pubblico se si vuole esporre il server direttamente in internet, altrimenti si può dare un IP privato della LAN (scelta che io preferisco) che poi va nattato con l’IP pubblico sul firewall.

vim /etc/network/interfaces

Al posto di “iface eth0 inet dhcp” inserire le seguenti righe (ovviamente con gli IP della vostra LAN, quelli indicati sono solo ad esempio):

iface eth0 inet static
address 192.168.1.xxx
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Quindi riavviare con il comando:

sudo shutdown -r 0

Mailscanner, Spamassassin e ClamAV

Mailscanner offre il servizio di filtro anti-spam e anti-virus utilizzando due capisaldi di Linux e del mondo open source: Spamassassin e ClamAV

NB: in realtà, come anti-virus, Mailscanner può utilizzare il motore di quasi tutti i principali anti-virus presenti in commercio come ad esempio TrendMicro, F-Prot, F-Secure, Kaspersky, Avast, …

Installare Mailscanner con il seguente comando:

sudo apt-get install mailscanner

verranno installati automaticamente anche i pacchetti relativi a clamav e spamassassin.

ATTENZIONE: Se al termine dell’installazione appare il seguente messaggio indicante che il demone di clamav non è stato avviato perchè non trova le firme (signatures):

Clamav signatures not found in /var/lib/clamav
Please retrieve them using freshclam or install the clamav-data package
Then run '/etc/init.d/clamav-daemon start'

riavviare il servizio freshclam con il comando

sudo /etc/init.d/clamav-freshclam restart

In questo modo vengono scaricati gli aggiornamenti. Quindi è possibile riavviare il demone di clamav col comando:

sudo /etc/init.d/clamav-deamon restart

SquirrelMail

SquirrelMail offre il servizio di webmail. Installarlo con il comando:

sudo apt-get install squirrelmail

Il servizio si appoggerà sul web server apache che risulta già installato avendo scelto anche l’opzione LAMP Server in fase di installazione di Ubuntu Server.

A questo punto bisogna configurare e personalizzare i vari servizi di posta elettronica.

Mail Server con Ubuntu, Postfix, Dovecot e Mailscanner – parte 2

 Terminata l’installazione descritta nella prima parte vanno configurati e personalizzati alcuni file.

Postfix

Postfix si preoccupa di fornire il servizio di MTA con il protocollo SMTP.

File /etc/postfix/main.cf

E’ il file principale di postfix. Vanno fatte le seguenti modifiche:

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.0/24

permette di indicare le reti da cui accettare il relay delle e-mail (solitamente la propria LAN).

 

commentare la seguente riga (anteponendo il carattere cancelletto #)

# mailbox_command = procmail -a "$EXTENSION"

ed aggiungere

home_mailbox = Maildir/

indica di registrare ed organizzare le e-mail con il sistema Maildir invece che MBOX (che è il default).

Maildir e MBOX sono i due metodi possibili per conservare le e-mail. MBOX conserva tutte le mail di un utente in un unico file (/var/spool/mail/<nomeutente>) mentre Maildir genera un file per ogni e-mail nella home dell’utente (/home/<utente>/Maildir/). Ci sono anche altre differenze ma fondamentalmente questa è quella che mi fa preferire Maildir evitandomi il rischio che danneggiando il mega file di MBOX perdo tutte le e-mail. Inoltre, per lo stesso motivo, è enormemente più vantaggio per backup incrementali della posta.

header_checks = regexp:/etc/postfix/header_checks

Fa in modo che Mailscanner esamini ogni e-mail prima che venga recapitata al destinatario.
Il file indicato in questa riga deve essere creato e verrà descritto più avanti.

Per gestire più domini aggiungere le seguenti righe:

virtual_alias_domains =  dominio1.com, dominioo2.it, ….
virtual_alias_maps = hash:/etc/postfix/virtual
sender_canonical_maps = hash:/etc/postfix/sender_canonical

NB: in virtual_alias_domains bisogna elencare tutti i domini da gestire

I files virtual e sender_canonical sono da creare e verranno descritti più avanti nella sezione dedicata alla creazione degli utenti.

Per dare la possibilità agli utenti remoti di autenticarsi con SASL, aggiungere le seguenti righe:

smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_authenticated_header = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth-client

Ci sono moltissime altre opzioni non necessarie al funzionamento ma che possono essere utili a seconda della esigenze. Ad esempio:

message_size_limit = 102400000

imposta la dimensione massima di un allegato a 100 MB. Se non specificata, il default è 10 MB.

smtpd_recipient_limit = 5000

imposta il numero massimo di indirizzi di destinazione di una e-mail. Il default è 1000. Ha senso aumentarlo solo se il server può essere utilizzato anche per servizi di newsletter.

File /etc/postfix/header_checks

Creare /etc/postfix/header_checks inserendoci la seguente unica riga:

/^Received:/ HOLD

Serve per “depositare” le e-mail in ingresso nella directory “hold” (/var/spool/postfix/hold) in modo che possano essere controllate da mailscanner prima di essere recapitate.

Il riferimento a questo file, come già scritto in precedenza, viene indicato nel file di configurazione di Postfix (main.cf) con l’istruzione:

header_checks = regexp:/etc/postfix/header_checks

Dovecot

Dovecot è il pacchetto che si occupa di fornire il servizio POP3 ed IMAP.

File /etc/dovecot/dovecot.conf

Questo file contiene tutti i parametri di configurazione del servizio. Di seguito un elenco di alcuni parametri che può essere utile modificare:

disable_plaintext_auth = no

impostarlo a “no” per permettere il login da remoto con autenticazione senza SSL/TLS. Il default è “yes”, ovvero accetta solo login in SSL.

log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot-info.log

indicano il percorso dei files dove registrare i log. Di default non è specificato niente quindi finisce tutto nel log di sistema (/var/log/syslog)

ssl = yes

indica se attivare il supporto a SSL/TLS. I valori possibili sono yes/no/required

mail_location = maildir:~/Maildir

fa si che i massaggi e-mail vengano archiviati con il sistema Maildir (invece di MBOX) nella directory Maildir nella home directory dell’utente.

maildir_copy_with_hardlinks = yes

fa si che la copia di una mail avvenga con gli hardlinks se possibile. Può migliorare le prestazioni.

Eliminare il cancelletto (#) di commento alle seguenti istruzioni:

socket listen {
  client {

ed aggiungere le seguenti istruzioni:

path = /var/spool/postfix/private/auth-client
  mode = 0660
  user = postfix
  group = postfix
  }
}

Mailscanner

File /etc/default/mailscanner

Editare questo file togliendo il cancelletto di commento (#) dalla seguente istruzione:

run_mailscanner=1

Questa modifica è fondamentale per attivare il servizio di Mailscanner.

File /etc/MailScanner/MailScanner.conf

E’ il file principale di Mailscanner a cui è possibile fare le seguenti personalizzazioni:

%org-name% = <nome-breve-mia-organizzazione>

associare a questo parametro un breve nome che identifichi la tua organizzazione. E’ utilizzato nella “costruzione” degli header X-Mailscanner

%org-long-name% = <nome-mia-organizzazione>

a differenza del precedente parametro qua va associata la descrizione estesa dell’organizzazione o azienda che fornisce il servizio. Questa informazione viene inserita automaticamente nella firma alla fine di ogni messaggio report, che sono messaggio inviati automaticamente dal server per informare di qualche azione compiuta coma ad esempio l’aver eliminato un file perchè trovato infetto da virus o perchè di un tipo non ammesso (esempio un allegato eseguibile .exe).

%web-site% = www.mia-organizzazione.com

associare l’indirizzo web dell’organizzazione. Anche questa informazione può essere inserita automaticamente sulla firma alla fine di ogni messaggio report.

%report-dir% = /etc/MailScanner/reports/it

modificare questa impostazione se si desidera che i vari report siano in lingua italiana. Di default sono nella directory etc/MailScanner/reports/en che ovviamente contiene i report in inglese.

I report si riferiscono a qualunque tipo messaggio automatico che il server invia per segnalare, ad esempio, che un allegato è stato rimosso perchè il suo nome non rispettava alcune regole previste o perchè è risultato infetto al controllo anti-virus o altro.

Max Children = 10

permette di indicare quanti processi di mailscanner possono essere attivi contemporaneamente. Il default è 1. In pratica quando arriva un e-mail, mailscanner attiva un processo per analizzarla. Se le e-mail sono molte e Max Children = 1 come di default, ogni e-mail resta in coda fino a quando non è terminata l’analisi della mail precedente. In caso di un forte traffico (dovuto anche allo spam) si rischia che le e-mail in coda diventino troppe causando un disservizio. Per questo, se la potenza del server lo permette, conviene aumentare questo valore in modo che più e-mail vengano analizzate contemporaneamente.

Run As User = postfix
Run As Group = postfix

fa in modo che mailscanner lavori con utente e gruppo “postfix”.

Incoming Queue Dir = /var/spool/postfix/hold

indica il percorso della coda dove mailscanner trova le e-mail ricevute da elaborare.

Outgoing Queue Dir = /var/spool/postfix/incoming

indica il percorso della coda dove mailscanner deve depositare le e-mail controllate.

MTA = postfix

indica il servizio di gestione delle e-mail che viene utilizzato (MTA=Mail Transfer Agent). Il default è “exim”

Scan Messages = yes

indica che ogni messaggio e-mail dev’essere controllato. E’ anche possibile abbinare un file di regole per definire che i messaggi “provenienti da” o “destinati a” non devono essere controllati. Ad esempio nel caso in cui si voglia che i messaggi provenienti dalla LAN o da qualche specifico server sicuro non vengano monitorati per non perdere tempo e non appesantire il server. Per farlo basta specificare il percorso del file di regole al posto del valore “yes” (esempio: %rules-dir%/scan.messages.rules)

Maximum Archive Depth = 2

indica il massimo livello di analisi dei file compressi. In pratica con questa configurazione vengono analizzati i file fino al secondo livello di compressione. Il default è 3. Per non analizzare i file compressi impostare 0

Virus Scanning = yes

indica di verificare se il messaggio contiene virus. Anche per questo parametro è possibile personalizzare il comportamento in base ad un file di regole (Virus Scanning = %rules-dir%/virus.scanning.rules)

Virus Scanners = clamav

indica il motore anti-virus da utilizzare. In questo caso ClamAV. Come già anticipato è possibile utilizzare anche altri anti-virus.

Virus Scanner Timeout = 120

indica il tempo massimo in secondi concesso all’anti-virus per analizzare il messaggio.

Dangerous Content Scanning = yes

indica di verificare se il messaggio ha contenuti potenzialmente pericolosi come ad esempio tentativi di frode (phishing) o codice HTML pericoloso. Anche per questo parametro è possibile personalizzare il comportamento in base ad un file di regole (Dangerous Content Scanning = %rules-dir%/content.rules)

Filename Rules = %etc-dir%/filename.rules.conf

indica il file contenete le regole attraverso le quali esaminare il nome dei files allegati ed eventualmente eliminarli se non le rispettano. Ad esempio può essere utile cancellare eventuali file eseguibili allegati con estensione “.exe” o “.com”

Filetype Rules = %etc-dir%/filetype.rules.conf

indica il file contenete le regole attraverso le quali esaminare i tipi di files allegati ed eventualmente eliminarli se non le rispettano. Ad esempio può essere utile cancellare file eseguibili, di registro o altro.

Include Scanner Name In Reports = no

indica se includere nei report il nome motore anti-virus utilizzato, nel caso di questa configurazione sarebbe ClamAV. Può essere utile se si utilizzano più motori anti-virus. Usandone solo uno è inutile indicarlo.

Always Include SpamAssassin Report = yes

indica se includere lo Spam Report negli header del messaggio anche se non risulta essere SPAM. Esempio se includere negli header i punteggi che il messaggio ha ottenuto:
X-MailScanner-SpamCheck: non spam, SpamAssassin (not cached, punteggio=0.5, necessario 5, EXTRA_MPART_TYPE 0.40, HTML_MESSAGE 0.10).
Personalmente trovo comodo che venga sempre aggiunto perchè permette di vedere quali considerazioni sono state fatte su un messaggio passato come normale ma che avrebbe dovuto essere considerato spam.

Notify Senders Of Blocked Filenames Or Filetypes = no

indica se inviare al mittente un avviso nel caso in cui un suo allegato sia stato bloccato (quindi non recapitato) perchè non rispettava le regole richieste relative al nome o al tipo di file (vedi Filename Rules e Filetype Rules)

Preferisco che sia il destinatario a decidere se avvisare il mittente in quanto a volte è spam con allegati strani e rispondergli non farebbe che confermare che il nostro indirizzo e-mail esiste veramente.

Notify Senders Of Other Blocked Content = no

indica se inviare al mittente un avviso nel caso in cui la sua e-mail sia stata bloccata perchè si ritiene contenga contenuti pericolosi (vedi Dangerous Content Scanning). Come già spiegato in precedenza, preferisco evitare risposte automatiche.

Phishing Modify Subject = start
Phishing Subject Text = {Fraud?}

indicano se mailscanner deve modificare il soggetto dell’e-mail se viene rilevato un tentativo di truffa. In questo caso, il valore start significa di modificare il soggetto aggiungendo all’inizio il valore espresso nel parametro Phishing Subject Text, ovvero “{Fraud?}

Spam Modify Subject = start
Spam Subject Text = {Spam?}

indicano se mailscanner deve modificare il soggetto dell’e-mail quando viene considerata SPAM. In questo caso, il valore start significa di modificare il soggetto aggiungendo all’inizio il valore espresso nel parametro Spam Subject Text , ovvero “{Spam?}

Warning Is Attachment = no

indica se specificare il messaggio di avviso (warning) in caso di rimozione di un allegato per vari motivi come allegato o all’interno del corpo del messaggio. Con il valore “no” viene specificato nel corpo della mail.

Is Definitely Not Spam = %rules-dir%/spam.whitelist.rules

indica il file nel quale elencare gli indirizzi mittenti affidabili le cui e-mail NON devono essere soggette a controllo e quindi devono passare sempre (White List). Tale file è descritto meglio più avanti.

Is Definitely Spam =  %rules-dir%/spam.blacklist.rules

indica il file nel quale elencare tutti gli indirizzi mittenti da considerare sempre come SPAM (Black List). Tale file è descritto meglio più avanti.

Definite Spam Is High Scoring = yes

indica di considerare lo spam ricevuto dalla black list come spam definitivo e certo (High Scoring) sul quale applicare le azioni definite per quel tipo di spam nel parametro “High Scoring Spam Actions” descritto più avanti

Ignore Spam Whitelist If Recipients Exceed = 40

indica di ignorare la white list se l’e-mail contiene più di 40 destinatari. In questo caso, anche se il mittente è in white list, il messaggio viene controllato da spamassassin e se fosse considerato come spam vengono applicate le azioni previste.

Max Spam Check Size = 1000k
Max SpamAssassin Size = 1000k

fanno in modo che messaggi di dimensione superiore ai 1000 Kb non vengano esaminati dall’anti-spam perchè è assai raro che uno spammer invii messaggi così grossi visto che ne invia a milioni. ATTENZIONE: questo parametro NON influisce sul controllo anti-virus che viene comunque effettuato indipendentemente dalla dimensione del messaggio.

Required SpamAssassin Score = 5

indica il punteggio minimo oltre il quale l’e-mail viene considerata SPAM. Se il punteggio non supera quello indicato nel parametro High SpamAssassin Score, allora è considerato come PROBABILE SPAM.

High SpamAssassin Score = 12

indica il punteggio minimo oltre il quale l’e-mail viene considerata SPAM DEFINITIVO O CERTO (High Scoring Spam).

SpamAssassin Auto Whitelist = no

disabilita le funzioni di spamassassin che permettono di generare white-list automatiche.

Spam Actions = store forward guardia@mio-server.mio-domino.local attachment

in questo parametro vengono specificate le azioni da intraprendere per ogni messaggio considerato come spam “probabile”, ovvero tutti quei messaggi che ottengono un punteggio compreso tra i valori indicati nei parametri “Required SpamAssassin Score” e “High SpamAssassin Score ”.

Nell’esempio sopra indicato l’e-mail viene sempre inoltrata come allegato ad un indirizzo e-mail specifico. Questo prevede che una persona verifichi costantemente questo account per verificare che non sia un falso positivo. Inoltre prevede anche la creazione di un account dedicato a ricevere tutti lo spam probabile eseguendo i seguenti comandi:

sudo useradd -m -s /bin/false guardia

sudo passwd guardia

per indicare la password

Ovviamente è anche possibile far eseguire altre azioni tra cui la cancellazione del messaggio (sconsigliata per uno spam probabile) o l’inoltro del messaggio al reale destinatario modificando alcuni header del messaggio affinchè il client dell’utente possa riconoscerlo ed evidenziarlo come probabile SPAM.

High Scoring Spam Actions = delete

stesso discorso del parametro “Spam Actions” ma riferito ad e-mail considerate spam sicuro, ovvero e-mail che hanno ottenuto un punteggio uguale o superiore a quello indicato nel parametro High SpamAssassin Score .

In questo caso il messaggio viene cancellato definitivamente senza possibilità di recupero.

Log Spam = yes

indica se inserire nel log anche i messaggi considerati spam. Il default è “NO” ma personalmente preferisco loggarli perchè aiuta in caso di problemi.

File /etc/MailScanner/rules/spam.blacklist.rules

Questo file, a cui si fa riferimento nel parametro “Is Definitely Spam” del file di configurazione principale Mailscanner.cf, va creato inserendo l’elenco dei mittenti da considerare sempre come spammer (black list).

Le e-mail ricevute da questi mittenti saltano tutti i controlli anti-spam standard perchè vengono considerate immediatamente come spam sicuro o probabile in base al valore attribuito al parametro Definite Spam Is High Scoring: yes o no.

Ad esse vengono applicate le azioni definite nel parametro “High Scoring Spam Actions“ se considerate spam sicuro o nel parametro “Spam Actions“ se considerate spam probabile.

I mittenti possono essere inseriti come indirizzo e-mail, dominio mittente o anche come indirizzo IP. Esempio:

From:		130.246.xxx.xxx			yes
From:		ginetto@dominio-cattivo.com     yes
From:		*@dominio-spammer.com    yes

File /etc/MailScanner/rules/spam.whitelist.rules

Questo file, a cui si fa riferimento nel parametro “Is Definitely Not Spam” del file di configurazione principale Mailscanner.cf, va creato inserendo l’elenco dei mittenti da considerare sempre come affidabili e sicuri (white list).

Le e-mail ricevute da questi mittenti saltano tutti i controlli anti-spam standard perchè vengono considerate immediatamente come affidabili e quindi inoltrate ai destinatari.

ATTENZIONE: per motivi di sicurezza questo parametro non influisce sul controllo anti-virus che viene eseguito anche alle e-mail provenienti da mittenti presenti nella white-list.

Anche in questo caso i mittenti possono essere inseriti come indirizzo e-mail, dominio mittente o anche come indirizzo IP. Esempio:

From:          	127.0.0.1        			yes
From:		192.168.xxx.				yes	# la mia LAN
From:          	ginetto@dominio-buono.com   	yes
From:           	*@dominio-buonissimo.it           	yes

File /etc/MailScanner/spam.assassin.prefs.conf

Questo è il file con le preferenze di utilizzo di spamassassin da parte di Mailscanner. In questo file è possibile modificare alcuni comportamenti e/o aggiungere nuove regole per riconoscere lo spam.

Di seguito alcuni siggerimenti o esempi:

bayes_ignore_header unconfigured-debian-site-MailScanner
bayes_ignore_header unconfigured-debian-site-MailScanner-SpamCheck
bayes_ignore_header unconfigured-debian-site-MailScanner-SpamScore
bayes_ignore_header unconfigured-debian-site-MailScanner-Information

sostituire la parte evidenziata con quanto indicato nel parametro %org-name% del file di configurazione Mailscanner.conf. Questo fa si che i filtri bayesiani ignorino gli header delle e-mail sopra indicati.

Spamassassin effettua controlli su black-list internazionali (RBL checks). Questi controlli sono abilitati di default ma impegnano CPU e banda quindi è possibile disabilitarli togliendo il commento (#) al parametro skip_rbl_checks 1.

Personalmente preferisco mantenere questo controllo e consiglio anche di abilitare l’opzione

score RCVD_IN_BL_SPAMCOP_NET    4

che assegna il punteggio 4 alle e-mail ricevute da mittenti presenti nelle black-list gratuite di spamcop.net. Tale punteggio verrà sommato ad eventuali altri andando a formare il punteggio globale assegnato alla mail e poi confrontato con i valori indicati in Mailscanner.conf per determinare se l’e-mail è affidabile o spam (probabile o sicuro).

E’ possibile anche modificare il punteggio assegnato di default di una certa caratteristica semplicemente indicando “score <caratteristica> <nuovo-punteggio>, esempio:

score FORGED_YAHOO_RCVD 1.0

Infine è possibile aggiungere nuove regole di valutazione della mail basate sull’analisi del contenuto degli header (soggetto, mittente, …) o del corpo della mail. Ogni nuova regola deve specificare quale tipo di contenuto deve essere analizzato, cosa cercare nel contenuto e possibilmente una descrizione dell’obbiettivo della regola. Di seguito alcuni esempi:

body OROLOGI /(?:Rolex|Cartier|gioielli senza fine|Quality watches|holiday gift/gioielli.*orologi|vendita.*orologi|commercio.*orologi|\bJewe[a-zA-Z]+ry.*\b|luxury watch)/i
score OROLOGI 4.0
describe OROLOGI Proposte di vendita di orologi di marca (Rolex, ...)

in questa regola, chiamata “OROLOGI” viene analizzato il contenuto del corpo dell’e-mail (body) cercando la presenza di almeno uno dei contenuti elencati tra parentesi.
In caso di esito positivo gli viene assegnato il punteggio 4.

Notare ogni elemento dell’elenco è separato da uno slash (/) e può avere le seguenti caratteristiche:

  • essere una parola o una frase ben precisa
  • essere una porzione di parola o frase con una parte variabile utilizzando il carattere jolly “.*”. Nell’esempio, indicando “commercio.*orologi”, risulteranno positive tutte le e-mail che contengono frasi tipo: “… commercio di orologi …” oppure “… commercio di preziosi orologi …” e via dicendo.
  • utilizzare espressioni regolari

Infine conviene terminare l’elenco con l’opzione “/i” per indicare che il controllo NON deve essere case sensitive, ovvero ignorare differenze tra MAIUSCOLO e minuscolo.

header SUBJ_OROLOGI Subject =~ /(?:Rolex|Cartier|orologi.*gioielli|\bJewe[a-zA-Z]+ry.*\b|luxury watch/i
score SUBJ_OROLOGI 3.0
describe SUBJ_OROLOGI Proposte di vendita di orologi di marca (Rolex, ...)

questa regola è simile alla precedente ma agisce sull’header Subject, ovvero sull’oggetto dell’e-mail.

header FROM_SPAMMER From =~ /(?:\bcasino\b|Compra Ora|Orologi|\bExclusive Watch\b|\bFree money\b)/i
score FROM_SPAMMER 6.0
describe FROM_SPAMMER Mittente indesiderato (probabile Spammer)

Infine questa regola esamina l’header From, ovvero il mittente.

Squirrelmail (webmail)

Per offrire il servizio di webmail con Squirrelmail è necessario modificare uno dei file di configurazione del web server Apache (/etc/apache2/sites-enabled/000-default) indicando la giusta Document Root:

Modificare le seguenti righe:

ServerAdmin webmaster@miodominio.com
ServerName mail.miodominio.com
DocumentRoot /usr/share/squirrelmail

Attivazione modifiche

Per rendere effettive le modifiche alla configurazione vanno riavviati tutti i servizi interessati con i seguenti comandi:

sudo /etc/init.d/postfix restart
sudo /etc/init.d/dovecot restart
sudo /etc/init.d/mailscanner restart
sudo /etc/init.d/apache2 restart

A questo punto bisogna creare gli account e-mail da gestire sul server.

Mail Server con Ubuntu, Postfix, Dovecot e Mailscanner – parte 3

Terminata la configurazione di tutti i servizi bisogna finalmente creare e configurate tutti gli account utente ed i loro eventuali alias.

Creazione Utenti

Creare tutti gli account utente con il seguente comando:

sudo useradd -m -s /bin/false <utente>

L’opzione -m indica di creare automaticamente la home directory (/home/utente).

L’opzione -s /bin/false indica che l’utente NON può accedere alla shell di sistema e quindi ne aumenta la sicurezza (il default è /bin/bash). E’ importante assegnare agli utenti /bin/false perchè chiunque venisse in possesso di quelle credenziali non può “loggarsi” e quindi accedere al sistema.

ATTENZIONE: Se il server offrisse anche il servizio FTP e qualche utente avesse la necessità di disporre anche di tale servizio oltre a quello della posta, allora conviene utilizzare /sbin/nologin. Cercare di non lasciar mai /bin/bash perchè permette l’accesso completo.

 

Per ogni account va specificata una password con il comando:

passwd <nome-utente>

Abbinamento utenti e indirizzi virtuali e alias

File /etc/postfix/virtual

Un utente può essere abbinato a più indirizzi e-mail di uno o più domini gestiti dal server (tra quelli specificati in virtual_alias_domains del file main.cf di Postfix).

L’abbinamento tra indirizzi e-mail e l’utente va fatto nel file /etc/postfix/virtual (specificato in virtual_alias_maps del file main.cf di Postfix).

Esempio:

ginetto.cognome@dominio1.com    ginetto

utente1@dominio1.com   utente1
amministrazione@dominio1.com   utente1

utente2@dominio2.it   utente2
amministrazione@dominio2.it   utente2

export@dominio1.com   utente3
sales@dominio1.com   utente3

export@dominio2.it   utente4
sales@dominio2.it   utente4

.......

Ogni volta che questo file viene modificato bisogna aggiornare il file virtual.db con il comando:

sudo postmap /etc/postfix/virtual

File /etc/postfix/sender_canonical

Per fare in modo che quando “utente2” invia un’e-mail da webmail o dal server senza utilizzare un client specifico NON esca con utente2@dominio.local bensì, ad esempio, con amministrazione@dominio2.it è necessario editare il file /etc/postfix/sender_canonical indicando per ogni utente l’indirizzo e-mail di default con cui esce.

Esempio:

utente2		amministrazione@dominio2.it

utente3		sales@dominio1.com

.......

Ogni volta che questo file viene modificato bisogna aggiornare il file sender_canonical.db con il comando:

sudo postmap /etc/postfix/sender_canonical

Per finire, qualche approfondimento su alcuni concetti o problematiche che si possono incontrare.

Mail Server con Ubuntu, Postfix, Dovecot e Mailscanner – parte 4

Per concludere, conviene dedicare un piccolo spazio a descrivere eventuali problematiche che si possono incontrare e ad approfondire alcuni concetti

Possibili problematiche o anomalie

Apache e Squirrelmail

Se riavviando apache viene dato il messaggio di warning

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

 

modificare il file /etc/apache2/apache2.conf

aggiungendo in fondo la seguente riga:

ServerName localhost

quindi riavviare il servizio:

sudo /etc/init.d/apache2 restart

Mailscanner

Se nel log (/var/log/mail.info) si nota che per ogni e-mail da sempre la seguente segnalazione:

File checker failed with real error: Insecure dependency in exec while running with -T switch at /usr/share/MailScanner//MailScanner/SweepOther.pm line 374.

bisogna avviare mailscanner con utente “postfix”, quindi va modificato il file /etc/init.d/mailscanner nel seguente modo:

sostituire la riga:

start-stop-daemon --start --quiet --nicelevel $run_nice --exec $DAEMON --name $NAME -- $DAEMON_ARGS \

con:

start-stop-daemon --start --quiet --nicelevel $run_nice --chuid postfix --exec $DAEMON --name $NAME -- $DAEMON_ARGS \

Inoltre conviene aggiungere l’utente clamav al gruppo di postfix con il comando:

sudo adduser clamav postfix

quindi riavviare mailscanner:

sudo /etc/init.d/mailscanner restart

Approfondimenti

DNS

Per rendere pubblico il server è necessario avere un IP pubblico/statico a cui abbinarlo, quindi vanno fatte le seguenti modifiche ai DNS:

  • record MX: sul DNS di chi ha in gestione i domini gestiti dal mail server (paramentro virtual_alias_domains del file di configurazione di postfix main.cf) bisogna configurare il record MX per creare l’associazione tra IP pubblico e nome del mail server (esempio: mail.miodominio.com)
  • Record PTR: sul DNS dell’ISP che fornisce l’IP pubblico vanno configurate le stesse informazioni per il record PTR. A differenza del record MX, questo non è indispensabile per il funzionamento del server a livello pubblico ma è fortemente consigliato perchè serve a rispondere correttamente alle richieste di Reverse DNS fatte da molti SMTP server per capire se l’host che gli sta inviando la posta è veramente quello giusto. Il rischio è essere considerati spammer.

File di Log

I principali file di log si trovano in /var/log/ e si possono visualizzare con il comando “less” oppure in tempo reale col comando “tail”. Esempio:

tail -f /var/log/syslog

Sistema

syslog: in esso viene registrato anche il traffico SMTP già registrato in mail.info

SMTP

mail.warn, mail.err e mail.info

POP3

dovecot.log, dovecot-info.log

ClamAV (anti-Virus)

Sono in /var/log/clamav/.

  • clamav.log
  • freshclam.log

Comandi utili

mailq

visualizza la coda di e-mail in attesa di essere inoltrate ai rispettivi destinatari.

Per provare a forzare la riconsegna dei messaggi in coda utilizzare l’opzione “-q”:

sudo mailq -q

postsuper

Se per qualche motivo si ha bisogno di svuotare la coda da tutti messaggi in uscita basta eseguire il comando

sudo postsuper -d ALL

se, invece, si vuole cancellare una singola mail in coda:

sudo postsuper -t <ID messaggio>

esempio:

sudo postsuper -d E0FE7181D9F

dove l’ID-messaggio lo si trova con il comando mailq

userdel

Per eliminare un account di posta è sufficiente eliminare l’utente con il seguente comando:

userdel -r utente

l’opzione “-r” fa in modo di eliminare completamente anche l’home directory dell’utente.

 Articolo tratto dal sito http://www.sefi.it/linux/mail-server-ubuntu-postfix-dovecot-mailscanner-parte-1

Comments are closed.

[an error occurred while processing this directive]