Progetto

Generale

Profilo

PostfixAdminInstall » Cronologia » Versione 9

Amministratore Truelite, 07-09-2009 19:01

1 1 Amministratore Truelite
[[TracNav(TOC)]]
2
3 7 Amministratore Truelite
== Installare e configurare Postfixadmin ==
4 2 Amministratore Truelite
5 4 Amministratore Truelite
[http://postfixadmin.sourceforge.net/ PostfixAdmin] è una potente interfaccia di gestione per la posta elettronica che consente di mantenere su un database e gestire tramite interfaccia web gli utenti di un numero arbitrario di domini di posta elettronica. Il programma è pensato per essere usato in combinazione con {{{postfix}}}, supporta inoltre l'uso di MySQL, PostgresSQL e SQLite come database, a cui poi si dovrà appoggiare un server IMAP per l'accesso alle caselle di posta. In questo caso faremo riferimento ad una installazione basata su MySQL per il database e Dovecot per il server IMAP su Debian Lenny.
6 1 Amministratore Truelite
7 7 Amministratore Truelite
=== Installazione di Postfixadmin ===
8 6 Amministratore Truelite
9 2 Amministratore Truelite
Il software viene distribuito direttamente in un pacchetto Debian dal mantainer, ma non tramite un repository, pertanto sarà necessario scaricare il {{{.deb}}} a partire da [http://sourceforge.net/project/showfiles.php?group_id=191583&package_id=225300 questo indirizzo]. Una volta ottenuto il pacchetto sarà opportuno installare preventivamente le dipendenze, queste si ottengono con il comando:
10
{{{
11
dpkg -f postfixadmin_*.deb Depends
12
}}}
13
che presenta però anche le alternative per quanto riguarda il server web ed il database di supporto da usare, e non prevede esplicitamente l'installazione di un database sulla stessa macchina. Nel nostro caso sarà allora occorrerà installare:
14
{{{
15 3 Amministratore Truelite
aptitude install dbconfig-common wwwconfig-common  \
16
      libapache2-mod-php5 php5 php5-imap php5-mysql \
17 1 Amministratore Truelite
      mysql-client mysql-server
18
}}}
19 4 Amministratore Truelite
20 6 Amministratore Truelite
A questo punto sarà necessario creare un database ad uso di [http://postfixadmin.sourceforge.net/ PostfixAdmin], ed un utente dotato di adeguati privilegi per poterlo utilizzare, questo può essere fatto manualmente con le seguenti istruzioni:
21 1 Amministratore Truelite
{{{
22 5 Amministratore Truelite
mysqladmin -u root -p create postfixadmin
23
mysql -u root -p
24
mysql> grant create, select, insert, update, delete, lock, index, alter, drop on postfixadmin.* to 
25
             'postfixadmin'@'localhost' identified by 'passsegretaedifficile';
26
mysql> flush privileges;
27
mysql> \q
28 1 Amministratore Truelite
}}}
29
dopo di che si potrà installare il pacchetto con:
30
{{{
31
dpkg -i postfixadmin_*.deb 
32
}}}
33 6 Amministratore Truelite
ma si tenga presente che dalla versione 2.3 (ancora non rilasciata come stabile), con l'installazione di {{{dbconfig-common}}} e {{{wwwconfig-common}}}, l'installazione del pacchetto consente di creare configurare automaticamente anche il database di appoggio ed il relativo utente (ed il passo precedente non serve più).
34
35
A seconda della versione che si installa si dovrà modificare a mano il file {{{/etc/postfixadmin/config.inc.php}}} per inserire le credenziali di accesso al database, modificando le righe:
36
{{{
37
$CONF['configured'] = true;
38
...
39
$CONF['database_type'] = 'mysql';
40
$CONF['database_host'] = 'localhost';
41
$CONF['database_user'] = 'postfixadmin';
42
$CONF['database_password'] = 'passsegretaedifficile';
43
$CONF['database_name'] = 'postfixadmin';
44
}}}
45 1 Amministratore Truelite
ma questo, con la 2.3, viene fatto da ''debconf'' in maniera automatica con la richiesta della password di amministrazione di MySQL (quella impostata per root alla sua installazione) e di una altra password per l'utente usato da [http://postfixadmin.sourceforge.net/ PostfixAdmin], si ricordi però di rispondere, quando verrà richiesto, di installare la configurazione fornita dal pacchetto. 
46
47 7 Amministratore Truelite
Si tenga infine presente che se si vuole evitare di rendere leggibili ad Apache le credenziali di accesso al database questo può essere fatto aggiungendo creando un VirtualHost specifico per Postfixadmin (leggibile solo da root) in cui si impostano delle variabili di ambiente con le direttive:
48
{{{
49
SetEnv DB_USER "postfixadmin"
50
SetEnv DB_PASS "passsegretaedifficile"
51
}}}
52
che poi si riusano nel file di configurazione con:
53
{{{
54
$CONF['database_user'] = $_SERVER['DB_USER'];
55
$CONF['database_password'] = $_SERVER['DB_PASS'];
56
}}}
57
58 6 Amministratore Truelite
Fatto questo la creazione della struttura del database e delle relative informazioni (o l'aggiornamento di eventuali modifiche della struttura del database in caso di installazioni di versioni successive del software) si fa puntando il browser all'indirizzo:
59
{{{
60
http://IP.DEL.MIO.SERVER/postfixadmin/setup.php
61
}}}
62
che esegue lo script di setup che crea e popola le tabelle del database; anche qui le cose cambiano a seconda della versione, fino alla 2.2 questo script consente di modificare l'amministratore e deve essere rimosso dopo l'uso, con la 2.3 è previsto la generazione di una password per il setup, e se questa non è impostata lo script la richiede e poi scrive in output l'hash crittografico che corrisponde da inserire nella configurazione (il file precedente) alla linea:
63
{{{
64
$CONF['setup_password'] = 'changeme';
65 1 Amministratore Truelite
}}}
66 6 Amministratore Truelite
una volta fatta la modifica si potrà usare con successo il setup per la creazione di un utente di amministrazione, associato ad un indirizzo di posta, anch'esso installato nel database.  Si potrà verificare il funzionamento della configurazione collegandosi direttamente all'indirizzo {{{http://IP.DEL.MIO.SERVER/postfixadmin}}} controllando che l'utente di amministrazione impostato funzioni.
67
68 7 Amministratore Truelite
=== Configurare Postfix per Postfixadmin ===
69 6 Amministratore Truelite
70
Il passo successivo è configurare Postfix per fare uso degli utenti e delle mailbox definite su PostfixAdmin, installando il pacchetto {{{postfix}}} si abbia cura di rispondere alla configurazione automatica di utilizzare il profilo per il sito internet, specificando il proprio dominio principale. Per lo stoccaggio della posta si dovrà usare una directory apposita, la cui proprietà sarà di un utente dedicato; una volta che si sia scelto un filesystem con adeguato spazio, la si potrà creare con i comandi:
71
{{{
72
mkdir /home/vmail
73 1 Amministratore Truelite
adduser -r vmail
74
chown vmail /home/vmail/
75
chmod o-xr /home/vmail/
76 7 Amministratore Truelite
}}}
77
78 8 Amministratore Truelite
Poi si dovrà indicare a Postfix di usare i dati mantenuti su MySQL per le mailbox virtuali, per questo anzitutto si deve installare il pacchetto {{{postfix-mysql}}}, dopo di che si dovranno aggiungere le seguenti linee di configurazione al {{{main.cf}}}:
79 7 Amministratore Truelite
{{{
80
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
81
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
82
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
83
virtual_mailbox_base = /home/vmail
84
virtual_minimum_uid = vmail
85
virtual_transport = virtual
86
virtual_uid_maps = static:vmail
87
virtual_gid_maps = static:vmail
88
}}}
89
e si dovranno creare il vari file {{{mysql_*}}} con le configurazioni per l'uso del database, il primo file è quello che consente di utilizzare gli alias definiti nel database, e deve essere qualcosa del tipo:
90
{{{
91
user = postfixadmin
92 9 Amministratore Truelite
password = passsegretaedifficile
93 7 Amministratore Truelite
hosts = localhost
94
dbname = postfixadmin
95
query = SELECT goto FROM alias WHERE address='%s' AND active = 1
96
}}}
97
il secondo consente di ottenere l'elenco dei domini mantenuti nel database, e deve essere qualcosa del tipo:
98
{{{
99
user = postfixadmin
100 9 Amministratore Truelite
password = passsegretaedifficile
101 7 Amministratore Truelite
hosts = localhost
102
dbname = postfixadmin
103
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '0' and active = '1'
104
}}}
105
il terzo consente di ottenere le directory con le mailbox che saranno create a partire dalla directory di base, e deve essere qualcosa del tipo:
106
{{{
107
user = postfixadmin
108 9 Amministratore Truelite
password = passsegretaedifficile
109 7 Amministratore Truelite
hosts = localhost
110
dbname = postfixadmin
111
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1
112
}}}
113
114
Se poi si vogliono gestire con [http://postfixadmin.sourceforge.net/ PostfixAdmin] anche eventuali secondari di posta, si potrà aggiungere al {{{main.cf}}} di Postfix la riga:
115
{{{
116
relay_domains = $mydestination, proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf
117
}}}
118
dove in {{{mysql_relay_domains_maps.cf}}} dovrà essere qualcosa del tipo:
119
{{{
120
user = postfixadmin
121 9 Amministratore Truelite
password = passsegretaedifficile
122 7 Amministratore Truelite
hosts = localhost
123
dbname = postfixadmin
124
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1' and active = '1'
125 6 Amministratore Truelite
}}}