63
contributi
(aggiunto template autori) |
m (Aggiornamento stile e qualche fix minore) |
||
Riga 2: | Riga 2: | ||
==Introduzione== | ==Introduzione== | ||
Questa guida si prefissa di creare un server mail con le seguenti peculiarità: | Questa guida si prefissa di creare un server mail con le seguenti peculiarità: | ||
* filtraggio delle email | |||
* servizio IMAP per la lettura delle email | |||
* configurazione dinamica di utenti, forward, spam-level (oltre a vari parametri di filtraggio) e whitelist/blacklist tramite immagazzinamento dati su un Database (mySql) | |||
Se soltanto una di queste peculiarità differisce dalle tue necessità, ti consiglio di valutare e leggere altre documentazioni complete e pensate per altri scopi, in modo da non trovarti servizi e pacchetti inutili e problemi di configurazione nel caso in cui non conoscessi bene i software in uso. | Se soltanto una di queste peculiarità differisce dalle tue necessità, ti consiglio di valutare e leggere altre documentazioni complete e pensate per altri scopi, in modo da non trovarti servizi e pacchetti inutili e problemi di configurazione nel caso in cui non conoscessi bene i software in uso. | ||
Riga 12: | Riga 12: | ||
La macchina deve esser stata preparata per funzionare come server mail base secondo questa guida: [[Server_mail_base:_Postfix_Dovecot_e_MySql| Server mail base ]] | La macchina deve esser stata preparata per funzionare come server mail base secondo questa guida: [[Server_mail_base:_Postfix_Dovecot_e_MySql| Server mail base ]] | ||
In questa guida è stato scelto di utilizzare Amavisd-new come mail scanner, che in accoppiata a Postfix è la soluzione che prediligo, ma ci sono molte alternative, tra le quali ho scritto un'altra guida | In questa implementazione della guida base è stato scelto di utilizzare Amavisd-new come mail scanner, che in accoppiata a Postfix è la soluzione che sui sistemi Debian personalmente prediligo, ma ci sono molte altre alternative, tra le quali ho scritto un'altra implementazione della guida base che utilizza invece MailScanner: [[Server_mail:_Postfix_MailScanner_Dovecot_e_MySql]] | ||
{{ | {{Warningbox | Essendo questa un'implementazione della guida [[Server_mail:_Postfix_MailScanner_Dovecot_e_MySql]] dovrete prestate molta attenzione alle password, user, indirizzi personali, ecc.. che imposterete perché dovranno trovare relativa corrispondenza con quelle che avrete inserito seguendo la guida base!!!}} | ||
== Installazione amavisd-new == | == Installazione amavisd-new == | ||
Installare amavisd-new | Installare amavisd-new con tutti i pacchetti specificati dando il comando: | ||
aptitude install amavisd-new spamassassin clamav-daemon clamav arj zip p7zip unzip zoo unrar-free cabextract nomarch lzop rpm pax tnef ripole lha | # aptitude install amavisd-new spamassassin clamav-daemon clamav arj zip p7zip unzip zoo unrar-free cabextract nomarch lzop rpm pax tnef ripole lha | ||
== Configurazione == | == Configurazione == | ||
Si proceda con la configuro del proprio hostname, modificando il file (note: nella guida farò sempre riferimento all'editor "vi", ma ognuno è libero di uilizzare quello che preferisce): | |||
vi /etc/amavis/conf.d/05-node_id | # vi /etc/amavis/conf.d/05-node_id | ||
All'interno del file aperto, scrivere il proprio FQDN nel parametro "$myhostname", ad esempio: | |||
# Qualified Domain Name (FQDN) and remove the # at the beginning of the line. | # Qualified Domain Name (FQDN) and remove the # at the beginning of the line. | ||
$myhostname = "mail.miazienda.it"; | $myhostname = "mail.miazienda.it"; | ||
Riga 35: | Riga 35: | ||
Dopo l'installazione dobbiamo dire a Postfix di far processare le mail dal mail scanner (Amavis). | Dopo l'installazione dobbiamo dire a Postfix di far processare le mail dal mail scanner (Amavis). | ||
vi /etc/postfix/main.cf | # vi /etc/postfix/main.cf | ||
aggiungere in fondo il seguente testo: | aggiungere in fondo il seguente testo: | ||
Riga 42: | Riga 42: | ||
Inoltre è necessario modificare anche il seguente file di configurazione: | Inoltre è necessario modificare anche il seguente file di configurazione: | ||
vi /etc/postfix/master.cf | # vi /etc/postfix/master.cf | ||
aggiungere in fondo il seguente testo: | aggiungere in fondo il seguente testo: | ||
Riga 71: | Riga 71: | ||
Nelle impostazioni qui sopra il numero 2 che ho evidenziato rappresenta il numero dei processi figli che vogliamo avere; alzare il valore se si dovesse avere un alto traffico di email. | |||
Configurare (modificare e/o inserire) i seguenti parametri nel file | Configurare (modificare e/o inserire) i seguenti parametri nel file | ||
vi /etc/amavis/conf.d/20-debian_defaults | # vi /etc/amavis/conf.d/20-debian_defaults | ||
come segue: | come segue: | ||
Riga 116: | Riga 116: | ||
Entrare nella shell di mysql : | Entrare nella shell di mysql : | ||
mysql --user=root --password=mettere_password | # mysql --user=root --password=mettere_password | ||
selezionare il database: | All'interno della shell di mySQL selezionare il database che abbiamo destinato a questo compito: | ||
use mailserver | #''mysql>'' use mailserver | ||
E poi eseguiamo il comando SQL per inserire nella tabella "users" gli indirizzi email usati dal sistema (facendo attenzione di attivare di specificare il tipo email 'SYSTEM') | |||
mysql> INSERT INTO users VALUES('spam@miodominio.it',md5('password'),'ENABLE',NULL,NULL,'SYSTEM'), ('virus@miodominio.it',md5('password'),'ENABLE',NULL,NULL,'SYSTEM'), ('postmaster@miodominio.it',md5('password'),'ENABLE',NULL,NULL,'SYSTEM'); | [Note: alla voce "password" inserite quelle che userete per accedere con il vostro client email]: | ||
#''mysql>'' INSERT INTO users VALUES('spam@miodominio.it',md5('password'),'ENABLE',NULL,NULL,'SYSTEM'), ('virus@miodominio.it',md5('password'),'ENABLE',NULL,NULL,'SYSTEM'), ('postmaster@miodominio.it',md5('password'),'ENABLE',NULL,NULL,'SYSTEM'); | |||
Infine, riavviare amavis con il seguente comando: | |||
service amavis restart | # service amavis restart | ||
Riga 135: | Riga 136: | ||
Innanzitutto si crea una table adatta a tale compito: | Innanzitutto si crea una table adatta a tale compito: | ||
Entrare nella shell di mysql : | Entrare nella shell di mysql : | ||
mysql --user=root --password=mettere_password | # mysql --user=root --password=mettere_password | ||
selezionare il database: | selezionare il database: | ||
use mailserver | #''mysql>'' use mailserver | ||
mysql> CREATE TABLE wblist ( | E poi eseguiamo il comando SQL per creare una tabella per gestire la white and blacklist (wb: “W” white HAM; “B” black SPAM ): | ||
#''mysql>'' CREATE TABLE wblist ( | |||
email varchar(255) NOT NULL, | email varchar(255) NOT NULL, | ||
wb char(1) NOT NULL DEFAULT 'w', -- W/B (White=HAM, Black=SPAM) | wb char(1) NOT NULL DEFAULT 'w', -- W/B (White=HAM, Black=SPAM) | ||
Riga 146: | Riga 148: | ||
); | ); | ||
Ed eseguiamo anche questo comando SQL per creare la tabella contenente la policy di amavis: | |||
mysql> CREATE TABLE policy ( | #''mysql>'' CREATE TABLE policy ( | ||
id int unsigned NOT NULL auto_increment, | id int unsigned NOT NULL auto_increment, | ||
policy_name varchar(32), -- nome.Non usato da amavisd-new | policy_name varchar(32), -- nome.Non usato da amavisd-new | ||
Riga 172: | Riga 174: | ||
); | ); | ||
Eseguire quest'altra istruzione sQL per precaricare la policy da utilizzare: | |||
INSERT INTO policy | #''mysql>'' INSERT INTO policy | ||
SET | SET | ||
id =1, | id =1, | ||
Riga 197: | Riga 199: | ||
== Impostare amavis per accedere al database == | == Impostare amavis per accedere al database == | ||
Inserire a inizio file i seguenti parametri nel file /etc/amavis/conf.d/20-debian_defaults come segue: | Inserire, a inizio file, i seguenti parametri nel file /etc/amavis/conf.d/20-debian_defaults come segue | ||
(Note: l'utente "postfix" e relativa password specificati in queste righe sono quelle relative all'utente virtuale che abbiamo creato precedentemente seguendo la guida base [[Server_mail_base:_Postfix_Dovecot_e_MySql]] ): | |||
#connessione al database | #connessione al database | ||
Riga 219: | Riga 222: | ||
Associare al gruppo amavis l'utente clamav, con il comando: | Associare al gruppo amavis l'utente clamav, con il comando: | ||
gpasswd -a clamav amavis | # gpasswd -a clamav amavis | ||
Riga 225: | Riga 228: | ||
Abilitare il controllo dei virus attraverso amavis verificando nel file | Abilitare il controllo dei virus attraverso amavis verificando nel file | ||
vi /etc/amavis/conf.d/15-content_filter_mode | # vi /etc/amavis/conf.d/15-content_filter_mode | ||
se sono presenti dei commenti sulle righe del comando dell'antivirus; eventualmente rimuoverli come alle righe qui sotto: | se sono presenti dei commenti sulle righe del comando dell'antivirus; eventualmente rimuoverli come alle righe qui sotto: | ||
Riga 243: | Riga 246: | ||
Successivamente creare la cartella specificata /etc/spamassassin/bayes con i permessi | Successivamente creare la cartella specificata /etc/spamassassin/bayes con i permessi | ||
mkdir /etc/spamassassin/bayes | # mkdir /etc/spamassassin/bayes | ||
chmod 777 /etc/spamassassin/bayes | # chmod 777 /etc/spamassassin/bayes | ||
Disabilitare il demone spamd, in quanto è preferibile interfacciarsi tramite le API di Amavis, impotando il valore del parametro a zero nel file /etc/default/spamassassin: | Disabilitare il demone spamd, in quanto è preferibile interfacciarsi tramite le API di Amavis, impotando il valore del parametro a zero nel file /etc/default/spamassassin: | ||
Riga 251: | Riga 254: | ||
Infine abilitare il controllo dello spam attraverso le API di Amavis verificando che le seguenti istruzioni NON siano commentate nel file | Infine abilitare il controllo dello spam attraverso le API di Amavis verificando che le seguenti istruzioni NON siano commentate nel file | ||
vi /etc/amavis/conf.d/15-content_filter_mode | # vi /etc/amavis/conf.d/15-content_filter_mode | ||
ma siano così riportate: | ma siano così riportate: | ||
Riga 266: | Riga 269: | ||
=== Verificare spamassassin === | === Verificare spamassassin === | ||
Controllare se ci sono problemi nella configurazione con il comando: | Controllare se ci sono problemi nella configurazione con il comando: | ||
spamassassin --lint | # spamassassin --lint | ||
Successivamente provare se Spamassassin è in gardo di intercettare lo spam con questo comando: | Successivamente provare se Spamassassin è in gardo di intercettare lo spam con questo comando: | ||
spamassassin -D < /usr/share/doc/spamassassin/examples/sample-spam.txt | # spamassassin -D < /usr/share/doc/spamassassin/examples/sample-spam.txt | ||
== Test == | == Test == | ||
Per sicurezza riavviamo i vari servizi | Per sicurezza riavviamo i vari servizi | ||
service amavis restart | # service amavis restart | ||
service postfix restart | # service postfix restart | ||
=== Ricezione email normale === | === Ricezione email normale === | ||
A questo punto verifichiamo tutti i nuovi virtual user, inviando a ciascuno un'email di prova. Si può usare il seguente comando: | A questo punto verifichiamo tutti i nuovi virtual user, inviando a ciascuno un'email di prova. Si può usare il seguente comando: | ||
mail -s 'Test di funzionamento' postmaster@miodominio.it | # mail -s 'Test di funzionamento' postmaster@miodominio.it | ||
Digitare il testo dell'email. Poi, per terminare l'email premere il tasto ENTER, poi con CRTL + d indichiamo che l'immissione di testo è terminata. | Digitare il testo dell'email. Poi, per terminare l'email premere il tasto ENTER, poi con CRTL + d indichiamo che l'immissione di testo è terminata. | ||
Riga 289: | Riga 292: | ||
Per verificare il funzionamento, Spamassassin nei suoi documenti ha un'email di test. Per procedere con il test eseguire il seguente comando: | Per verificare il funzionamento, Spamassassin nei suoi documenti ha un'email di test. Per procedere con il test eseguire il seguente comando: | ||
sendmail postmaster@miodominio.it < /usr/share/doc/spamassassin/examples/sample-spam.txt | # sendmail postmaster@miodominio.it < /usr/share/doc/spamassassin/examples/sample-spam.txt | ||
Se tutto funziona correttamente l'email verrà intercettata da amavis e reindirizzata alla destinazione di ''spam'' che abbiamo configurato. Verificare i log di mail | Se tutto funziona correttamente l'email verrà intercettata da amavis e reindirizzata alla destinazione di ''spam'' che abbiamo configurato. Verificare i log di mail | ||
Riga 298: | Riga 301: | ||
Per verificare il funzionamento è necessario scaricare il file test dell'EICAR: | Per verificare il funzionamento è necessario scaricare il file test dell'EICAR: | ||
cd /home | # cd /home | ||
wget https://secure.eicar.org/eicar.com.txt | # wget https://secure.eicar.org/eicar.com.txt | ||
Inviare per email il test EICAR: | Inviare per email il test EICAR: | ||
sendmail postmaster@miodominio.it < /home/eicar.com.txt | # sendmail postmaster@miodominio.it < /home/eicar.com.txt | ||
Se tutto funziona correttamente l'email verrà intercettata da amavis e reindirizzata alla destinazione di spam. | Se tutto funziona correttamente l'email verrà intercettata da amavis e reindirizzata alla destinazione di spam. |
contributi