A proposito dell'autore

Ciao a tutti, sono Alessandro, sono nato a Palermo il 24/01/1983 e vivo a qualche chilometro dalla città. Da anni coltivo la passione per i computer e tutto quello che ci sta attorno, con un occhio di riguardo per il mondo delle reti. Nel 2000 mi avvicino al mondo di Linux e ne resto impressionato da ciò che consente di fare, nonchè alla filosofia dell’opensource. Nel Aprile 2005 ho conseguito la certificazione Cisco CCNA. Da Novembre 2006 sono membro del CUG. Ho completato il corso HP IT Essential I e II e Cisco Network Security. Ho svolto uno stage presso Jump2Future dove mi sono occupato di redigere una ralazione per la realizzazione di un cluster basato su RedHat GFS (Global File System). Lavoro per l’IBIM-CNR di Palermo dal 2002 come tecnico informatico e gestione rete. Sto cominciando ad acquisire conoscenze nel campo del VoIP con software quali Trixbox e Elastix, realizzazione e uso di macchine virtuali basate su VMWare.

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).

  • Marco C.

    Questo potrebbe essere un eccellente tutorial per una prima installazione, ma mi pare che in questo riquadro:
    —————————————————
    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
    —————————————————

    prima della riga che ho indicata con: "<<<<<<<<<<<<<<<<", manchi qualcosa…

    Inoltre, le patch applicate secondo le istruzioni dei due riquadri precedenti, hanno inviato errori.

    Perlomeno, nel mio caso è andata così (anche al secondo tentativo, dopo aver rimosso tutto e ripreso il tutorial daccapo).

    Sono owner di un VPS (Debian Squeeze), al quale accedo come root via ssh (Putty).

    Sbaglio io qualcosa?

    Gradito sapere.

    Complimenti in ogni caso per lo sforzo, e grazie sin d'ora per la risposta.

    Marco

  • Alessandro Pensato

    Ciao Marco,
    non so se hai fatto caso che all’inizio ho specificato che hardware e software ho utilizzato per la prova (Slackware 9.1), penso che i problemi da te incontrati siano legati alla versione di qmail (se ne hai usata una più recente) e/o di librerie e sistema operativo. Al momento in cui ho redatto il tutorial era tutto funzionante. Qualche tempo fà ho cercato di mettere su un server mail sia riprendendo quanto avevo scritto sia leggendo in rete di tutto, il risultato è che non ci sono mai riuscito pur facendo attenzione alle versioni dei vari componenti ed al sistema operativo, Dopo decine di prove, c’ho rinunciato e mi sono buttato su Zimbra Community Edition.

Close
Entra in contatto con altri professionisti ICT, seguici su Facebook e Twitter: