Postfix Tutorial · 5 min read · Sep 27, 2025

Utenti E Domini Virtuali Con Postfix, Courier, MySQL E SquirrelMail (Mandriva 2009.1 x86_64)

Utenti E Domini Virtuali Con Postfix, Courier, MySQL E SquirrelMail (Mandriva 2009.1 x86_64)

Versione 1.0
Autore: Falko Timme

Questo tutorial è Copyright (c) 2009 di Falko Timme. È derivato da un tutorial di Christoph Haas che puoi trovare su http://workaround.org. Sei libero di utilizzare questo tutorial sotto la licenza Creative Commons 2.5 o qualsiasi versione successiva.

Questo documento descrive come installare un server di posta Postfix basato su utenti e domini virtuali, cioè utenti e domini che si trovano in un database MySQL. Dimostrerò anche l’installazione e la configurazione di Courier (Courier-POP3, Courier-IMAP), in modo che Courier possa autenticarsi contro lo stesso database MySQL utilizzato da Postfix.

Il server Postfix risultante è in grado di SMTP-AUTH e TLS e quota (la quota non è integrata in Postfix per impostazione predefinita, mostrerò come patchare il tuo Postfix di conseguenza). Le password sono memorizzate in forma crittografata nel database (la maggior parte dei documenti che ho trovato trattava password in testo semplice, il che è un rischio per la sicurezza). Inoltre, questo tutorial copre l’installazione di Amavisd, SpamAssassin e ClamAV in modo che le email vengano scansionate per spam e virus. Mostrerò anche come installare SquirrelMail come interfaccia webmail in modo che gli utenti possano leggere e inviare email e cambiare le loro password.

Il vantaggio di una configurazione “virtuale” (utenti e domini virtuali in un database MySQL) è che è molto più performante rispetto a una configurazione basata su “veri” utenti di sistema. Con questa configurazione virtuale, il tuo server di posta può gestire migliaia di domini e utenti. Inoltre, è più facile da amministrare perché devi solo occuparti del database MySQL quando aggiungi nuovi utenti/domini o modifichi quelli esistenti. Niente più comandi postmap per creare file db, niente più ricaricamenti di Postfix, ecc. Per l’amministrazione del database MySQL puoi utilizzare strumenti basati sul web come phpMyAdmin che verrà installato anche in questo howto. Il terzo vantaggio è che gli utenti hanno un indirizzo email come nome utente (invece di un nome utente + un indirizzo email) che è più facile da comprendere e ricordare.

Questo tutorial è basato su Mandriva 2009.1 (x86_64). Dovresti già aver impostato un sistema Mandriva di base, come descritto nei capitoli 1-7 di questo tutorial: https://www.howtoforge.com/perfect-server-mandriva-2009.1-free-x86_64-ispconfig-2. Si prega di escludere il capitolo 6.1 Creazione di uno script di aggiornamento automatico, perché se c’è un aggiornamento di Postfix, sostituirà il nostro Postfix personalizzato che costruiremo nel capitolo 3!

Questo howto è inteso come una guida pratica; non copre gli aspetti teorici. Questi sono trattati in molti altri documenti sul web.

Questo documento viene fornito senza alcuna garanzia di alcun tipo! Voglio dire che questo non è l’unico modo per impostare un sistema del genere. Ci sono molti modi per raggiungere questo obiettivo, ma questo è il modo che seguo. Non rilascio alcuna garanzia che questo funzionerà per te!

Nota Preliminare

Il sistema dovrebbe avere un indirizzo IP statico. Uso 192.168.0.100 come il mio indirizzo IP in questo tutorial e server1.example.com come nome host.

1 Installa Apache, MySQL, phpMyAdmin

Per prima cosa aggiorniamo il nostro database dei pacchetti:

urpmi.update -a

Possiamo installare i pacchetti con un solo comando:

urpmi MySQL MySQL-client lib64mysql-devel phpmyadmin db4-devel html2text lib64sasl-devel openssl-devel openldap-devel pcre-devel postgresql8.3-devel rpm-build

2 Installa Courier E Saslauthd

Per installare Courier e saslauthd, eseguiamo semplicemente:

urpmi courier-authlib courier-authlib-mysql courier-imap courier-pop cyrus-sasl lib64sasl2 lib64sasl2-devel lib64sasl2-plug-plain lib64sasl2-plug-anonymous lib64sasl2-plug-crammd5 lib64sasl2-plug-digestmd5 lib64sasl2-plug-gssapi lib64sasl2-plug-login

3 Applica la Patch Quota A Postfix

Dobbiamo ottenere il pacchetto sorgente rpm di Postfix, patcharlo con la patch quota, costruire un nuovo pacchetto rpm di Postfix e installarlo.

cd /usr/src  
wget ftp://wftp.tu-chemnitz.de/pub/linux/mandrakelinux/official/2009.1/SRPMS/main/release/postfix-2.5.6-4mdv2009.1.src.rpm  
rpm -ivh postfix-2.5.6-4mdv2009.1.src.rpm

L’ultimo comando mostrerà alcuni avvisi che puoi ignorare:

warnings: user mandrake does not exist - using root  
warnings: group mandrake does not exist - using root

Ora patchiamo i sorgenti di Postfix con la patch postfix-2.5.6-vda-ng (da http://vda.sourceforge.net/):

cd /root/rpmbuild/SOURCES  
tar xvfz postfix-2.5.6.tar.gz  
wget http://vda.sourceforge.net/VDA/postfix-2.5.6-vda-ng.patch.gz  
gunzip postfix-2.5.6-vda-ng.patch.gz  
cd postfix-2.5.6  
patch -p1 < ../postfix-2.5.6-vda-ng.patch  
cd ..  
mv postfix-2.5.6.tar.gz postfix-2.5.6.tar.gz_orig  
tar -pczf postfix-2.5.6.tar.gz postfix-2.5.6/  
rm -fr postfix-2.5.6/

Poi costruiamo il nostro nuovo pacchetto rpm di Postfix con supporto quota e MySQL:

cd /root/rpmbuild/SPECS/  
rpmbuild -ba postfix.spec

Il nostro pacchetto rpm di Postfix viene creato in /root/rpmbuild/RPMS/x86_64, quindi andiamo lì:

cd /root/rpmbuild/RPMS/x86_64

Il comando

ls -l

mostra i pacchetti disponibili:

[root@server1 x86_64]# ls -l  
total 3304  
-rw-r--r-- 1 root root  225752 2009-10-07 15:49 lib64postfix1-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root 1273469 2009-10-07 15:49 postfix-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root 1746832 2009-10-07 15:49 postfix-debug-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root   29372 2009-10-07 15:49 postfix-ldap-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root   24616 2009-10-07 15:49 postfix-mysql-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root   24846 2009-10-07 15:49 postfix-pcre-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root   24691 2009-10-07 15:49 postfix-pgsql-2.5.6-4mdv2009.1.x86_64.rpm  
[root@server1 x86_64]#

Prima disinstalla il tuo attuale pacchetto Postfix…

urpme postfix

…poi scegli i pacchetti postfix e postfix-mysql e installali in questo modo:

rpm -ivh postfix-2.5.6-4mdv2009.1.x86_64.rpm postfix-mysql-2.5.6-4mdv2009.1.x86_64.rpm

4 Imposta Le Password Di MySQL E Configura PhpMyAdmin

Per impostazione predefinita, il networking non è abilitato nel pacchetto MySQL di Mandriva 2009.1, ma il networking è richiesto da ISPConfig. Possiamo cambiare questo commentando la riga skip-networking in /etc/my.cnf:

vi /etc/my.cnf

| [...] # Non ascoltare affatto su una porta TCP/IP. Questo può essere un miglioramento della sicurezza, # se tutti i processi che devono connettersi a mysqld vengono eseguiti sullo stesso host. # Tutte le interazioni con mysqld devono essere effettuate tramite socket Unix o pipe nominate. # Nota che utilizzare questa opzione senza abilitare le pipe nominate su Windows # (tramite l'opzione "enable-named-pipe") renderà mysqld inutile! # #skip-networking [...] |

Dopo, creiamo i collegamenti di avvio del sistema per Apache e MySQL…

chkconfig mysqld on  
chkconfig httpd on

… e avviamo entrambi i servizi:

/etc/init.d/mysqld start  
/etc/init.d/httpd start

Ora controlla che il networking sia abilitato. Esegui

netstat -tap | grep mysql

L’output dovrebbe apparire così:

[root@server1 x86_64]# netstat -tap | grep mysql  
tcp        0      0 *:mysql-im                     *:*                     LISTEN      14395/mysqlmanager  
tcp        0      0 *:mysql                         *:*                     LISTEN      14403/mysqld  
[root@server1 x86_64]#

Successivamente, esegui

mysqladmin -u root password yourrootsqlpassword  
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

per impostare una password per l’utente root (altrimenti chiunque può accedere al tuo database MySQL!).

Ora puoi indirizzare il tuo browser a http://server1.example.com/phpmyadmin/ o http://192.168.0.100/phpmyadmin/ e accedere con il nome utente root e la tua nuova password MySQL root.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.