1 508
contributi
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''': | * '''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, è | 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> | ||
È | È 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 | 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 | 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 | 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 | 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 | 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> |
contributi