Server mail: Postfix Amavisd-new Dovecot e MySql: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
nessun oggetto della modifica
Nessun oggetto della modifica
Nessun oggetto della modifica
(26 versioni intermedie di 4 utenti non mostrate)
Riga 1: Riga 1:
{{Guida da adottare|[[Utente:Carlo.martini|Carlo.martini]]}}
==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
* filtraggio delle email
* servizio IMAP per la lettura 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)
* 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 9: Riga 10:


==Requisiti iniziali ==
==Requisiti iniziali ==
La macchina deve esser stata preparata per funzionare come server mail base secondo questa guida [[http://guide.debianizzati.org/index.php/Server_mail_base:_Postfix_Dovecot_e_MySql]]
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 ]]
 
E' stato scelto di utilizzare Amavisd-new come mail scanner, ma ci sono molte alternative, tra le quali ho scritto un'alktra guida per utilizzare MailScanner [[http://guide.debianizzati.org/index.php?title=Server_mail:_Postfix_MailScanner_Dovecot_e_MySql]]


== Installazione amavisd-new ==
== Installazione amavisd-new ==
Installare amavisd-new con tutti i pacchetti specificati dando il comando:
Dopo aver seguito tutti i passi della guida base [[Server_mail_base:_Postfix_Dovecot_e_MySql]] si può procedere con l'installazione di amavisd-new e gli altri pacchetti per il controllo (antispam, antivirus) delle email. Ecco il comando cumulativo per installarli nella nostra Debian:
   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 ==
Configuro l'hostname:
Si proceda con la configurazione del proprio hostname, modificando il file (Note: nella guida farò sempre riferimento all'editor "vi", ma ognuno è libero di utilizzare quello che preferisce):


   vi /etc/amavis/conf.d/05-node_id
   # vi /etc/amavis/conf.d/05-node_id


Scrivendo il proprio FQDN, ad esempio:
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";


== Collegare Amavis a Postfix ==
== Collegare Amavis a Postfix ==


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 38: Riga 35:


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 46: Riga 43:
     -o disable_dns_lookups=yes
     -o disable_dns_lookups=yes
     -o max_use=20
     -o max_use=20
 
 
   127.0.0.1:10025 inet n    -      n      -      -    smtpd
   127.0.0.1:10025 inet n    -      n      -      -    smtpd
     -o content_filter=
     -o content_filter=
Riga 67: Riga 64:




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.
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 110: Riga 107:


Creare gli utenti preposti allo smistamento delle email D_DISCARD:
Creare gli utenti preposti allo smistamento delle email D_DISCARD:
Modificare il file /etc/aliases commentare le righe presenti e scrivere:
  #Reindirizzare queste email a postmaster
  root:          postmaster
  amavis:        postmaster
  clamav:        postmaster
 
  #MMM virtuale users for special accounts
  postmaster:    postmaster@miodominio.it
Far ricaricare i nuovi virtual user a Postfix con il comando:
  postalias /etc/aliases


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


Inseriamo nella tabella users gli indirizzi email usati dal sistema (facendo attenzione di attivare di specificare il tipo email 'SYSTEM'):
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');




Riavviare amavis con il seguente comando:
Infine, riavviare amavis con il seguente comando:
   service amavis restart
   # service amavis restart




Riga 145: Riga 129:
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
Creare una tabella per gestire la white and blacklist (wb: “W” white HAM; “B” black SPAM ):
 
   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 156: Riga 141:
   );
   );


Creare la tabella contenente la policy di amavis:
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 182: Riga 167:
   );
   );


Precaricare la policy da utilizzare:
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 207: Riga 192:


== 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 229: Riga 215:


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 235: Riga 221:


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 253: Riga 239:
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 servizio modificando il 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:
   # Change to one to enable spamd
   # Change to one to enable spamd
   ENABLED=0
   ENABLED=0


E abilitare il controllo dello spam attraverso amavis verificando che le istruzioni sono 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


come segue:
ma siano così riportate:
   #
   #
   # Default SPAM checking mode
   # Default SPAM checking mode
Riga 276: Riga 262:
=== 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 spam virus
   # 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 301: Riga 285:
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 310: Riga 294:


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. Verificare i log di mail.
Se tutto funziona correttamente l'email verrà intercettata da amavis e reindirizzata alla destinazione di spam.  
Verificare i log di mail.




== Conclusioni ==
A questo punto tutto funziona bene, ma probabilmente avrete la necessità di usare uno strumento per modificare comodamente i dati scritti nel database. Phpmyadmin, non è propriamente comodo, so che esiste un modulo webmin, ma non l'ho verificato perché ho preferito realizzarmi una semplice interfaccia in PHP per assolvere tale compito.




== Implementazioni ==


Aggiunta di un collaborative spam filter: '''Pyzor''' - fai riferimento alla guida [[Pyzor]]


Aggiunta di un collaborative spam filter: '''Razor''' - fai riferimento alla guida [[Razor]]


----
----


''Documentazione testata su Debian Squeeze 64 bit''


{{Autori
|Autore = [[Utente:More|More+]] 23:37, 13 mag 2011 (CEST)
}}


TODO: Sorry - documento in corso di stesura!!!!!!!!!!!!!
[[Categoria:Mail server]]
 
 
----
 
 
''Documentazione testata su Debian Squeeze 64 bit''
 
Autore [[Utente:More|More+]]
3

contributi

Menu di navigazione