Linux counter

Cisco User Group

Accessi

TodayToday457
YeserdayYeserday565
This WeekThis Week4107
This MonthThis Month13755
All DaysAll Days520425
38.107.179.219
Guests 7
Registered Users 1
Registered Today 0

Mappa visitatori

Installazione di un mail server Qmail-SpamAssassin-ClamAV-QmailMRTG PDF Stampa E-mail
(0 - user rating)
Scritto da Alessandro Pensato   
Venerdì 31 Dicembre 2010 16:59

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 directory
chmod 1755 /package # assegnazione dei permessi
cd /package # entra nella directory creata
tar zxvf /tar/daemontools* # scompatta i file (/tar è la directory dove tengo i sources)
cd admin/daemontools*/src # entra nella directory di installazione
patch </tar/qmail.patch # applica una patch di correzione
cd .. # torna indietro di una directory
package/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 sources
tar zxvf ucspi* # scompatta i file
cd ucspi* # entra nella directory di installazione
patch </tar/qmail.patch # applica una patch di correzione
make && 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 sorgenti
tar zxvf qmail-1.03* # scompatta i file
cd qmail* # entra nella directory di installazione di QMail
patch <../qmailqueue.patch # applica una patch di correzione per l’attesa delle mail
patch <../qmail. patch # applica una patch di correzione
mkdir /var/qmail # crea la directory di installazione

groupadd nofiles # crea un gruppo per la gestione del server
useradd –g nofiles –d /var/qmail/alias alias # aggiunge un utente per i servizi
useradd –g nofiles –d /var/qmail qmaild # aggiunge un utente per i servizi
useradd –g nofiles –d /var/qmail qmaill # aggiunge un utente per i servizi
useradd –g nofiles –d /var/qmail qmailp # aggiunge un utente per i servizi
groupadd qmail # crea un gruppo per la gestione dei messaggi
useradd –g qmail –d /var/qmail qmailq # aggiunge un utente per i servizi
useradd –g qmail –d /var/qmail qmailr # aggiunge un utente per i servizi
useradd –g qmail –d /var/qmail qmails # aggiunge un utente per i servizi
groupadd vchkpw # crea un gruppo per la gestione dei domini

mkdir /home/vpopmail # crea la directory di installazione per Vpopmail
useradd –g vchkpw –d /home/vpopmail vpopmail # aggiunge un utente per i domini
make && make setup check # compila ed installa QMail

cd ~alias; touch .qmail-root .qmail-postmaster .qmail-mailer-daemon # assegna i permessi
chmod 644 ~alias/.qmail* # assegna i permessi
cd /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 sorgenti
tar zxvf script.tar.gz # scompatta i file
cd script* # entra nella directory appena scompattata
cp rc /var/qmail/rc # copia lo script per la gestione principale del server
chmod 755 /var/qmail/rc # rende eseguibile lo script
mkdir /var/log/qmail # crea la directory per il salvataggio dei log
echo ./Maildir/ >/var/qmail/control/defaultdelivery # sceglie il formato Maildir
cp qmailctl /var/qmail/bin/qmailctl # copia lo script per il controllo del server
chmod 755 /var/qmail/bin/qmailctl # rende eseguibile lo script
ln –s /var/qmail/bin/qmailctl /usr/bin # crea un link finto per qmailctl
ln –s /var/qmail/bin/sendmail /usr/sbin/sendmail # crea un link finto per sendmail
ln –s /var/qmail/bin/sendmail /usr/lib/sendmail # crea un link finto per sendmail
mkdir –p /var/qmail/supervise/qmail-send/log # crea la directory per i send
mkdir –p /var/qmail/supervise/qmail-smtpd/log # crea la directory per l’smtp
mkdir –p /var/qmail/supervise/qmail-pop3d/log # crea la directory per il pop3
chmod +t /var/qmail/supervise/qmail-send # assegna i permessi corretti
chmod +t /var/qmail/supervise/qmail-smtpd # assegna i permessi corretti
chmod +t /var/qmail/supervise/qmail-pop3d # assegna i permessi corretti
cp send.run /var/qmail/supervise/qmail-send/run # copia lo script per i send
cp send.log.run /var/qmail/supervise/qmail-send/log/run # copia lo script per loggare i send
cp smtpd.run /var/qmail/supervise/qmail-smtpd/run # copia lo script per l’smtp
cp smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run # copia lo script per loggare l’smtpd
cp pop3.run /var/qmail/supervise/qmail-pop3d/run # copia lo script per il pop3
cp pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run # copia lo script per loggare il pop3
echo 20 > var/qmail/control/concurrencyincoming # inserisce il valore 20 nel file concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming # assegna i permessi corretti
chmod 755 /var/qmail/supervise/qmail-send/run # rende eseguibile lo script
chmod 755 /var/qmail/supervise/qmail-send/log/run # rende eseguibile lo script
chmod 755 /var/qmail/supervise/qmail-smtpd/run # rende eseguibile lo script
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run # rende eseguibile lo script
chmod 755 /var/qmail/supervise/qmail-pop3d/run # rende eseguibile lo script
chmod 755 /var/qmail/supervise/qmail-pop3d/log/run # rende eseguibile lo script
mkdir –p /var/log/qmail/smtpd # crea la directory per il salvataggio dei log
mkdir –p /var/log/qmail/pop3d # crea la directory per il salvataggio dei log
chown qmaill /var/log/qmail /var/log/qmail/smtpd # assegna il proprietario delle directory
ln –s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service # crea un link alle directory nelladirectory di servizio del server
qmailctl 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 sorgenti
tar zxvf vpopmail* # scompatta i file
cd vpopmail* # entra nella directory di installazione di Vpopmail

./configure --enable-roaming-users=y --enable-logging=v --enable-default-domain=dominio.local
make && make install # compila ed installa Vpopmail
echo ‘127.:allow,RELAYCLIENT=””’ >/home/vpopmail/etc/tcp.smtp # accetta le mail da 127.x.x.x
echo ‘192.168.0.:allow,RELAYCLIENT=””’ >/home/vpopmail/etc/tcp.smtp # accetta le mail dalla LAN

qmailctl cdb # aggiorna il database degli ip autoizzati all’invio
cp ../script*/vpopmailctl /var/qmail/bin/vpopmailctl # copia lo script per la gestione dei domini
chmod 755 /var/qmail/bin/vpopmailctl # rende eseguibile lo script

ln –s /var/qmail/bin/vpopmailctl /usr/bin # linka lo script alla directory di sistema
ln –s /var/qmail/supervise/qmail-pop3d /var/qmail/supervise/qmail-pop3ds /service # crea un link alle directory nella directory di servizio del server
mkdir /var/log/qmail/pop3ds # crea la directory per il salvataggio dei log
vpopmailctl 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 sorgenti
tar zxvf autoresponder* # scompatta i file
cd autoresponder* # entra nella directory di installazione di Autoresponder
make && 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 sorgenti
tar zxvf ezmlm* # scompatta i file
cd ezmlm* # entra nella directory di installazione di Ezmlm
patch –p0 <../idx.shupp.patch # applica una patch di correzione
patch <../qmail.patch # applica una patch di correzione
make && 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 sorgenti
tar zxvf qmailadmin* # scompatta i file
cd 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 proprio
vi /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 sorgenti
bunzip2 sqwebmail* # scompatta i file dal formato bz2
tar xvf sqwebmail* # scompatta i file
cd 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).

icon Installazione di Qmail

 

Aggiungi commento


Codice di sicurezza
Aggiorna