Postfix-mysql: differenze tra le versioni

m
Riga 1: Riga 1:
=Introduzione=
=Introduzione=
In questo HowTo verr� Postfix-mysql, il pacchetto Debian che fornisce Postfix con il supporto per interfacciarsi con un database
In questo HowTo verrà 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].


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=
Riga 10: Riga 10:
* '''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:
<pre>
<pre>
# apt-get install postfix-mysql courier-authmysql courier-imap mysql-server maildrop mailfilter
# apt-get install postfix-mysql courier-authmysql courier-imap mysql-server maildrop mailfilter
Riga 18: Riga 18:


=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
configurato Postifx (con degli approfondimenti sul significato dei vari
file di configurazione), nella terza verr� installato PostfixAdmin, un ottimo
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==
==Mysql==
La configurazione di MySql semplice, ma richiede alcuni accorgimenti per quanto rigaurda la sicurezza: l'installazione di default, infatti, prevede un utente root senza password, cosa per niente sicura.
La configurazione di MySql è semplice, ma richiede alcuni accorgimenti per quanto rigaurda la sicurezza: l'installazione di default, 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>
# apt-get install mysql-server mysql-client
# apt-get install mysql-server mysql-client
</pre>
</pre>
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, è cosnigliabile modificare la password di root, che di default è impostata ad una stringa vuata.


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
</pre>
</pre>
per accedere come utente root; una volta specificata la password, inoltre, sar� necessario usare il comando
per accedere come utente root; una volta specificata la password, inoltre, sarà necessario usare il comando
<pre>
<pre>
$ mysql -u root -p
$ mysql -u root -p
Riga 49: Riga 49:
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:
<pre>
<pre>
USE mysql;
USE mysql;
Riga 55: Riga 55:
</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''.
È 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''.


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.


<pre>
<pre>
Riga 127: Riga 127:
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 fittizzi).


<pre>
<pre>
Riga 141: Riga 141:
===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 ''/etc/mysql/my.conf'' modificando la riga
<pre>
<pre>
skip-network
skip-network
Riga 150: Riga 150:
</pre>
</pre>
per fare in modo che mysql sia in ascolto solo all'IP 127.0.0.1 (e quindi non accessibile dall'esterno).
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.




Riga 159: Riga 159:
<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 virutale
# così da evitare di dover creare un utente reale per ogni utente virutale
virtual_gid_maps = static:1001
virtual_gid_maps = static:1001
virtual_uid_maps = static:1001
virtual_uid_maps = static:1001
Riga 195: Riga 195:


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, 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===
===mysql_virtual_alias_maps.cf===
Riga 212: Riga 212:
select_field = goto
select_field = goto
# il campo su cui viene fatta la query (in questo
# il campo su cui viene fatta la query (in questo
# caso verr� cercato il record in cui il campo 'address'
# caso verrà cercato il record in cui il campo 'address'
# corrisponde all'email del destinatario. L'indirizzo a cui
# corrisponde all'email del destinatario. L'indirizzo a cui
# questa email dovr� essere inviato sar� indicato dal campo 'goto'
# questa email dovrà essere inviato sarà indicato dal campo 'goto'
where_field = address
where_field = address
</pre>
</pre>


===mysql_virtual_domains_maps.cf===
===mysql_virtual_domains_maps.cf===
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 ingresso (ovviamente per gli utenti autenticati le cose saranno diverse).
In questa tabella saranno elencati i domini per i quali postfix potrà accettare la posta.
Questo per evitare che il nostro server venga usato come ''Open Relay'', e quindi inserito in blacklist o usato da spammer.


<pre>
<pre>
Riga 251: Riga 250:
===mysql_virtual_mailbox_limit_maps.cf===
===mysql_virtual_mailbox_limit_maps.cf===
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.


<pre>
<pre>
Riga 265: Riga 264:


===mysql_relay_domains_maps.cf===
===mysql_relay_domains_maps.cf===
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.
<pre>
<pre>
user = postfix
user = postfix
Riga 277: Riga 279:


===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:
<pre>
<pre>
# /etc/init.d/postfix restart
# /etc/init.d/postfix restart
1 487

contributi