Disclaimer :
Questo documento è in lavorazione e potrebbe non essere ancora considerato
ufficiale.
|
Guida al Virtual Mail Hosting System con netqmail/vpopmail
1.
Introduzione
netqmail può essere facilmente configurato per la gestione delle mail inviate da
demoni di sistema, da singoli server, da domini, o da domini virtuali. Questa
guida fornirà un aiuto per configurare netqmail per tutti questi scenari
focalizzando l'attenzione sull'accesso remoto e le comunicazioni criptate.
Specificamente, i pacchetti che questa guida prenderà in esame sono netqmail,
courier-imap, vpopmail e horde/imp. Insieme a questi, saranno installati, come
dipendenze, i pacchetti daemontools, ucspi-tcp, mysql, apache e mod_php.
Attraverso qmail, viene fornito il core delle funzioni mta, con courier-imap si
hanno i servizi necessari al recupero delle mail da remoto, attraverso vpopmail
si ha la gestione dei domini virtuali, infine, con horde/imp si ha l'accesso via
web alle mail.
Prima di emergere tutti i pacchetti, è necessario avere le seguenti variabili
USE abilitate: (se alcuni di questi pacchetti sono già stati installati,
probabilmente sarà necessario riemergeli) USE="maildir ssl imap mysql".
Inoltre, per usare horde/imp occorre abilitare USE="nls" prima di
installare mod_php.
Nota:
Questa guida comprende diversi passaggi. In ogni momento se si pensa che la
configurazione sia 'completa', non c'è bisogno di continuare.
|
Ci sono molti altri pacchetti per avere un sistema di gestione delle mail, per
cui questo è il momento di decidere in favore di netqmail. Altrimenti si rimanda
alla lettura di una bella guida incentrata
su Postfix o si può dare un'occhiata
a exim.
2.
netqmail (comunicare in locale)
Codice 2.1: Emerge netqmail |
# emerge mail-mta/netqmail
|
Importante:
Questa guida si incentra su netqmail-1.05-r4 o superiore, ma potrebbe essere
seguita anche per versioni precedenti.
|
Avvertenza:
In caso si ottenga il messaggio the virtual/mta package conflicts with
another package, è necessario rimuovere l'altro MTA presente nel sistema.
Per sapere di quale pacchetto si tratta, eseguire emerge netqmail -p.
|
Insieme a netqmail vengono installati anche i pacchetti ucspi-tcp e
daemontools. Si possono leggere maggiori informazioni su ucspi-tcp e daemontools. Basilarmente,
daemontools è responsabile della gestione di netqmail come servizio mentre
ucspi-tcp è responsabile della gestione delle connessioni TCP in ingresso verso
i servizi di netqmail.
E' necessario eseguire alcune configurazioni post-installazione.
Codice 2.2: Configurazione per netqmail |
# nano /var/qmail/control/servercert.cnf
# emerge --config netqmail
|
Il progetto netqmail si focalizza completamente sulla sicurezza. A questo fine,
nessuna mail sarà inviata all'utente 'root'. Si rende così necessario
selezionare un utente per ricevere le mail che altrimenti sarebbero destinate a
'root'. In questa guida faremo riferimento a tale utente col nome di 'vapier'.
Codice 2.3: Configurazione di un utente non-root |
# cd /var/qmail/alias
# echo vapier > .qmail-root
# echo vapier > .qmail-postmaster
# echo vapier > .qmail-mailer-daemon
|
Avvio dei servizi di consegna di netqmail.
Codice 2.4: Avvio dei servizi di consegna di netqmail |
# rc-update add svscan default
# /etc/init.d/svscan start
# cd /service
# ln -s /var/qmail/supervise/qmail-send qmail-send
|
Test per vedere se netqmail lavora correttamente.
Codice 2.5: Test servizio di consegna |
# ssh vapier@localhost
# maildirmake .maildir
# qmail-inject root << EOF
test root e-mail!
EOF
# qmail-inject postmaster << EOF
test postmaster e-mail!
EOF
# qmail-inject vapier << EOF
test vapier e-mail!
EOF
# mutt
|
A questo punto è pronto un sistema di gestione mail per la macchina locale e
per utenti che utilizzano tale macchina nonché per i demoni di sistema che
necessitano di inviare mail.
Avvertenza:
Se non si è ricevuta alcuna mail o se nei file di log sono presenti errori
(controllare in /var/log/qmail) che coinvolgono
'localhost.localhost', il problema coinvolge la configurazione del dominio/dns.
Il comportamento predefinito di netqmail è l'utilizzo dell'output di hostname
--fqdn. Se il comando restituisce 'localhost' controllare la correttezza di
/etc/hostname, /etc/hosts e che il dns funzioni
correttamente. Modificare i file di configurazione in
/var/qmail/control usando gli esempi che seguono.
|
Codice 2.6: Esempio dei file in /var/qmail/control/ per un dominio di secondo livello |
# hostname --fqdn
wh0rd.org
# cat me
wh0rd.org
# cat defaultdomain
wh0rd.org
# cat plusdomain
wh0rd.org
# cat locals
wh0rd.org
# cat rcpthosts
wh0rd.org
|
Codice 2.7: Esempio dei file in /var/qmail/control/ per un dominio di terzo livello |
# hostname --fqdn
mail.wh0rd.org
# cat me
mail.wh0rd.org
# cat defaultdomain
wh0rd.org
# cat plusdomain
wh0rd.org
# cat locals
mail.wh0rd.org
# cat rcpthosts
mail.wh0rd.org
|
3.
vpopmail
Codice 3.1: Emerge vpopmail |
# emerge vpopmail
|
Importante:
Questa guida si incentra su vpopmail-5.4.6 o superiore, ma potrebbe essere
seguita anche per versioni precedenti.
|
La configurazione di vpopmail è leggermente più difficile del pacchetto
precedente. Dato che l'uso di vpopmail prevede mysql, assicurarsi che il demone
di mysql sia attivo, quindi configurare il database di vpopmail. Prima di tutto,
assicurarsi di aver installato e configurato mysql. La password usata per il
database vpopmail è 'vpoppw', si raccomanda di sceglierne una differente.
Codice 3.2: Configurare vpopmail in mysql |
# rc-update add mysql default
# /etc/init.d/mysql start
# nano /etc/vpopmail.conf
# mysql -p << EOF
create database vpopmail;
use mysql;
grant select, insert, update, delete, create, drop on vpopmail.* to vpopmail@localhost identified by 'vpoppw';
flush privileges;
EOF
# chown root:vpopmail /etc/vpopmail.conf
# chmod 640 /etc/vpopmail.conf
# chown root:vpopmail /var/vpopmail/bin/vchkpw
# chmod 4711 /var/vpopmail/bin/vchkpw
|
Avvertenza:
Se si ha esperienza di problemi di permessi con mysql/vpopmail, riavviare mysql
eseguendo /etc/init.d/mysql restart.
|
A questo punto vpopmail è pronto all'uso. In questa guida viene fornito
l'hosting virtuale per il dominio 'wh0rd.org', il che significa che sarà
necessario configurare vpopmail affinché faccia da host per questo dominio. Sarà
anche creato uno user account per 'vapier'.
Codice 3.3: Aggiungere un dominio |
# source /etc/profile
# mysql -u vpopmail -p
mysql> select * from vpopmail.vlog;
# vadddomain wh0rd.org postpass
# printf "postmaster@wh0rd.org\0postpass\0blah\0" | vchkpw `which id` 3<&0
uid=89(vpopmail) gid=89(vpopmail) groups=0(root)
# vadduser vapier@wh0rd.org vappw
|
Ogni dominio creato con vpopmail possiede anche un account 'postmaster'. Nel
caso specifico è stato specificato che la password per il postmaster è
'postpass'. Prima che vpopmail possa funzionare correttamente, è necessario
riuscire a ricevere mail via courier e inviare mail via netqmail e SMTP.
4.
Courier POP/IMAP
Codice 4.1: Emerge courier-imap |
# emerge net-mail/courier-imap
|
Importante:
Eseguire emerge courier-imap dopo vpopmail. In questo modo verrà compilato anche
il modulo authvchkpw.
|
Importante:
Questa guida si incentra su net-mail/courier-imap-3.0.7 o successivi, ma
potrebbe essere seguita anche per versioni precedenti.
|
Seguono i passi per la configurazione post-installazione. Questi sono necessari
solo se si vuole una comunicazione criptata via SSL. Altrimenti si deve
rimuovere '-ssl' dagli init script degli esempi che seguono.
Codice 4.2: Configurazione per POP3/SSL |
# nano /etc/courier/authlib/authdaemonrc
# cd /etc/courier-imap
# nano pop3d.cnf
# mkpop3dcert
# rc-update add courier-pop3d-ssl default
# /etc/init.d/courier-pop3d-ssl start
|
Codice 4.3: Configurazione per IMAP/SSL |
# cd /etc/courier-imap
# nano imapd.cnf
# mkimapdcert
# rc-update add courier-imapd-ssl default
# /etc/init.d/courier-imapd-ssl start
|
A questo punto un mail client dovrebbe essere in grado di effettuare un login
sull'host in cui è in esecuzione courier e recuperare le mail per l'host
virtuale. Nel caso preso in esame, si dovrebbe essere in grado di effettuare un
login usando lo username 'vapier@wh0rd.org' e password 'vappw'.
5.
netqmail (comunicare con l'esterno)
Segue la messa in funzione dell'SMTP prevenendo la creazione di un sistema di
cui abusare per fare spamming.
Codice 5.1: Far partire il servizio netqmail SMTP |
# cd /var/qmail/control/
# nano conf-smtpd
# nano servercert.cnf
# mkservercert
# cd /service
# ln -s /var/qmail/supervise/qmail-smtpd qmail-smtpd
# /etc/init.d/svscan restart
|
Assumendo che non siano stati modificati i file di controllo di netqmail,
netqmail accetterà mail per il dominio virtuale wh0rd.org e per gli utenti della
macchina locale. Inoltre, netqmail invierà mail per chiunque le spedisca via
127.0.0.1 e per chiunque sia capace di autenticarsi via vpopmail. Durante la
configurazione di un mail client per l'invio della posta, assicurarsi di
selezionare l'opzione 'Server requires authentication'. Nel caso preso in
esempio, verrà usato l'utente 'vapier@wh0rd.org' con password 'vappw'. Infine,
assicurarsi di configurare il mail client per usare SSL/TLS per le connessioni
SMTP. netqmail non permetterà autenticazioni se la sessione non è criptata.
6.
Horde / IMP Webmail Client
Benché ci siano molti webmail client, si preferisce IMP Webmail Client che è parte dell'Horde
framework. La ragione principale risiede nel fatto che si può usare Horde
semplicemente per gestire le mail via Web, o aggiungere facilmente altri
componenti per gestire Rubriche, Calendari, Appuntamenti, ecc. Se questo non è
convincente, si possono leggere ulteriori caratteristiche da Horde.
Emergere IMP.
Codice 6.1: Emerge IMP |
# emerge horde-imp
|
Configurazione di IMP.
Codice 6.2: Configurazione per IMP |
# cd /var/www/localhost/htdocs/horde/imp/config/
# nano servers.php
$servers['imap'] = array(
'name' => 'wh0rd.org',
'server' => 'localhost',
'protocol' => 'imap/ssl/novalidate-cert',
'port' => 993,
'folders' => '',
'namespace' => '',
'namespace' => 'INBOX.',
'maildomain' => 'wh0rd.org',
'smtphost' => 'localhost',
'realm' => '',
'preferred' => ''
);
|
Al termine, far partire apache in modo da poter usare webmail.
Codice 6.3: Eseguire apache |
# nano /etc/conf.d/apache2
# rc-update add apache2 default
# /etc/init.d/apache2 start
|
Avvertenza:
Si dovrebbe forzare la connessione https per utenti di horde. Questo è un punto
importante a motivo della sicurezza.
|
Per testare la configurazione di IMP, lanciare il browser e visitare
http://localhost/horde/ (cambiare localhost con il server su cui si è
configurato IMP). Si dovrebbe essere in grado di vedere la pagina di benvenuto
di Horde con la richiesta di login. Sempre seguendo il nostro esempio, si
dovrebbe eseguire il login con 'vapier@wh0rd.org' e 'vappw' come username e
password.
La configurazione di Horde e IMP è terminata. Si dovrebbe, comunque, tornare
indietro attraverso le directory di configurazione e cambiare quello che si
ritiene opportuno.
7.
Pacchetti extra
qmailadmin
Un primo pacchetto che si suggerisce di usare è qmailadmin. E' un interfaccia
basata su web per la gestione di domini virtuali. Si installa con emerge
net-mail/qmailadmin e si usa semplicemente attraverso un browser attraverso
l'indirizzo http://localhost/cgi-bin/qmailadmin.
qmHandle
Se si hanno problemi con la coda di netqmail e si perde tempo per il debugging,
si può dare un'occhiata a qmHandle. E' un semplice programma
in perl per vedere e gestire le code dei messaggi di netqmail. Anche in questo
caso per l'installazione usare emerge net-mail/qmhandle.
Aggiunte a horde
Si raccomanda uno sguardo alle altre applicazioni Horde. Le applicazioni
complementari Turba, Kronolith, e Nag migliorano l'uso di IMP. La loro
configurazione è simile a quella per IMP, non si dovrebbero quindi trovare
eccessivi problemi. Ricordarsi di modificare registry.php nella directory config
di horde per inserire la nuova applicazione.
ucspi-tcp
netqmail utilizza ucspi-tcp per gestire le connessioni in ingresso. Se si
desidera personalizzare le regole dei filtri, i file di configurazione sono in
/etc/tcprules.d/ (vecchie versioni pongono i file in /etc). Qui si
trovano due file per ogni servizio, il file di configurazione
(es. tcp.qmail-smtp) e la versione compilata di questo file usato da ucspi-tcp
(es. tcp.qmail-smtp.cdb). Ogni volta si aggiorna il file di configurazione, si
dovrà anche provvedere alla ricompilazione della versione binaria eseguendo
tcprules tcp.qmail-smtp.cdb tcp.qmail-smtp.tmp < tcp.qmail-smtp. Ogni
volta che viene creata una connessione da netqmail, il file di regole compilate
viene riletto, non è quindi necessario far ripartire il servizio.
qmail-scanner
Se si vuole filtrare il contenuto delle mail che passano per il mail server
(contro spam e virus), si deve usare un programma di accodamento differente da
quello predefinito. Un buon programma per far questo è qmail-scanner. Installare con
emerge qmail-scanner e modificare il file
/etc/tcprules.d/tcp.qmail-smtp.
Importante:
Il processo di installazione di qmail-scanner prevede la ricerca nel sistema dei
pacchetti da usare che devono essere già presenti. E' necessario quindi
provvedere ad emergere SpamAssassin e/o Clam AntiVirus prima di emergere
qmail-scanner.
|
Codice 7.1: Modificare il queuer |
# cd /etc/tcprules.d/
# nano tcp.qmail-smtp
# tcprules tcp.qmail-smtp.cdb tcp.qmail-smtp.tmp < tcp.qmail-smtp
|
La prossima sezione prende in esame come configurare un filtro contro spam e
virus. Si possono personalizzare alcune opzioni modificando direttamente
/var/qmail/bin/qmail-scanner-queue.pl.
SpamAssassin
Uno dei filtri antispam Open Source è SpamAssassin. Installare con emerge
mail-filter/spamassassin. Il pacchetto ha sia una versione da linea di
comando che una client/server. Per server che smistano una piccola quantità di
mail, si può utilizzare la versione da linea di comando, mentre per server che
gestiscono carichi abbondanti di mail è bene usare la versione client/server.
Codice 7.2: Configurazione per SpamAssassin |
# nano /etc/mail/spamassassin/local.cf
required_hits 6
skip_rbl_checks 1
# rc-update add spamd default
# /etc/init.d/spamd start
# nano /var/qmail/bin/qmail-scanner-queue.pl
|
Importante:
Se non si aveva SpamAssassin nel sistema prima di emergere qmail-scanner, sarà
necessario riemergere qmail-scanner. In questo modo verranno aggiunti i
pacchetti aggiuntivi scoperti nel sistema.
|
A questo punto, le mail in ingresso dovrebbero essere inviate a qmail-scanner
che eseguirà SpamAssassin.
Clam AntiVirus
Come SpamAssassin, Clam AntiVirus
arriva in due versioni. Si daranno indicazioni su come configurare la versione
client/server. Installare con emerge app-antivirus/clamav.
Codice 7.3: Configurazione per Clam AntiVirus |
# nano /etc/conf.d/clamd
# nano /etc/clamav.conf
# rc-update add clamd default
# /etc/init.d/clamd start
# nano /var/qmail/bin/qmail-scanner-queue.pl
# nano /var/qmail/control/conf-common
|
Importante:
Se non si aveva Clam AntiVirus nel sistema prima di emergere qmail-scanner,
sarà necessario riemergere qmail-scanner. In questo modo verranno aggiunti
i pacchetti aggiuntivi scoperti nel sistema.
|
A questo punto, le mail in ingresso dovrebbero essere inviate a qmail-scanner
che eseguirà Clam AntiVirus.
8.
Note finali
Non ci sono note finali eccetto che se si hanno problemi seguendo questa guida
si dovrebbe contattare l' autore o inviare
una segnalazione sul sito web di Gentoo per
il tracciamento dei Bug. Se si hanno esperienze interessanti da aggiungere
a questa guida, inviarle all'autore per farle includere.
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|