Premessa
In questo documento spiegherò come realizzare un server di posta elettronica (pop3/smtp), a scopo interno corredato anche di accesso alla posta via web ma anche a tutta la gestione del server tramite script CGI, il tutto utilizzando QMail.
Risorse Hardware e Software
Per il mio scopo ho utilizzato un vecchio pc , composto da un processore Pentium 200MMX, 64MB di RAM, Hard Disk da 2GB ide, scheda di rete RTL8139C 10/100Mbit. Premesso di aver già un sistema con installato Apache per il supporto webmail e gestione del server e un server DNS per il dominio interno della LAN (per installare Apache leggere il documento a riguardo), dal lato software ho utilizzato Slackware 9.1, Daemontools, Ucspi-Tcp, QMail, Vpopmail, Autoresponder, Ezmlm, QmailAdmin, Sqwebmail.
Procuriamoci i pacchetti necessari
Per facilitarvi nell’impresa vi ho messo a disposizione il mio spazio web, da dove potere prelevare i pacchetti necessari senza andare in giro per la rete magari non trovando le versioni utilizzate in questo documento. Di seguito trovate i link per scaricare i pacchetti
http://www.webalice.it/alepensato/qmail/qmail-1.03.tar.gz
http://www.webalice.it/alepensato/qmail/autorespond-2.0.2.tar.gz
http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
http://www.webalice.it/alepensato/qmail/ucspi-tcp-0.88.tar.gz
http://www.webalice.it/alepensato/qmail/vpopmail-5.2.2.tar.gz
http://www.webalice.it/alepensato/qmail/qmailadmin-1.0.6.tar.gz
http://www.webalice.it/alepensato/qmail/ezmlm-0.53.tar.gz
http://www.webalice.it/alepensato/qmail/sqwebmail-3.6.2.tar.bz2
http://www.webalice.it/alepensato/qmail/qmail.patch
http://www.webalice.it/alepensato/qmail/qmailqueue.patch
http://www.webalice.it/alepensato/qmail/idx.shupp.patch
http://www.webalice.it/alepensato/qmail/script.tar.gz
Compilazione e installazione dei software sorgenti (come root)
Installazione del pacchetto Daemontools
Del primo pacchetto (Daemontools) che installeremo fanno parte dei demoni che regoleranno le funzioni del server vero e proprio come l’invio e l’accesso. Per prima cosa occorre creare una directory dove raccogliere i software scaricati dai links precedenti (ho usato /tar). Per Daemontools occorre creare una directory dove scompattare i sorgenti e attribuire ad essa i corretti premessi, solo dopo potremmo avviare la compilazione e l’installazione. Eseguite questi comandi passo passo:
mkdir /package chmod 1755 /package cd /package tar zxvf /tar/daemontools* cd admin/daemontools*/src patch </tar/qmail.patch cd .. package/install
Installazione del pacchetto Ucspi-Tcp
Questo pacchetto contiene i server tcpserver e tcpclient necessari per l’accesso al server email. Per prima cosa occorre scompattare i sorgenti, applicare una patch e poi proseguire con la compilazione e installazione sul sistema. Eseguite questi comandi passo passo:
cd /tar tar zxvf ucspi* cd ucspi* patch </tar/qmail.patch make && make setup check
Installazione di QMail
QMail gode di un’ottima reputazione da parte di molte persone di tutto il mondo, si propone come un ottimo sostituto del famoso Sendmail essendo più completo. Adesso procederemo con l’installazione del server vero e proprio, alla creazione degli utenti e gruppi necessari al server per le sue funzioni, quindi all’installazione degli script che ne regolano le funzioni assegnando loro i corretti permessi e successivamente passeremo alla sua prima configurazione ed ai test di corretta installazione. Eseguite questi comandi passo passo:
cd /tar tar zxvf qmail-1.03* cd qmail* patch <../qmailqueue.patch patch <../qmail. patch mkdir /var/qmail groupadd nofiles useradd -g nofiles -d /var/qmail/alias alias useradd -g nofiles -d /var/qmail qmaild useradd -g nofiles -d /var/qmail qmaill useradd -g nofiles -d /var/qmail qmailp groupadd qmail useradd -g qmail -d /var/qmail qmailq useradd -g qmail -d /var/qmail qmailr useradd -g qmail -d /var/qmail qmails groupadd vchkpw mkdir /home/vpopmail useradd -g vchkpw -d /home/vpopmail vpopmail make && make setup check cd ~alias; touch .qmail-root .qmail-postmaster .qmail-mailer-daemon chmod 644 ~alias/.qmail* cd /tar/qmail* ./config-fast dominio.local
Installazione degli script per la gestione del server
Adesso che abbiamo installato il server, ci occuperemo di impostare degli script che regolano tutte le funzioni del server (avvio, stop, invio, autentica, ecc). Per fare cià basta copiare gli script già presenti nelle corrette posizioni e dar loro i giusti permessi ed il gioco è fatto. Eseguite questi comandi passo passo:
cd /tar tar zxvf script.tar.gz cd script* cp rc /var/qmail/rc chmod 755 /var/qmail/rc mkdir /var/log/qmail echo ./Maildir/ >/var/qmail/control/defaultdelivery cp qmailctl /var/qmail/bin/qmailctl chmod 755 /var/qmail/bin/qmailctl ln -s /var/qmail/bin/qmailctl /usr/bin ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail ln -s /var/qmail/bin/sendmail /usr/lib/sendmail mkdir -p /var/qmail/supervise/qmail-send/log mkdir -p /var/qmail/supervise/qmail-smtpd/log mkdir -p /var/qmail/supervise/qmail-pop3d/log chmod +t /var/qmail/supervise/qmail-send chmod +t /var/qmail/supervise/qmail-smtpd chmod +t /var/qmail/supervise/qmail-pop3d cp send.run /var/qmail/supervise/qmail-send/run cp send.log.run /var/qmail/supervise/qmail-send/log/run cp smtpd.run /var/qmail/supervise/qmail-smtpd/run cp smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run cp pop3.run /var/qmail/supervise/qmail-pop3d/run cp pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run echo 20 > var/qmail/control/concurrencyincoming chmod 644 /var/qmail/control/concurrencyincoming chmod 755 /var/qmail/supervise/qmail-send/run chmod 755 /var/qmail/supervise/qmail-send/log/run chmod 755 /var/qmail/supervise/qmail-smtpd/run chmod 755 /var/qmail/supervise/qmail-smtpd/log/run chmod 755 /var/qmail/supervise/qmail-pop3d/run chmod 755 /var/qmail/supervise/qmail-pop3d/log/run mkdir -p /var/log/qmail/smtpd mkdir -p /var/log/qmail/pop3d chown qmaill /var/log/qmail /var/log/qmail/smtpd ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service qmailctl stat
se tutto è andato a buon fine dovremmo avere delle righe simili a queste qua sotto, in caso contrario rivediamo attentamente le righe attinenti la creazione dei link
/service/qmail-send: up (pid 1000) 2 seconds /service/qmail-send/log: up (pid 1001) 2 seconds /service/qmail-smtd: up (pid 1002) 1 seconds /service/qmail-smtd/log up (pid 1003) 1 seconds
Installazione di Vpopmail
Questo è il pacchetto software che si occupa della gestione dei domini associati agli indirizzi email. Possiede una interfaccia grafica via web che ne consente un utilizzo più semplice ed immediato, inoltre ci permette di installare sul server molteplici domini e utenti senza che essi siano creati all’interno del nostro sistema. Eseguite questi comandi passo passo:
cd /tar tar zxvf vpopmail* cd vpopmail* ./configure --enable-roaming-users=y --enable-logging=v --enable-default-domain=dominio.local make && make install echo "127.:allow,RELAYCLIENT=""' >/home/vpopmail/etc/tcp.smtp echo "192.168.0.:allow,RELAYCLIENT=""' >/home/vpopmail/etc/tcp.smtp qmailctl cdb cp ../script*/vpopmailctl /var/qmail/bin/vpopmailctl chmod 755 /var/qmail/bin/vpopmailctl ln -s /var/qmail/bin/vpopmailctl /usr/bin ln -s /var/qmail/supervise/qmail-pop3d /var/qmail/supervise/qmail-pop3ds /service mkdir /var/log/qmail/pop3ds vpopmailctl stat
Installazione di Autoresponder
Questo pacchetto si occupa di rispondere alle chiamate tcp dirette al server, quindi indispensabile per il funzionamento del server stesso. Eseguite questi comandi passo passo:
cd /tar tar zxvf autoresponder* cd autoresponder* make && make install
Installazione di Ezmlm
Questo è il software che si occupa di creare e gestire molteplici mailing list, anche se non indispensabile per il funzionamento del server, lo installeremo per avere a disposizione un servizio in più utile magari in futuro non lontano, integrandosi con QMailAdmin permette la creazione e gestione delle liste via web. Eseguite questi comandi passo passo:
cd /tar tar zxvf ezmlm* cd ezmlm* patch -p0 <../idx.shupp.patch patch <../qmail.patch make && make install
Installazione di QMailAdmin
Come si puà capire dal nome, questo è il pacchetto che si occuperà della gestione del server tramite interfaccia web senza dover entrare nei file di configurazione manualmente evitando spiacevoli errori e di impazzire per capire dove abbiamo sbagliato. Eseguite questi comandi passo passo:
cd /tar tar zxvf qmailadmin* cd qmailadmin* ./configure && make && make install-strip
Configurazione del dominio nei file di sistema del server
Adesso dobbiamo specificare nel file del server pop3 e smtp il nome del nostro dominio in modo che nelle mail risulti il nostro dominio. Con il nostro editor preferito (io uso VI) modificheremo i due file interessati:
vi /var/qmail/supervise/qmail-smtpd/run +9 vi /var/qmail/supervise/qmail-pop3d/run +8
Adesso siamo pronti per aggiungere al sistema un nuovo dominio di posta tramite Vpopmail usato da riga di comando. Eseguiamo questo comando per aggiungerlo e per settarne la password per l’amministratore (postmaster):
/home/vpopmail/bin/vadddomain dominio.local password_admin
Installazione di Sqwebmail
Un altro servizio che offriremo ai nostri utenti è quello di poter gestire la propria casella di posta via web senza dover configurare un client come Outlook o altri. Per questo scopo utilizzeremo il pacchetto Sqwebmail che oltre alla sua semplicità d’uso è anche facile da installare. Eseguite questi comandi:
cd /tar bunzip2 sqwebmail* tar xvf sqwebmail* cd sqwebmail* ./configure --withouth-authdaemon --with-authvchkpw && make && make install-strip /usr/local/share/sqwebmail/libexec/sqwebmail/sqwebmaild start
L’installazione del server e dei suoi tools è terminata, ci resta soltanto da inserire la riga seguente, /usr/local/share/sqwebmail/libexec/sqwebmail/sqwebmaild start, nel file /etc/rc.d/rc.local in modo da far partire all’avvio del sistema il demone per la webmail e di provare il tutto. Per prima cosa proveremo la gestione del server via web, quindi apriamo un qualunque browser web e puntiamo all’url http://ip_address/cgi-bin/qmailadmin, dovrebbe comparire una schermata come questa qui sotto (Figura 1) che ci consente l’accesso previa autenticazione (Figura 2). Stessa cosa dobbiamo fare per testare il funzionamento della webmail, quindi puntando all’url http://ip_address/cgi-bin/sqwebmail anche qui dovrebbe comparire una schermata simile alla precedente per la gestione delle caselle mail degli utenti (Figura 3).