Postfix-mysql: differenze tra le versioni

revisionata, modificata gerarchia titoli
Nessun oggetto della modifica
(revisionata, modificata gerarchia titoli)
Riga 1: Riga 1:
{{Versioni compatibili|Debian Etch 4.0<br/>Debian Lenny 5.0<br/>Debian Squeeze<br/>Debian Sid|}}
{{Versioni compatibili|Debian Etch 4.0<br/>Debian Lenny 5.0<br/>Debian Squeeze<br/>Debian Sid|}}
=Introduzione=
==Introduzione==
In questo HowTo verrà installato e configurato Postfix-mysql, il pacchetto Debian che fornisce Postfix con il supporto per interfacciarsi con un database
In questo HowTo verrà installato e configurato Postfix-mysql, il pacchetto Debian che fornisce Postfix con il supporto per interfacciarsi con un database
[http://www.mysql.com MySql].
[http://www.mysql.com MySql].
Riga 6: Riga 6:
Questo permetterà di avere un controllo dinamico e flessibile sui domini e mailbox, astraendo il tutto dagli utenti di sistema.
Questo permetterà di avere un controllo dinamico e flessibile sui domini e mailbox, astraendo il tutto dagli utenti di sistema.


=Installazione=
==Installazione==
I pacchetti necessari sono:
I pacchetti necessari sono:
* '''postfix-mysql''': Il server di posta Postfix con il supporto per il database MySql;
* '''postfix-mysql''': il server di posta Postfix con il supporto per il database MySql;
* '''courier-authmysql, courier-imap''' per la gestione del servizio IMAP, utile per il controllo della posta;
* '''courier-authmysql, courier-imap''' per la gestione del servizio IMAP, utile per il controllo della posta;
* '''mysql-server''': il server MySql;
* '''mysql-server''': il server MySql;
* '''maildrop, mailfilter''' che andrà a sostituire procmail (che ha il difetto di non poter essere utilizzato in caso di account virtuali.
* '''maildrop, mailfilter''' che andrà a sostituire procmail (che ha il difetto di non poter essere utilizzato in caso di account virtuali).


Per installare questi pacchetti, quindi, è sufficiente un semplice:
Per installare questi pacchetti, quindi, è sufficiente un semplice:
Riga 18: Riga 18:
</pre>
</pre>


=Configurazione=
==Configurazione==
La configurazione può essere divisa in tre parti: nella prima verrà configurato
La configurazione può essere divisa in tre parti: nella prima verrà configurato
il Server MySql, creando le tabelle e gli utenti, nella seconda verrà
il Server MySql, creando le tabelle e gli utenti, nella seconda verrà
Riga 25: Riga 25:
tool per la gestione di utenti e domini.
tool per la gestione di utenti e domini.


==Mysql==
===Mysql===
La configurazione di MySql è semplice, ma richiede alcuni accorgimenti per quanto riguarda la sicurezza: l'installazione di default su Debian Etch, infatti, prevede un utente root senza password, cosa per niente sicura.
La configurazione di MySql è semplice, ma richiede alcuni accorgimenti per quanto riguarda la sicurezza: l'installazione di default su Debian Etch, infatti, prevede un utente root senza password, cosa per niente sicura.


===Installazione===
====Installazione====
L'installazione di MySql è semplice ed immediata:
L'installazione di MySql è semplice ed immediata:
<pre>
<pre>
Riga 35: Riga 35:
Il primo pacchetto è il server, mentre il secondo è il client, che verrà usato in seguito per interagire col server.
Il primo pacchetto è il server, mentre il secondo è il client, che verrà usato in seguito per interagire col server.


===Configurazione===
====Configurazione====
Se questa è la prima installazione di MySql, è cosnigliabile modificare la password di root, che di default è impostata ad una stringa vuata.
Se questa è la prima installazione di MySql, è consigliabile modificare la password di root, che di default è impostata ad una stringa vuota.


Per cambiare la password di root, è sufficiente modificare la query sottoriportata, modificando opportunamente la stringa ''nuova_password'' con la nuova password di root che si vuole usare.
Per cambiare la password di root, è sufficiente modificare la query sottoriportata, modificando opportunamente la stringa ''nuova_password'' con la nuova password di root che si vuole usare.
Riga 48: Riga 48:
$ mysql -u root -p
$ mysql -u root -p
</pre>
</pre>
che, a differenza dell'altro, richiede la password di root per accedere al database (altrimenti non sarebbe possibile eseguire l'accesso.
che, a differenza dell'altro, richiede la password di root per accedere al database (altrimenti non sarebbe possibile eseguire l'accesso).


La query per il cambio di password dell'utente root è la seguente:
La query per il cambio di password dell'utente root è la seguente:
Riga 56: Riga 56:
</pre>
</pre>


È necessario, per il proseguimento, creare un utente che sarà in grado di accedere al database per leggere i dati. In questo esempio lo chiameremo ''postfix'', ed avrà la password ''passwd''.
È necessaria, per proseguire, la creazione di un utente che sarà in grado di accedere al database per leggere i dati. In questo esempio lo chiameremo ''postfix'', ed avrà la password ''passwd''.


La seguente query creerà l'utente e darà ad esso i permessi necessari.
La seguente query creerà l'utente e darà ad esso i permessi necessari.
Riga 70: Riga 70:
</pre>
</pre>


===Creazione delle Tabelle===
====Creazione delle Tabelle====


La creazione delle tabelle richiede l'esecuzione delle seguenti query:
La creazione delle tabelle richiede l'esecuzione delle seguenti query:
Riga 126: Riga 126:
</pre>  
</pre>  


===Inserimento dei primi dati===
====Inserimento dei primi dati====


Con la seguente query verrà inserito un primo utente ed un dominio (ovviamente fittizzi).
Con la seguente query verrà inserito un primo utente ed un dominio (ovviamente fittizi).


<pre>
<pre>
Riga 140: Riga 140:




===Possibili problemi con MySql===
====Possibili problemi con MySql====


Potrebbe sorgere, in seguito, un problema di dialogo tra MySql e Postfix. La cosa è dovuta al fatto che Postfix gira in un ambiente chroot, quindi non ha possibilità di interagire con MySql tramite il socket (come avviene di default). Un modo per ovviare a questo inconveniente è di modificare il file ''/etc/mysql/my.conf'' modificando la riga
Potrebbe sorgere, in seguito, un problema di dialogo tra MySql e Postfix. La cosa è dovuta al fatto che Postfix gira in un ambiente chroot, quindi non ha possibilità di interagire con MySql tramite il socket (come avviene di default). Un modo per ovviare a questo inconveniente è di modificare il file <code>/etc/mysql/my.conf</code> modificando la riga
<pre>
<pre>
skip-network
skip-network
Riga 153: Riga 153:
Se per caso è necessario che MySql possa essere interrogato anche da altri IP, è sufficiente commentare entrambe le righe.
Se per caso è necessario che MySql possa essere interrogato anche da altri IP, è sufficiente commentare entrambe le righe.


In alcuni casi il problema persiste anche impostando mysql in ascolto sull'interfaccia di 127.0.0.1. In questo caso bisogna cambiare la riga  
In alcuni casi il problema persiste anche impostando MySql in ascolto sull'interfaccia di 127.0.0.1. In questo caso bisogna cambiare la riga  
<pre>
<pre>
hostname = localhost
hostname = localhost
Riga 161: Riga 161:
hostname = 127.0.0.1  
hostname = 127.0.0.1  
</pre>
</pre>
in tutti i file che seguono e che configurano l'accesso per mysql, ovvero in tutti i file mysql_*_maps.cf descritti qui di seguito.
in tutti i file che seguono e che configurano l'accesso per MySql, ovvero in tutti i file <code>mysql_*_maps.cf</code> descritti qui di seguito.
Citazione dal manuale di postfix - mysql_table(5):  
Citazione dal manuale di postfix - mysql_table(5):  
<pre>
<pre>
Riga 172: Riga 172:
</pre>
</pre>


==Postfix==
===Postfix===
La configurazione di Postfix richiede la modifica del file principare di configurazione '''/etc/postfix/main.cf''' nel modo seguente:
La configurazione di Postfix richiede la modifica del file principale di configurazione <code>'''/etc/postfix/main.cf'''</code> nel modo seguente:


===main.cf===
====<code>main.cf</code>====
<pre>
<pre>
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
Riga 216: Riga 216:
Come è possibile vedere, i parametri sono molto intuitivi, percià verrà commentato solo il primo file.
Come è possibile vedere, i parametri sono molto intuitivi, percià verrà commentato solo il primo file.


===mysql_virtual_alias_maps.cf===
====<code>mysql_virtual_alias_maps.cf</code>====
<pre>
<pre>
# l'utente da usare per collegarsi a mysql
# l'utente da usare per collegarsi a mysql
Riga 237: Riga 237:
</pre>
</pre>


===mysql_virtual_domains_maps.cf===
====<code>mysql_virtual_domains_maps.cf</code>====
Questo file conterrà i dettagli per la connessione e la consultazione della tabella dei domini.
Questo file conterrà i dettagli per la connessione e la consultazione della tabella dei domini.
In questa tabella saranno elencati i domini per i quali postfix potrà accettare la posta.
In questa tabella saranno elencati i domini per i quali postfix potrà accettare la posta.
Riga 255: Riga 255:
</pre>
</pre>


===mysql_virtual_mailbox_maps.cf===
====<code>mysql_virtual_mailbox_maps.cf</code>====
<pre>
<pre>
user = postfix
user = postfix
Riga 267: Riga 267:
</pre>
</pre>


===mysql_virtual_mailbox_limit_maps.cf===
====<code>mysql_virtual_mailbox_limit_maps.cf</code>====
Questo file contiene i parametri per l'interrogazione di MySql al fine di ottenere le quote disponibili degli utenti.
Questo file contiene i parametri per l'interrogazione di MySql al fine di ottenere le quote disponibili degli utenti.
Le quote servono per gestire la dimensione massima di ogni singola casella di posta, impedendo così che una sola casella occupi tutto lo spazio a disposizione.
Le quote servono per gestire la dimensione massima di ogni singola casella di posta, impedendo così che una sola casella occupi tutto lo spazio a disposizione.
Riga 282: Riga 282:
</pre>
</pre>


===mysql_relay_domains_maps.cf===
====<code>mysql_relay_domains_maps.cf</code>====
Questo file contiene i parametri di connessione per ottenere la lista dei domini per i quali postfix fa da releay (quindi accetta la posta dall'esterno (ovviamente per gli utenti autenticati le cose saranno diverse).
Questo file contiene i parametri di connessione per ottenere la lista dei domini per i quali postfix fa da releay (quindi accetta la posta dall'esterno (ovviamente per gli utenti autenticati le cose saranno diverse).
Questo per evitare che il nostro server venga usato come ''Open Relay'', e quindi inserito in blacklist o usato da spammer.
Questo per evitare che il nostro server venga usato come ''Open Relay'', e quindi inserito in blacklist o usato da spammer.
Riga 297: Riga 297:
</pre>  
</pre>  


===Applicazione delle modifiche===
====Applicazione delle modifiche====
La configurazione di Postfix per l'interazione con MySql si può ritenere conclusa.
La configurazione di Postfix per l'interazione con MySql si può ritenere conclusa.
Per applicare le modifiche apportate è necessario riavviare Postfix:
Per applicare le modifiche apportate è necessario riavviare Postfix:
Riga 304: Riga 304:
</pre>
</pre>


===mail.cf===
====<code>mail.cf</code>====
<pre>
<pre>
broken_sasl_auth_clients = yes
broken_sasl_auth_clients = yes
Riga 325: Riga 325:
</pre>
</pre>


===snmtp.conf===
====<code>snmtp.conf</code>====
<pre>
<pre>
pwcheck_method: authdaemond
pwcheck_method: authdaemond
Riga 333: Riga 333:
</pre>
</pre>


=Maildrop: filtraggio della posta=
==Maildrop: filtraggio della posta==
==Installazione==
===Installazione===
L'installazione è molto semplice:
L'installazione è molto semplice:
<pre>
<pre>
1 508

contributi