PostfixAdminInstall » Cronologia » Versione 45
Chiara Barbucci, 06-10-2016 14:21
1 | 37 | Simone Piccardi | h1. Installare e configurare _Postfixadmin_ |
---|---|---|---|
2 | 1 | Amministratore Truelite | |
3 | 43 | Chiara Barbucci | "PostfixAdmin":http://postfixadmin.sourceforge.net/ è 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. A partire da Debian Wheezy non è necessaria l'installazione manuale, il programma viene fornito con il pacchetto @postfixadmin@ l'installazione del quale esegue automaticamente (appoggiandosi a _debconf_ e _dbconfig-common_) le operazioni del paragrafo seguente che può essere ignorato. |
4 | 1 | Amministratore Truelite | |
5 | 42 | Simone Piccardi | h2. Installazione di _Postfixadmin_ manuale |
6 | 34 | Amministratore Truelite | |
7 | 44 | Chiara Barbucci | Fino a Squeeze 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 "questo indirizzo.":https://sourceforge.net/projects/postfixadmin/files/ . Una volta ottenuto il pacchetto sarà opportuno installare preventivamente le dipendenze, queste si ottengono con il comando: |
8 | 34 | Amministratore Truelite | |
9 | <pre> |
||
10 | dpkg -f postfixadmin_*.deb Depends |
||
11 | </pre> |
||
12 | 35 | Simone Piccardi | |
13 | 44 | Chiara Barbucci | 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 opportuno installare almeno i seguenti pacchetti: |
14 | 35 | Simone Piccardi | |
15 | 2 | Amministratore Truelite | <pre> |
16 | 34 | Amministratore Truelite | aptitude install dbconfig-common wwwconfig-common \ |
17 | 21 | Amministratore Truelite | libapache2-mod-php5 php5 php5-imap php5-mysql \ |
18 | 4 | Amministratore Truelite | mysql-client mysql-server postfix-mysql |
19 | 5 | Amministratore Truelite | </pre> |
20 | 34 | Amministratore Truelite | |
21 | 45 | Chiara Barbucci | A questo punto sarà necessario creare un database ad uso di "PostfixAdmin":http://postfixadmin.sourceforge.net/ ed un utente dotato di adeguati privilegi per poterlo utilizzare. Questo può essere fatto manualmente con le seguenti istruzioni: |
22 | 35 | Simone Piccardi | |
23 | 1 | Amministratore Truelite | <pre> |
24 | 34 | Amministratore Truelite | mysqladmin -u root -p create postfixadmin |
25 | 1 | Amministratore Truelite | mysql -u root -p |
26 | 15 | Amministratore Truelite | mysql> grant create, select, insert, update, delete, lock, index, alter, drop |
27 | on postfixadmin.* to 'postfixadmin'@'localhost' |
||
28 | 5 | Amministratore Truelite | identified by 'passsegretaedifficile'; |
29 | 1 | Amministratore Truelite | mysql> flush privileges; |
30 | mysql> \q |
||
31 | </pre> |
||
32 | 35 | Simone Piccardi | |
33 | 1 | Amministratore Truelite | dopo di che si potrà installare il pacchetto con: |
34 | 35 | Simone Piccardi | |
35 | 34 | Amministratore Truelite | <pre> |
36 | 1 | Amministratore Truelite | dpkg -i postfixadmin_*.deb |
37 | 34 | Amministratore Truelite | </pre> |
38 | 1 | Amministratore Truelite | |
39 | 35 | Simone Piccardi | 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ù). |
40 | |||
41 | 42 | Simone Piccardi | 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: |
42 | 35 | Simone Piccardi | |
43 | 1 | Amministratore Truelite | <pre> |
44 | $CONF['configured'] = true; |
||
45 | 6 | Amministratore Truelite | ... |
46 | 1 | Amministratore Truelite | $CONF['database_type'] = 'mysql'; |
47 | $CONF['database_host'] = 'localhost'; |
||
48 | $CONF['database_user'] = 'postfixadmin'; |
||
49 | $CONF['database_password'] = 'passsegretaedifficile'; |
||
50 | $CONF['database_name'] = 'postfixadmin'; |
||
51 | </pre> |
||
52 | 7 | Amministratore Truelite | |
53 | 35 | Simone Piccardi | 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 "PostfixAdmin":http://postfixadmin.sourceforge.net/, si ricordi però di rispondere, quando verrà richiesto, di installare la configurazione fornita dal pacchetto. |
54 | |||
55 | 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 _Virtual Host_ specifico per Postfixadmin (leggibile solo da root) in cui si impostano delle variabili di ambiente con le direttive: |
||
56 | |||
57 | 34 | Amministratore Truelite | <pre> |
58 | 35 | Simone Piccardi | SetEnv DB_USER "postfixadmin" |
59 | SetEnv DB_PASS "passsegretaedifficile" |
||
60 | 34 | Amministratore Truelite | </pre> |
61 | 35 | Simone Piccardi | |
62 | 34 | Amministratore Truelite | che poi si riusano nel file di configurazione con: |
63 | 35 | Simone Piccardi | |
64 | 34 | Amministratore Truelite | <pre> |
65 | 1 | Amministratore Truelite | $CONF['database_user'] = $_SERVER['DB_USER']; |
66 | $CONF['database_password'] = $_SERVER['DB_PASS']; |
||
67 | </pre> |
||
68 | |||
69 | 42 | Simone Piccardi | |
70 | h2. Configurazione di base di _Postfixadmin_ |
||
71 | |||
72 | Una volta eseguita l'installazione di base 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: |
||
73 | 35 | Simone Piccardi | |
74 | 1 | Amministratore Truelite | <pre> |
75 | 34 | Amministratore Truelite | http://IP.DEL.MIO.SERVER/postfixadmin/setup.php |
76 | 1 | Amministratore Truelite | </pre> |
77 | 35 | Simone Piccardi | |
78 | 1 | Amministratore Truelite | 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: |
79 | 35 | Simone Piccardi | |
80 | 1 | Amministratore Truelite | <pre> |
81 | 34 | Amministratore Truelite | $CONF['setup_password'] = 'changeme'; |
82 | 11 | Amministratore Truelite | </pre> |
83 | 1 | Amministratore Truelite | |
84 | 35 | Simone Piccardi | 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. |
85 | |||
86 | 34 | Amministratore Truelite | Una volta eseguita la configurazione di base e verificato che la connessione al database funziona, sarà necessario eseguire una serie di affinamenti; anzititto si dovrà impostare il programma per fare riferimento al proprio dominio, la cosa può essere fatto rapidamente con: |
87 | 35 | Simone Piccardi | |
88 | 34 | Amministratore Truelite | <pre> |
89 | 1 | Amministratore Truelite | cd /etc/postfixadmin/ |
90 | mv config.inc.php config.inc.php.orig |
||
91 | sed -e 's/change-this-to-your.domain.tld/miodominio.it/g' config.inc.php.orig > config.inc.php |
||
92 | </pre> |
||
93 | 35 | Simone Piccardi | |
94 | ma si verifichi poi il file per controllare che i link alle pagine web siano corretti (nel caso saranno sempre nella forma @http://miodominio.it@). Si dovranno poi modificare le seguenti configurazioni per avere le cartelle associate all'indirizzo @utente@miodominio.it@) nella forma @miodominio.it/utente@ (si dovrà usare la stessa forma anche nella configurazione del server IMAP): |
||
95 | |||
96 | 1 | Amministratore Truelite | <pre> |
97 | $CONF['domain_path'] = 'YES'; |
||
98 | $CONF['domain_in_mailbox'] = 'NO'; |
||
99 | </pre> |
||
100 | 35 | Simone Piccardi | |
101 | 1 | Amministratore Truelite | se poi si vogliono usare le quote occorrerà impostare: |
102 | 35 | Simone Piccardi | |
103 | 34 | Amministratore Truelite | <pre> |
104 | $CONF['quota'] = 'YES'; |
||
105 | </pre> |
||
106 | 35 | Simone Piccardi | |
107 | mentre per utilizzare @vacation@ sarà necessario impostare: |
||
108 | |||
109 | 34 | Amministratore Truelite | <pre> |
110 | $CONF['vacation'] = 'YES'; |
||
111 | 15 | Amministratore Truelite | $CONF['vacation_domain'] = 'autoreply.miodominio.it' |
112 | 1 | Amministratore Truelite | </pre> |
113 | |||
114 | 35 | Simone Piccardi | e configurare _Postfix_ per usare @autoreplay.miodominio.it@ come dominio per gestire @vacation@ (torneremo su questo nel seguito). |
115 | |||
116 | 6 | Amministratore Truelite | Si possono poi cambiare le seguenti impostazioni per inserire dei default più adatti alle proprie esigenze: |
117 | 35 | Simone Piccardi | |
118 | 1 | Amministratore Truelite | <pre> |
119 | 34 | Amministratore Truelite | $CONF['default_language'] = 'it'; |
120 | 1 | Amministratore Truelite | $CONF['min_password_length'] = 6; |
121 | $CONF['aliases'] = '10'; |
||
122 | $CONF['mailboxes'] = '10'; |
||
123 | 18 | Amministratore Truelite | $CONF['maxquota'] = '10'; |
124 | 34 | Amministratore Truelite | </pre> |
125 | 7 | Amministratore Truelite | |
126 | 35 | Simone Piccardi | Se si installa la versione 2.3 si tenga conto che questa permette anche di utilizzare una gestione semplificata per avere gli stessi alias su più domini, che però richiede più interrogazioni al database ed una diversa configurazione di postfix; se non si ha questa necessità è meglio non usarla e questa andrà disabilitata con: |
127 | |||
128 | 34 | Amministratore Truelite | <pre> |
129 | 1 | Amministratore Truelite | $CONF['alias_domain'] = 'NO'; |
130 | 32 | Amministratore Truelite | </pre> |
131 | 1 | Amministratore Truelite | |
132 | 37 | Simone Piccardi | h2. Configurare _Postfix_ per _Postfixadmin_ |
133 | 34 | Amministratore Truelite | |
134 | 35 | Simone Piccardi | 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: |
135 | 34 | Amministratore Truelite | |
136 | 1 | Amministratore Truelite | <pre> |
137 | mkdir /var/mail/vmail |
||
138 | useradd -d /var/mail/vmail vmail |
||
139 | chown vmail:vmail /var/mail/vmail/ |
||
140 | chmod o-xr /var/mail/vmail/ |
||
141 | 24 | Amministratore Truelite | </pre> |
142 | 1 | Amministratore Truelite | |
143 | 35 | Simone Piccardi | Si deve inoltre evitare l'uso di procmail come LDA per cui si dovrà commentare la seguente linea standard presente nella configurazione di _Postfix_ installata da Debian: |
144 | |||
145 | 34 | Amministratore Truelite | <pre> |
146 | 1 | Amministratore Truelite | #mailbox_command = procmail -a "$EXTENSION" |
147 | 24 | Amministratore Truelite | </pre> |
148 | 1 | Amministratore Truelite | |
149 | 35 | Simone Piccardi | 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@: |
150 | |||
151 | 34 | Amministratore Truelite | <pre> |
152 | virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf |
||
153 | 9 | Amministratore Truelite | virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf |
154 | 1 | Amministratore Truelite | virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf |
155 | virtual_mailbox_base = /var/mail/vmail |
||
156 | virtual_minimum_uid = 106 |
||
157 | 7 | Amministratore Truelite | virtual_transport = virtual |
158 | 1 | Amministratore Truelite | virtual_uid_maps = static:106 |
159 | 7 | Amministratore Truelite | virtual_gid_maps = static:61 |
160 | 34 | Amministratore Truelite | </pre> |
161 | 1 | Amministratore Truelite | |
162 | 36 | Simone Piccardi | dove 106 e 61 sono rispettivamente uid e gid dell'utente @vmail@, questi possono essere diversi su ciascuna installazione si possono trovare con il comando @getent passwd|grep vmail@. |
163 | 35 | Simone Piccardi | |
164 | 36 | Simone Piccardi | Si dovranno inoltre creare il vari file @mysql_*@ con le configurazioni per l'uso del database, il primo file, @mysql_virtual_alias_maps.cf@, è quello che consente di utilizzare gli alias definiti nel database, e deve essere qualcosa del tipo: |
165 | 35 | Simone Piccardi | |
166 | 1 | Amministratore Truelite | <pre> |
167 | user = postfixadmin |
||
168 | password = passsegretaedifficile |
||
169 | hosts = localhost |
||
170 | dbname = postfixadmin |
||
171 | query = SELECT goto FROM alias WHERE address='%s' AND active = 1 |
||
172 | </pre> |
||
173 | 35 | Simone Piccardi | |
174 | 36 | Simone Piccardi | il secondo, @mysql_virtual_domains_maps.cf@, consente di ottenere l'elenco dei domini mantenuti nel database, e deve essere qualcosa del tipo: |
175 | 35 | Simone Piccardi | |
176 | 34 | Amministratore Truelite | <pre> |
177 | 1 | Amministratore Truelite | user = postfixadmin |
178 | password = passsegretaedifficile |
||
179 | hosts = localhost |
||
180 | dbname = postfixadmin |
||
181 | 34 | Amministratore Truelite | query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '0' and active = '1' |
182 | 1 | Amministratore Truelite | </pre> |
183 | 35 | Simone Piccardi | |
184 | 36 | Simone Piccardi | il terzo, @mysql_virtual_mailbox_maps.cf@, consente di ottenere le directory con le mailbox che saranno create a partire dalla directory di base @/var/mail/vmail@, e deve essere qualcosa del tipo: |
185 | 35 | Simone Piccardi | |
186 | 31 | Amministratore Truelite | <pre> |
187 | 1 | Amministratore Truelite | user = postfixadmin |
188 | password = passsegretaedifficile |
||
189 | hosts = localhost |
||
190 | dbname = postfixadmin |
||
191 | query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1 |
||
192 | </pre> |
||
193 | 26 | Amministratore Truelite | |
194 | 35 | Simone Piccardi | Se poi si vogliono gestire con _PostfixAdmin_ anche eventuali secondari di posta, si potrà aggiungere al @main.cf@ di Postfix la riga: |
195 | |||
196 | 1 | Amministratore Truelite | <pre> |
197 | relay_domains = $mydestination, proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf |
||
198 | 34 | Amministratore Truelite | </pre> |
199 | 35 | Simone Piccardi | |
200 | dove in @mysql_relay_domains_maps.cf@ ci dovrà essere qualcosa del tipo: |
||
201 | |||
202 | 1 | Amministratore Truelite | <pre> |
203 | 15 | Amministratore Truelite | user = postfixadmin |
204 | 1 | Amministratore Truelite | password = passsegretaedifficile |
205 | 15 | Amministratore Truelite | hosts = localhost |
206 | dbname = postfixadmin |
||
207 | 34 | Amministratore Truelite | query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1' and active = '1' |
208 | 15 | Amministratore Truelite | </pre> |
209 | 1 | Amministratore Truelite | |
210 | Poiché questi file contengono una password in chiaro si verifichi che non siano leggibili da chiunque ed eventualmente si sistemino adeguatamente i permessi con: |
||
211 | 35 | Simone Piccardi | |
212 | 1 | Amministratore Truelite | <pre> |
213 | 15 | Amministratore Truelite | chgrp postfix /etc/postfix/mysql_* |
214 | 1 | Amministratore Truelite | chmod 640 /etc/postfix/mysql_* |
215 | </pre> |
||
216 | 34 | Amministratore Truelite | |
217 | 35 | Simone Piccardi | A questo punto sarà possibile spedire una email ad un utente creato con Postfixadmi e verificarne la corretta ricezione nei log di @/var/log/mail.log@. |
218 | 34 | Amministratore Truelite | |
219 | 37 | Simone Piccardi | h2. Uso di _vacation_ con _Postfix_ e _Postfixadmin_ |
220 | 34 | Amministratore Truelite | |
221 | 37 | Simone Piccardi | Se si è scelto di usare _vacation_ la configurazione diventa leggermente più complessa, anzitutto si deve creare un utente apposito per la gestione dei delle risposte automatiche, questo lo si può fare con i seguenti comandi che assicurano che l'utente abbia i minimi privilegi: |
222 | 15 | Amministratore Truelite | |
223 | 34 | Amministratore Truelite | <pre> |
224 | 15 | Amministratore Truelite | groupadd -g 65501 vacation |
225 | 34 | Amministratore Truelite | useradd -g 65501 -u 65501 -c Vacation -s /sbin/nologin -d /nonexistent vacation |
226 | 1 | Amministratore Truelite | </pre> |
227 | 35 | Simone Piccardi | |
228 | 34 | Amministratore Truelite | dopo di che si dovrà creare una directory ad accesso esclusivo di questo utente dove saranno mantenuti anche i suoi file temporanei, questo si fa con i comandi: |
229 | 35 | Simone Piccardi | |
230 | 1 | Amministratore Truelite | <pre> |
231 | mkdir /var/spool/vacation |
||
232 | 34 | Amministratore Truelite | chown -R vacation.vacation /var/spool/vacation |
233 | 1 | Amministratore Truelite | chmod o-xr /var/spool/vacation |
234 | 16 | Amministratore Truelite | </pre> |
235 | 35 | Simone Piccardi | |
236 | 1 | Amministratore Truelite | infine si dovrà copiare lo script perl fornito con "PostfixAdmin":http://postfixadmin.sourceforge.net/ nella suddetta directory e renderlo eseguibile: |
237 | 35 | Simone Piccardi | |
238 | 16 | Amministratore Truelite | <pre> |
239 | cd /usr/share/doc/postfixadmin/examples/VIRTUAL_VACATION/ |
||
240 | 1 | Amministratore Truelite | zcat vacation.pl.gz > /var/spool/vacation/vacation.pl |
241 | chmod 700 /var/spool/vacation/vacation.pl |
||
242 | chown vacation.vacation /var/spool/vacation/vacation.pl |
||
243 | </pre> |
||
244 | 35 | Simone Piccardi | |
245 | per farlo funzionare sono però necessari una serie di moduli per il Perl, che si dovranno installare con: |
||
246 | |||
247 | 1 | Amministratore Truelite | <pre> |
248 | 34 | Amministratore Truelite | aptitude install libemail-valid-perl libmime-encwords-perl libmime-perl \ |
249 | 40 | Simone Piccardi | libmail-sender-perl liblog-log4perl-perl libmail-sendmail-perl |
250 | 16 | Amministratore Truelite | </pre> |
251 | 35 | Simone Piccardi | |
252 | 41 | Simone Piccardi | inoltre si dovranno modificare le prime righe dello script (o per le versioni più recenti metterle nel file @/etc/postfixadmin/vacation.conf@) dove sono impostate le credenziali di accesso al database, con qualcosa del genere: |
253 | 35 | Simone Piccardi | |
254 | 16 | Amministratore Truelite | <pre> |
255 | 1 | Amministratore Truelite | our $db_type = 'mysql'; |
256 | our $db_host = 'localhost'; |
||
257 | our $db_username = 'postfixadmin'; |
||
258 | our $db_password = 'passsegretaedifficile'; |
||
259 | 16 | Amministratore Truelite | our $db_name = 'postfixadmin'; |
260 | 34 | Amministratore Truelite | |
261 | 10 | Amministratore Truelite | our $vacation_domain = 'autoreply.miodominio.it'; |
262 | 1 | Amministratore Truelite | </pre> |
263 | 41 | Simone Piccardi | |
264 | 1 | Amministratore Truelite | |
265 | 37 | Simone Piccardi | Occorre poi eseguire una configurazione ulteriore di Postfix, anzitutto occorre definire un nuovo tipo di trasporto ad uso di _vacation_, aggiungendo le righe seguenti a @/etc/postfix/master.cf@: |
266 | 35 | Simone Piccardi | |
267 | 1 | Amministratore Truelite | <pre> |
268 | 34 | Amministratore Truelite | vacation unix - n n - - pipe |
269 | flags=Rq user=vacation argv=/var/spool/vacation/vacation.pl -f ${sender} -- ${recipient} |
||
270 | 10 | Amministratore Truelite | </pre> |
271 | 35 | Simone Piccardi | |
272 | dopo di che si dovrà utilizzarlo per il trasporto delle email indirizzate ad @autoreply.miodominio.it@, definendo dentro @/etc/postfix/transport@: |
||
273 | |||
274 | 10 | Amministratore Truelite | <pre> |
275 | 1 | Amministratore Truelite | autoreply.miodominio.it vacation: |
276 | </pre> |
||
277 | 35 | Simone Piccardi | |
278 | ed infine aggiungere a @/etc/postfix/main.cf@: |
||
279 | |||
280 | 34 | Amministratore Truelite | <pre> |
281 | 10 | Amministratore Truelite | transport_maps = hash:/etc/postfix/transport |
282 | 34 | Amministratore Truelite | </pre> |
283 | 35 | Simone Piccardi | |
284 | 1 | Amministratore Truelite | fatto questo si dovrà fare usare a Postfix la nuova configurazione con: |
285 | 35 | Simone Piccardi | |
286 | 1 | Amministratore Truelite | <pre> |
287 | postmap /etc/postfix/transport |
||
288 | 10 | Amministratore Truelite | postfix reload |
289 | 34 | Amministratore Truelite | </pre> |
290 | |||
291 | 35 | Simone Piccardi | h2. Configurare _Dovecot_ per _Postfixadmin_ |
292 | 34 | Amministratore Truelite | |
293 | 35 | Simone Piccardi | Per l'accesso alla posta mantenuta da _Postfixadmin_ è necessario un server IMAP, vedremo allora come configurare _Dovecot_ che fornisce comunque anche l'accesso con POP, ed il tutto sia in chiaro che con cifratura sotto SSL. Si inizi anzitutto con l'installare le varie componenti di _Dovecot_, questo si fa al solito con (si aggiunga sempre @ntp@ perché _Dovecot_ non gradisce situazioni in cui il tempo ha dei movimenti all'indietro): |
294 | 34 | Amministratore Truelite | |
295 | <pre> |
||
296 | aptitude install dovecot-imapd dovecot-pop3d ntp |
||
297 | 1 | Amministratore Truelite | </pre> |
298 | 35 | Simone Piccardi | |
299 | 37 | Simone Piccardi | la configurazione di base dovrà essere modificata anzitutto per il fatto che la posta deve essere trovate in delle maildir a partire dalla directory @/var/mail/vmail@ nella forma @mydomain.it/username@ ed acceduta con l'utente @vmail@ creato in precedenza. Nel nostro caso questo comporta la modifica delle seguenti righe de file di configurazione principale che è @/etc/dovecot/dovecot.conf@: |
300 | 35 | Simone Piccardi | |
301 | 1 | Amministratore Truelite | <pre> |
302 | mail_location = maildir:/var/mail/vmail/%d/%n |
||
303 | 34 | Amministratore Truelite | mail_privileged_group = vmail |
304 | first_valid_uid = 106 |
||
305 | 1 | Amministratore Truelite | </pre> |
306 | |||
307 | 35 | Simone Piccardi | (dove 106 è l'uid dell'utente @vmail@). |
308 | |||
309 | Occorre poi disabilitare l'autenticazione sugli utenti locali (via PAM) ed utilizzare i dati di MySQL, questo comporta la sostituzione delle direttive @userdb@ e @passdb@ che fan riferimento a PAM con le seguenti che indicano il file da usare per i parametri di accesso al database: |
||
310 | |||
311 | 27 | Amministratore Truelite | <pre> |
312 | 1 | Amministratore Truelite | passdb sql { |
313 | args = /etc/dovecot/dovecot-mysql.conf |
||
314 | 27 | Amministratore Truelite | } |
315 | userdb sql { |
||
316 | args = /etc/dovecot/dovecot-mysql.conf |
||
317 | } |
||
318 | 1 | Amministratore Truelite | </pre> |
319 | 35 | Simone Piccardi | |
320 | ed infine dovremo inserire nel file @/etc/dovecot/dovecot-mysql.conf@ le necessarie configurazioni per l'accesso al database ed ai relativi dati, con un contenuto del tipo di: |
||
321 | |||
322 | 34 | Amministratore Truelite | <pre> |
323 | driver = mysql |
||
324 | 27 | Amministratore Truelite | connect = host=localhost dbname=postfixadmin user=postfixadmin password=passsegretaedifficile client_flags=0 |
325 | 1 | Amministratore Truelite | default_pass_scheme = MD5 |
326 | 27 | Amministratore Truelite | user_query = SELECT maildir, 106 AS uid, 61 AS gid FROM mailbox WHERE username = '%u' |
327 | 1 | Amministratore Truelite | password_query = SELECT password FROM mailbox WHERE username = '%u' AND active = '1' |
328 | 30 | Amministratore Truelite | </pre> |
329 | |||
330 | 35 | Simone Piccardi | (dove 106 e 61 sono _uid_ e _gid_ dell'utente @vmail@). |
331 | 34 | Amministratore Truelite | |
332 | 35 | Simone Piccardi | h2. Autenticazione SMTP |
333 | 30 | Amministratore Truelite | |
334 | 35 | Simone Piccardi | L'autenticazione delle sessioni SMTP può essere eseguita da Postfix rivolgendosi direttamente al servizio fornito da Dovecot attraverso un socket. Per fare tutto ciò il primo passo è quello di configurare Dovecot perché metta a disposizione il socket nel chroot di Postfix; questo si ottiene aggiungendo le seguenti righe a /etc/dovecot/dovecot.conf: |
335 | 30 | Amministratore Truelite | |
336 | 1 | Amministratore Truelite | <pre> |
337 | socket listen { |
||
338 | client { |
||
339 | 34 | Amministratore Truelite | path = /var/spool/postfix/private/auth |
340 | mode = 0660 |
||
341 | user = postfix |
||
342 | group = postfix |
||
343 | } |
||
344 | 27 | Amministratore Truelite | } |
345 | </pre> |
||
346 | 35 | Simone Piccardi | |
347 | e poi bisogna anche, per consentire l'accesso a client bacati come Outlook, modificare la riga dei mechanisms in @/etc/dovecot/dovecot.conf@ come di seguito: |
||
348 | |||
349 | 1 | Amministratore Truelite | <pre> |
350 | 27 | Amministratore Truelite | auth default { |
351 | ... |
||
352 | mechanisms = plain login |
||
353 | 34 | Amministratore Truelite | ... |
354 | } |
||
355 | </pre> |
||
356 | 35 | Simone Piccardi | |
357 | e dopo aver riavviato Dovecot si otterrà il socket all'interno del _chroot_ di Postfix come @private/auth@, come si potrà verificare con il comando: |
||
358 | |||
359 | 27 | Amministratore Truelite | <pre> |
360 | # ls /var/spool/postfix/private/auth -l |
||
361 | srw-rw---- 1 postfix postfix 0 29 set 18:59 /var/spool/postfix/private/auth |
||
362 | 34 | Amministratore Truelite | </pre> |
363 | |||
364 | 35 | Simone Piccardi | Il secondo passo è configurare Postfix per usare questo socket, basterà aggiungere a @/etc/postfix/main.cf@ le linee seguenti: |
365 | |||
366 | 27 | Amministratore Truelite | <pre> |
367 | 34 | Amministratore Truelite | smtpd_sasl_type = dovecot |
368 | 27 | Amministratore Truelite | smtpd_sasl_path = private/auth |
369 | 34 | Amministratore Truelite | </pre> |
370 | |||
371 | 35 | Simone Piccardi | Tutto il resto è la ordinaria configurazione di Postfix per abilitare l'uso di sessioni autenticate, e per far si che queste avvengano con connessioni cifrate sotto TLS; l'autenticazione si abilita aggiungendo a @/etc/postfix/main.cf@ le righe seguenti: |
372 | |||
373 | 34 | Amministratore Truelite | <pre> |
374 | 27 | Amministratore Truelite | smtpd_sasl_auth_enable = yes |
375 | 34 | Amministratore Truelite | smtp_sasl_application_name = smtpd |
376 | smtpd_sasl_local_domain = $myhostname |
||
377 | 27 | Amministratore Truelite | broken_sasl_auth_clients = yes |
378 | </pre> |
||
379 | 35 | Simone Piccardi | |
380 | 27 | Amministratore Truelite | mentre l'uso di TLS con le righe seguenti: |
381 | 35 | Simone Piccardi | |
382 | 1 | Amministratore Truelite | <pre> |
383 | 34 | Amministratore Truelite | smtpd_use_tls = yes |
384 | 1 | Amministratore Truelite | smtpd_tls_auth_only = yes |
385 | smtpd_tls_loglevel = 1 |
||
386 | smtpd_tls_received_header = yes |
||
387 | smtpd_tls_session_cache_timeout = 3600s |
||
388 | tls_random_source = dev:/dev/urandom |
||
389 | </pre> |
||
390 | 35 | Simone Piccardi | |
391 | infine si deve dare l'accesso in spedizione agli utenti aggiungendo la direttiva @permit_sasl_authenticated@ al parametro @smtpd_recipient_restrictions@ che dovrà essere qualcosa del tipo: |
||
392 | |||
393 | 1 | Amministratore Truelite | <pre> |
394 | smtpd_recipient_restrictions = |
||
395 | permit_mynetworks, |
||
396 | permit_sasl_authenticated, |
||
397 | reject_rbl_client zen.spamhaus.org, |
||
398 | reject_non_fqdn_sender, |
||
399 | reject_non_fqdn_recipient, |
||
400 | reject_unknown_sender_domain, |
||
401 | 34 | Amministratore Truelite | reject_unauth_destination |
402 | 1 | Amministratore Truelite | </pre> |
403 | 34 | Amministratore Truelite | |
404 | |||
405 | 35 | Simone Piccardi | h2. CLI script to massive account creation |
406 | 38 | Simone Piccardi | |
407 | _Postfixadmin_ è un'ottima interfaccia di gestione utenti e domini via web, ma come tutte le interfacce grafiche non è tanto pratica quando si tratta di creare centinaia di account in una sola volta. Per questo motivo abbiamo sviluppato un semplice script in _Python_ che consente di eseguire creazioni di massa, disponibile a "questo indirizzo":http://labs.truelite.it/attachments/82/inspostadmusers.py. Il suo limite principale è che può essere usato soltanto se il database di appoggio per PostfixAdmin è MySQL. |
||
408 | |||
409 | Lo script è relativamente semplice da usare, richiede un file CSV con la lista degli account. Dovrebbe lavorare con qualunque tipo di CSV, ma è stato controllato solo con l'output di OpenOffice Calc. La prima riga del file deve contenere i nomi delle colonne e lo script prenderà in considerazione soltanto le colonne con nomi _user_, _domain_, _password_ e _name_ il cui significato è illustrato nella tabella seguente: |
||
410 | |||
411 | |_.Colonna |_.Significato| |
||
412 | |user | parte utente dell'email (come user in @user@domain.com@)| |
||
413 | |password | password in chiaro| |
||
414 | |domain | nome a dominio (come '@domain.com@')| |
||
415 | |name | Nome completo ('Nome Cognome')| |
||
416 | |||
417 | E' necessario fornire almeno le colonne _user_, _domain_ e _password_ e lo script inizializzerà opportunamente le tabelle del database. Gli utenti di posta saranno nella forma @user@domain@ con la password presa dalla colonna omonima. Se non esistenti verranno creati automaticamente anche i domini citati nel file e, specificando l'opzione @-A@, verranno creati anche gli account di default (abuse, hostmaster, postmaster, webmaster) per ciascun dominio. |
||
418 | |||
419 | Lo script richiede un solo argomento, il nome del file CSV, e l'opzione @-p@ seguita dalla password di accesso per il database (cioè secondo le istruzioni precedenti, "passsegretaedifficile"). Ci sono ulteriori opzioni per impostare il nome del database, il relativo utente, l'indirizzo a cui connettersi, ecc. ma i valori di default dovrebbero essere già a posto essendo gli stessi usati dal pacchetto di PostfixAdmin. La lista completa delle opzioni può comunque essere stampata invocando lo script senza argomenti o con l'opzione @-h@. |
||
420 | |||
421 | Lo script non effettua nessuna validazione dei dati, pertanto è pubblicato senza garanzie sotto licenza GPL. Questo significa che fare un backup del database prima di usarlo sarebbe quantomai opportuno. Lo script stamperà un messaggio di errore se alcuni account o domini sono già presenti nel database, saltando la relativa creazione (non verranno cioè sovrascritti) ma proseguirà nella creazione degli altri account o domini non esistenti. Salterà anche la creazione di qualunque account duplicato. |