3 581
contributi
Nessun oggetto della modifica |
(guida da adottare) |
||
(10 versioni intermedie di 5 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{ | {{Guida da adottare}} | ||
=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à | configurato Postifx (con degli approfondimenti sul significato dei vari file di configurazione), nella terza verrà installato PostfixAdmin, un ottimo | ||
configurato Postifx (con degli approfondimenti sul significato dei vari | |||
file di configurazione), nella terza verrà installato PostfixAdmin, un ottimo | |||
tool per la gestione di utenti e domini. | tool per la gestione di utenti e domini. | ||
== | ===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 33: | ||
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. | ||
Se non si usano tool come PhpMyAdmin o MySqlCC, è necessario usare il comando | Se non si usano tool come PhpMyAdmin o MySqlCC, è necessario usare il comando: | ||
<pre> | <pre> | ||
$ mysql -u root | $ mysql -u root | ||
Riga 48: | Riga 46: | ||
$ 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 54: | ||
</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 68: | ||
</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 124: | ||
</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 138: | ||
===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 | ||
</pre> | </pre> | ||
in | in: | ||
<pre> | <pre> | ||
bind-address = 127.0.0.1 | bind-address = 127.0.0.1 | ||
</pre> | </pre> | ||
per fare in modo che | per fare in modo che MySql sia in ascolto solo all'IP 127.0.0.1 (e quindi non accessibile dall'esterno). | ||
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 | ||
</pre> | </pre> | ||
con | con: | ||
<pre> | <pre> | ||
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 170: | ||
</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 | ||
# vengono assegnate all'utente che gestirà le mailbox un uid e gid statici | # vengono assegnate all'utente che gestirà le mailbox un uid e gid statici | ||
# così da evitare di dover creare un utente reale per ogni utente | # così da evitare di dover creare un utente reale per ogni utente virtuale | ||
virtual_gid_maps = static:1001 | virtual_gid_maps = static:1001 | ||
virtual_uid_maps = static:1001 | virtual_uid_maps = static:1001 | ||
Riga 214: | Riga 212: | ||
A questo punto rimane solo da scrivere i file che verranno usati dal backend di MySql per l'autenticazione. | A questo punto rimane solo da scrivere i file che verranno usati dal backend di MySql per l'autenticazione. | ||
Come è possibile vedere, i parametri sono molto intuitivi, | 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 235: | ||
</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 | In questa tabella saranno elencati i domini per i quali Postfix potrà accettare la posta. | ||
<pre> | <pre> | ||
Riga 255: | Riga 253: | ||
</pre> | </pre> | ||
===mysql_virtual_mailbox_maps.cf=== | ====<code>mysql_virtual_mailbox_maps.cf</code>==== | ||
<pre> | <pre> | ||
user = postfix | user = postfix | ||
Riga 267: | Riga 265: | ||
</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 280: | ||
</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 | Questo file contiene i parametri di connessione per ottenere la lista dei domini per i quali postfix fa da relay (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 295: | ||
</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 302: | ||
</pre> | </pre> | ||
===mail.cf=== | ====<code>mail.cf</code>==== | ||
<pre> | <pre> | ||
broken_sasl_auth_clients = yes | broken_sasl_auth_clients = yes | ||
Riga 325: | Riga 323: | ||
</pre> | </pre> | ||
=== | ====<code>smtpd.conf</code>==== | ||
<pre> | <pre> | ||
pwcheck_method: authdaemond | pwcheck_method: authdaemond | ||
Riga 333: | Riga 331: | ||
</pre> | </pre> | ||
=Maildrop: filtraggio della posta= | ==Maildrop: filtraggio della posta== | ||
==Installazione== | ===Installazione=== | ||
L'installazione è molto semplice: | L'installazione è molto semplice: | ||
<pre> | <pre> | ||
Riga 347: | Riga 345: | ||
L'aggiunta di questo utente è necessaria, in quanto sarà attraverso lui che maildrop agirà. | L'aggiunta di questo utente è necessaria, in quanto sarà attraverso lui che maildrop agirà. | ||
[[Categoria: | {{Autori | ||
|Autore=[[Utente:MaXeR|MaXeR]] | |||
}} | |||
[[Categoria:Mail server]][[Categoria:Database server]] |
contributi