qmail 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 qmail per tutti questi scenari focalizzando l'attenzione sull'accesso remoto e le comunicazioni crittate.
Specificamente, i pacchetti che questa guida prenderà in esame sono qmail, 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)
Ci sono molti altri pacchetti per avere un sistema di gestione
delle mail, per cui questo è il momento di decidere in favore di qmail.
Altrimenti si rimanda alla lettura di
# emerge qmail
Insieme a qmail vengono installati anche i pacchetti ucspi-tcp e daemontools.
Si possono leggere maggiori informazioni su
E' necessario eseguire alcune configurazioni post-installazione.
(Da personalizzare per adattarle alle informzioni personali) # nano /var/qmail/control/servercert.cnf # ebuild /var/db/pkg/mail-mta/qmail-1.03-r*/qmail-1.03-r*.ebuild config
Il progetto qmail 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'.
# cd /var/qmail/alias # echo vapier > .qmail-root # echo vapier > .qmail-postmaster # echo vapier > .qmail-mailer-daemon
Avvio dei servizi di consegna di qmail.
# 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 qmail lavora correttamente.
# 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(Ci dovrebbero essere tre email nella inbox)
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.
# hostname --fqdn wh0rd.org # cat me wh0rd.org # cat defaultdomain wh0rd.org # cat plusdomain wh0rd.org # cat locals wh0rd.org # cat rcpthosts wh0rd.org
# 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
# emerge vpopmail
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 emerso e configurato mysql. La password usata per il database vpopmail è 'vpoppw', si raccomanda di sceglierne una differente.
# rc-update add mysql defaultSe mysql è stato installato per la prima volta, assicurarsi di eseguire il comando ebuild <mysql.ebuild> config e seguire le direttive che seguono prima di far partire il server mysql. # /etc/init.d/mysql start # nano /etc/vpopmail.conf(Cambiare la password da 'secret' a 'vpoppw') # 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(I passi che seguono non sono necessari, vanno eseguiti per sicurezza) # chown root:vpopmail /etc/vpopmail.conf # chmod 640 /etc/vpopmail.conf # chown root:vpopmail /var/vpopmail/bin/vchkpw # chmod 4711 /var/vpopmail/bin/vchkpw
A questo punto vpopmail è pronto all'uso. In questa guida viene provveduto 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'.
(Necessario solo se il comando vadddomain visualizza "command not found") # source /etc/profile(Durante il debug di vpopmail, si potrebbero consultare i log) # mysql -u vpopmail -p mysql> select * from vpopmail.vlog; # vadddomain wh0rd.org postpass(Verifica se il dominio è configurato correttamente) # printf "postmaster@wh0rd.org\0postpass\0blah\0" | vchkpw `which id` 3<&0 uid=89(vpopmail) gid=89(vpopmail) groups=0(root)(Se il risultato non simile al precedente, i permessi non sono corretti) # 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 qmail e SMTP.
# emerge net-mail/courier-imap
Seguono i passi per la configurazione post-installazione. Questi sono necessari solo se si vuole una comunicazione crittata via SSL. Altrimenti si deve rimuovere '-ssl' dagli init script degli esempi che seguono.
# nano /etc/courier/authlib/authdaemonrc(Impostare la variabile authmodulelist affinché contenga "authvchkpw") # cd /etc/courier-imap # nano pop3d.cnf(Editare la sezione [ req_dn ]) # mkpop3dcert # rc-update add courier-pop3d-ssl default # /etc/init.d/courier-pop3d-ssl start
# cd /etc/courier-imap # nano imapd.cnf(Editare la sezione [ req_dn ]) # 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'.
Segue la messa in funzione dell'SMTP prevenendo la creazione di un sistema di cui abusare per fare spamming.
# cd /var/qmail/control/ # nano conf-smtpd(Scommentare la variabile SMTP-AUTH e impostare QMAIL_SMTP_CHECKPASSWORD in /var/vpopmail/bin/vchkpw) # nano servercert.cnf(Editare la sezione [ req_dn ]) # 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 qmail, qmail accetterà mail per il dominio virtuale wh0rd.org e per gli utenti della macchina locale. Inoltre, qmail 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. qmail non permetterà autenticazioni se la sessione non è crittata.
Benché ci siano molti webmail client, si preferisce
Emergere IMP.
# emerge horde-imp
Attualmente, Horde non è facile da configurare a meno che non si conosca esattamente cosa fare. Fortunatamente l'autore di questa guida conosce esattamente cosa fare e questo potrà essere di aiuto per il lettore.
# cd /var/www/localhost/htdocs/horde/config/ # for f in *.dist ; do mv ${f} ${f/.dist} ; done # nano horde.php(In 'Horde Authentication':) $conf['auth']['driver'] = 'imap'; $conf['auth']['params']['dsn'] = '{localhost:993/imap/ssl/novalidate-cert}';(In 'Horde Logging':) $conf['log']['name'] = '/var/log/apache2/horde.log';(In 'Problem Reporting':) $conf['problems']['enabled'] = true; $conf['problems']['email'] = 'webmaster@wh0rd.org'; # nano registry.php(In 'Handlers':) $this->registry['auth']['login'] = 'imp'; $this->registry['auth']['logout'] = 'imp';(In 'Application registry':) Porre l'elemento 'status' di applications['imp'] da 'inactive' a 'active' # touch /var/log/apache2/horde.log # chown apache:apache /var/log/apache2/horde.log
Configurazione di IMP.
# cd /var/www/localhost/htdocs/horde/imp/config/ # for f in *.dist ; do mv ${f} ${f/.dist} ; done # nano servers.php(Editare l'array $servers['imap']:) $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.
# nano /etc/conf.d/apache2(Scommentare APACHE2_OPTS="-D SSL -D PHP4") # rc-update add apache2 default # /etc/init.d/apache2 start
Per testare la configurazione di IMP, lanciare il browser e visitare
La configurazione di Horge e IMP è terminata. Si dovrebbe, comunque, tornare indietro attraverso le directory di configurazione e cambiare quello che si ritiene opportuno.
Un primo pacchetto che si suggerisce di usare è
Se si hanno problemi con la queue di qmail e si perde tempo per il debugging,
si può dare un'occhiata a
Si raccomanda uno sguardo alle altre applicazioni Horde.
Le applicazioni complementari
qmail utilizza ucspi-tcp per gestire le connessioni in ingresso.
Se si desidera personalizzare le regole dei filtri, i file di configurazione sono in
Se si vuole filtrare il contenuto delle mail che passano per il mail server (contro spam e virus),
si deve usare un programma di queuing differente da quello predefinito.
Un buon programma per far questo è
# cd /etc/tcprules.d/ # nano tcp.qmail-smtp(Aggiungere QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue" alla regola allow ) # 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 editando direttamente
Uno dei filtri antispam Open Source è
# nano /etc/mail/spamassassin/local.cf(Aggiungere queste opzioni minime:) 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(Assicurarsi che la variabile $spamc_binary sia definita come '/usr/bin/spamc'.) (Se fosse definita come '', guardare la nota che segue.)
A questo punto, le mail in ingresso dovrebbero essere inviate a qmail-scanner che eseguirà SpamAssassin.
Come SpamAssassin,
# nano /etc/conf.d/clamd(Definire START_CLAMD=yes) # nano /etc/clamav.conf(Definire cosa si vuole) # rc-update add clamd default # /etc/init.d/clamd start # nano /var/qmail/bin/qmail-scanner-queue.pl(Assicurarsi che la variabile $clamscan_binary sia definita come '/usr/bin/clamscan'.) (Se fosse deinita come '', guardare la nota che segue.) # nano /var/qmail/control/conf-common(Se ClamAV riporta problemi di memoria provare a cancellare il softlimit)
A questo punto, le mail in ingresso dovrebero essere inviate a qmail-scanner che eseguirà Clam AntiVirus.
Non ci sono note finali eccetto che se si hanno problemi seguendo questa guida
si dovrebbe contattare l'