|
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://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 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 # creazione della directorychmod 1755 /package # assegnazione dei permessicd /package # entra nella directory creatatar zxvf /tar/daemontools* # scompatta i file (/tar è la directory dove tengo i sources)cd admin/daemontools*/src # entra nella directory di installazionepatch </tar/qmail.patch # applica una patch di correzionecd .. # torna indietro di una directorypackage/install # avvia la compilazione ed installazione
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 è la directory dove tengo i sourcestar zxvf ucspi* # scompatta i filecd ucspi* # entra nella directory di installazionepatch </tar/qmail.patch # applica una patch di correzionemake && make setup check # avvia la compilazione ed installazione
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 # entra nella directory dei sorgentitar zxvf qmail-1.03* # scompatta i filecd qmail* # entra nella directory di installazione di QMailpatch <../qmailqueue.patch # applica una patch di correzione per l’attesa delle mailpatch <../qmail. patch # applica una patch di correzionemkdir /var/qmail # crea la directory di installazione groupadd nofiles # crea un gruppo per la gestione del serveruseradd –g nofiles –d /var/qmail/alias alias # aggiunge un utente per i serviziuseradd –g nofiles –d /var/qmail qmaild # aggiunge un utente per i serviziuseradd –g nofiles –d /var/qmail qmaill # aggiunge un utente per i serviziuseradd –g nofiles –d /var/qmail qmailp # aggiunge un utente per i servizigroupadd qmail # crea un gruppo per la gestione dei messaggiuseradd –g qmail –d /var/qmail qmailq # aggiunge un utente per i serviziuseradd –g qmail –d /var/qmail qmailr # aggiunge un utente per i serviziuseradd –g qmail –d /var/qmail qmails # aggiunge un utente per i servizigroupadd vchkpw # crea un gruppo per la gestione dei domini mkdir /home/vpopmail # crea la directory di installazione per Vpopmailuseradd –g vchkpw –d /home/vpopmail vpopmail # aggiunge un utente per i dominimake && make setup check # compila ed installa QMail cd ~alias; touch .qmail-root .qmail-postmaster .qmail-mailer-daemon # assegna i permessichmod 644 ~alias/.qmail* # assegna i permessicd /tar/qmail* # torna alla directory dei sorgenti./config-fast dominio.local # accetta solo le mail provenienti dal dominio specificato
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 # entra nella directory dei sorgentitar zxvf script.tar.gz # scompatta i filecd script* # entra nella directory appena scompattatacp rc /var/qmail/rc # copia lo script per la gestione principale del serverchmod 755 /var/qmail/rc # rende eseguibile lo scriptmkdir /var/log/qmail # crea la directory per il salvataggio dei logecho ./Maildir/ >/var/qmail/control/defaultdelivery # sceglie il formato Maildircp qmailctl /var/qmail/bin/qmailctl # copia lo script per il controllo del serverchmod 755 /var/qmail/bin/qmailctl # rende eseguibile lo scriptln –s /var/qmail/bin/qmailctl /usr/bin # crea un link finto per qmailctlln –s /var/qmail/bin/sendmail /usr/sbin/sendmail # crea un link finto per sendmailln –s /var/qmail/bin/sendmail /usr/lib/sendmail # crea un link finto per sendmailmkdir –p /var/qmail/supervise/qmail-send/log # crea la directory per i sendmkdir –p /var/qmail/supervise/qmail-smtpd/log # crea la directory per l’smtpmkdir –p /var/qmail/supervise/qmail-pop3d/log # crea la directory per il pop3chmod +t /var/qmail/supervise/qmail-send # assegna i permessi correttichmod +t /var/qmail/supervise/qmail-smtpd # assegna i permessi correttichmod +t /var/qmail/supervise/qmail-pop3d # assegna i permessi corretticp send.run /var/qmail/supervise/qmail-send/run # copia lo script per i sendcp send.log.run /var/qmail/supervise/qmail-send/log/run # copia lo script per loggare i sendcp smtpd.run /var/qmail/supervise/qmail-smtpd/run # copia lo script per l’smtpcp smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run # copia lo script per loggare l’smtpdcp pop3.run /var/qmail/supervise/qmail-pop3d/run # copia lo script per il pop3cp pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run # copia lo script per loggare il pop3echo 20 > var/qmail/control/concurrencyincoming # inserisce il valore 20 nel file concurrencyincomingchmod 644 /var/qmail/control/concurrencyincoming # assegna i permessi correttichmod 755 /var/qmail/supervise/qmail-send/run # rende eseguibile lo scriptchmod 755 /var/qmail/supervise/qmail-send/log/run # rende eseguibile lo scriptchmod 755 /var/qmail/supervise/qmail-smtpd/run # rende eseguibile lo scriptchmod 755 /var/qmail/supervise/qmail-smtpd/log/run # rende eseguibile lo scriptchmod 755 /var/qmail/supervise/qmail-pop3d/run # rende eseguibile lo scriptchmod 755 /var/qmail/supervise/qmail-pop3d/log/run # rende eseguibile lo scriptmkdir –p /var/log/qmail/smtpd # crea la directory per il salvataggio dei logmkdir –p /var/log/qmail/pop3d # crea la directory per il salvataggio dei logchown qmaill /var/log/qmail /var/log/qmail/smtpd # assegna il proprietario delle directoryln –s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service # crea un link alle directory nelladirectory di servizio del serverqmailctl stat # mostra lo stato del server (per il momento solo smtp)
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 # entra nella directory dei sorgentitar zxvf vpopmail* # scompatta i filecd vpopmail* # entra nella directory di installazione di Vpopmail ./configure --enable-roaming-users=y --enable-logging=v --enable-default-domain=dominio.localmake && make install # compila ed installa Vpopmailecho ‘127.:allow,RELAYCLIENT=””’ >/home/vpopmail/etc/tcp.smtp # accetta le mail da 127.x.x.xecho ‘192.168.0.:allow,RELAYCLIENT=””’ >/home/vpopmail/etc/tcp.smtp # accetta le mail dalla LAN qmailctl cdb # aggiorna il database degli ip autoizzati all’inviocp ../script*/vpopmailctl /var/qmail/bin/vpopmailctl # copia lo script per la gestione dei dominichmod 755 /var/qmail/bin/vpopmailctl # rende eseguibile lo script ln –s /var/qmail/bin/vpopmailctl /usr/bin # linka lo script alla directory di sistemaln –s /var/qmail/supervise/qmail-pop3d /var/qmail/supervise/qmail-pop3ds /service # crea un link alle directory nella directory di servizio del servermkdir /var/log/qmail/pop3ds # crea la directory per il salvataggio dei logvpopmailctl stat # mostra lo stato del server (solo pop3)
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 # entra nella directory dei sorgentitar zxvf autoresponder* # scompatta i filecd autoresponder* # entra nella directory di installazione di Autorespondermake && make install # compila ed installa il pacchetto
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 # entra nella directory dei sorgentitar zxvf ezmlm* # scompatta i filecd ezmlm* # entra nella directory di installazione di Ezmlmpatch –p0 <../idx.shupp.patch # applica una patch di correzionepatch <../qmail.patch # applica una patch di correzionemake && make install # compila ed installa il pacchetto
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 # entra nella directory dei sorgentitar zxvf qmailadmin* # scompatta i filecd qmailadmin* # entra nella directory di installazione di QMailAdmin./configure && make && make install-strip # configura, compila ed installa il pacchetto
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 # sostituire domain.com col propriovi /var/qmail/supervise/qmail-pop3d/run +8 # sostituire domain.com col proprio
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 # entra nella directory dei sorgentibunzip2 sqwebmail* # scompatta i file dal formato bz2tar xvf sqwebmail* # scompatta i filecd sqwebmail* # entra nella directory di installazione di Sqwebmail./configure --withouth-authdaemon --with-authvchkpw && make && make install-strip # configura, compila ed installa il pacchetto /usr/local/share/sqwebmail/libexec/sqwebmail/sqwebmaild start # avvia il demone per la webmail
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/cgibin/ sqwebmail anche qui dovrebbe comparire una schermata simile alla precedente per la gestione delle caselle mail degli utenti (Figura 3).



Installazione di Qmail
|