PostfixAdminInstall » Cronologia » Versione 34
Amministratore Truelite, 10-12-2010 13:07
1 | 1 | Amministratore Truelite | [[TracNav(TOC)]] |
---|---|---|---|
2 | |||
3 | |||
4 | 34 | Amministratore Truelite | h2. Installare e configurare Postfixadmin |
5 | 1 | Amministratore Truelite | |
6 | |||
7 | 34 | Amministratore Truelite | <pre> |
8 | |||
9 | |||
10 | h3. Installazione di Postfixadmin |
||
11 | |||
12 | |||
13 | <pre> |
||
14 | <pre> |
||
15 | 1 | Amministratore Truelite | dpkg -f postfixadmin_*.deb Depends |
16 | 34 | Amministratore Truelite | </pre> |
17 | 2 | Amministratore Truelite | 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: |
18 | 34 | Amministratore Truelite | <pre> |
19 | 21 | Amministratore Truelite | aptitude install dbconfig-common wwwconfig-common \ |
20 | 4 | Amministratore Truelite | libapache2-mod-php5 php5 php5-imap php5-mysql \ |
21 | 5 | Amministratore Truelite | mysql-client mysql-server postfix-mysql |
22 | 34 | Amministratore Truelite | </pre> |
23 | 1 | Amministratore Truelite | |
24 | 34 | Amministratore Truelite | 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: |
25 | <pre> |
||
26 | 15 | Amministratore Truelite | mysqladmin -u root -p create postfixadmin |
27 | mysql -u root -p |
||
28 | 5 | Amministratore Truelite | mysql> grant create, select, insert, update, delete, lock, index, alter, drop |
29 | 1 | Amministratore Truelite | on postfixadmin.* to 'postfixadmin'@'localhost' |
30 | identified by 'passsegretaedifficile'; |
||
31 | mysql> flush privileges; |
||
32 | mysql> \q |
||
33 | 34 | Amministratore Truelite | </pre> |
34 | 1 | Amministratore Truelite | dopo di che si potrà installare il pacchetto con: |
35 | 34 | Amministratore Truelite | <pre> |
36 | 1 | Amministratore Truelite | dpkg -i postfixadmin_*.deb |
37 | 34 | Amministratore Truelite | </pre> |
38 | <pre> |
||
39 | 1 | Amministratore Truelite | |
40 | 34 | Amministratore Truelite | <pre> |
41 | <pre> |
||
42 | 6 | Amministratore Truelite | $CONF['configured'] = true; |
43 | 1 | Amministratore Truelite | ... |
44 | $CONF['database_type'] = 'mysql'; |
||
45 | $CONF['database_host'] = 'localhost'; |
||
46 | $CONF['database_user'] = 'postfixadmin'; |
||
47 | 7 | Amministratore Truelite | $CONF['database_password'] = 'passsegretaedifficile'; |
48 | 1 | Amministratore Truelite | $CONF['database_name'] = 'postfixadmin'; |
49 | 34 | Amministratore Truelite | </pre> |
50 | 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. |
||
51 | 1 | Amministratore Truelite | |
52 | 34 | 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: |
53 | <pre> |
||
54 | [[SetEnv]] DB_USER "postfixadmin" |
||
55 | [[SetEnv]] DB_PASS "passsegretaedifficile" |
||
56 | </pre> |
||
57 | 6 | Amministratore Truelite | che poi si riusano nel file di configurazione con: |
58 | 34 | Amministratore Truelite | <pre> |
59 | 1 | Amministratore Truelite | $CONF['database_user'] = $_SERVER['DB_USER']; |
60 | $CONF['database_password'] = $_SERVER['DB_PASS']; |
||
61 | 34 | Amministratore Truelite | </pre> |
62 | 1 | Amministratore Truelite | |
63 | 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: |
||
64 | 34 | Amministratore Truelite | <pre> |
65 | 1 | Amministratore Truelite | http://IP.DEL.MIO.SERVER/postfixadmin/setup.php |
66 | 34 | Amministratore Truelite | </pre> |
67 | 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: |
68 | 34 | Amministratore Truelite | <pre> |
69 | 11 | Amministratore Truelite | $CONF['setup_password'] = 'changeme'; |
70 | 34 | Amministratore Truelite | </pre> |
71 | <pre> |
||
72 | 11 | Amministratore Truelite | |
73 | 1 | 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: |
74 | 34 | Amministratore Truelite | <pre> |
75 | 1 | Amministratore Truelite | cd /etc/postfixadmin/ |
76 | 11 | Amministratore Truelite | mv config.inc.php config.inc.php.orig |
77 | 1 | Amministratore Truelite | sed -e 's/change-this-to-your.domain.tld/miodominio.it/g' config.inc.php.orig > config.inc.php |
78 | 34 | Amministratore Truelite | </pre> |
79 | <pre> |
||
80 | <pre> |
||
81 | 1 | Amministratore Truelite | $CONF['domain_path'] = 'YES'; |
82 | $CONF['domain_in_mailbox'] = 'NO'; |
||
83 | 34 | Amministratore Truelite | </pre> |
84 | 1 | Amministratore Truelite | se poi si vogliono usare le quote occorrerà impostare: |
85 | 34 | Amministratore Truelite | <pre> |
86 | 1 | Amministratore Truelite | $CONF['quota'] = 'YES'; |
87 | 34 | Amministratore Truelite | </pre> |
88 | <pre> |
||
89 | <pre> |
||
90 | 1 | Amministratore Truelite | $CONF['vacation'] = 'YES'; |
91 | 13 | Amministratore Truelite | $CONF['vacation_domain'] = 'autoreply.miodominio.it' |
92 | 34 | Amministratore Truelite | </pre> |
93 | <pre> |
||
94 | 15 | Amministratore Truelite | |
95 | 1 | Amministratore Truelite | Si possono poi cambiare le seguenti impostazioni per inserire dei default più adatti alle proprie esigenze: |
96 | 34 | Amministratore Truelite | <pre> |
97 | 13 | Amministratore Truelite | $CONF['default_language'] = 'it'; |
98 | 6 | Amministratore Truelite | $CONF['min_password_length'] = 6; |
99 | $CONF['aliases'] = '10'; |
||
100 | 18 | Amministratore Truelite | $CONF['mailboxes'] = '10'; |
101 | 1 | Amministratore Truelite | $CONF['maxquota'] = '10'; |
102 | 34 | Amministratore Truelite | </pre> |
103 | 1 | Amministratore Truelite | |
104 | 18 | Amministratore Truelite | 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; questa andrà disabilitata con: |
105 | 34 | Amministratore Truelite | <pre> |
106 | 7 | Amministratore Truelite | $CONF['alias_domain'] = 'NO'; |
107 | 34 | Amministratore Truelite | </pre> |
108 | 1 | Amministratore Truelite | |
109 | 32 | Amministratore Truelite | |
110 | 1 | Amministratore Truelite | |
111 | 34 | Amministratore Truelite | h3. Configurare Postfix per Postfixadmin |
112 | |||
113 | |||
114 | <pre> |
||
115 | <pre> |
||
116 | 1 | Amministratore Truelite | mkdir /var/mail/vmail |
117 | useradd -d /var/mail/vmail vmail |
||
118 | 24 | Amministratore Truelite | chown vmail:vmail /var/mail/vmail/ |
119 | 1 | Amministratore Truelite | chmod o-xr /var/mail/vmail/ |
120 | 34 | Amministratore Truelite | </pre> |
121 | 1 | Amministratore Truelite | |
122 | 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: |
||
123 | 34 | Amministratore Truelite | <pre> |
124 | 24 | Amministratore Truelite | #mailbox_command = procmail -a "$EXTENSION" |
125 | 34 | Amministratore Truelite | </pre> |
126 | 7 | Amministratore Truelite | |
127 | 34 | Amministratore Truelite | <pre> |
128 | <pre> |
||
129 | 9 | Amministratore Truelite | virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf |
130 | 1 | Amministratore Truelite | virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf |
131 | virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf |
||
132 | 7 | Amministratore Truelite | virtual_mailbox_base = /var/mail/vmail |
133 | virtual_minimum_uid = 106 |
||
134 | virtual_transport = virtual |
||
135 | virtual_uid_maps = static:106 |
||
136 | virtual_gid_maps = static:61 |
||
137 | 34 | Amministratore Truelite | </pre> |
138 | <pre> |
||
139 | 1 | Amministratore Truelite | |
140 | 34 | Amministratore Truelite | <pre> |
141 | <pre> |
||
142 | 1 | Amministratore Truelite | user = postfixadmin |
143 | password = passsegretaedifficile |
||
144 | hosts = localhost |
||
145 | dbname = postfixadmin |
||
146 | query = SELECT goto FROM alias WHERE address='%s' AND active = 1 |
||
147 | 34 | Amministratore Truelite | </pre> |
148 | 1 | Amministratore Truelite | il secondo consente di ottenere l'elenco dei domini mantenuti nel database, e deve essere qualcosa del tipo: |
149 | 34 | Amministratore Truelite | <pre> |
150 | 1 | Amministratore Truelite | user = postfixadmin |
151 | password = passsegretaedifficile |
||
152 | hosts = localhost |
||
153 | dbname = postfixadmin |
||
154 | query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '0' and active = '1' |
||
155 | 34 | Amministratore Truelite | </pre> |
156 | 1 | Amministratore Truelite | 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: |
157 | 34 | Amministratore Truelite | <pre> |
158 | 31 | Amministratore Truelite | user = postfixadmin |
159 | password = passsegretaedifficile |
||
160 | 1 | Amministratore Truelite | hosts = localhost |
161 | dbname = postfixadmin |
||
162 | query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1 |
||
163 | 34 | Amministratore Truelite | </pre> |
164 | 26 | Amministratore Truelite | |
165 | 34 | Amministratore Truelite | <pre> |
166 | <pre> |
||
167 | 1 | Amministratore Truelite | relay_domains = $mydestination, proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf |
168 | 34 | Amministratore Truelite | </pre> |
169 | <pre> |
||
170 | <pre> |
||
171 | 1 | Amministratore Truelite | user = postfixadmin |
172 | password = passsegretaedifficile |
||
173 | 15 | Amministratore Truelite | hosts = localhost |
174 | dbname = postfixadmin |
||
175 | query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1' and active = '1' |
||
176 | 34 | Amministratore Truelite | </pre> |
177 | 15 | Amministratore Truelite | |
178 | 1 | Amministratore Truelite | Poiché questi file contengono una password in chiaro si verifichi che non siano leggibili da chiunque ed eventualmente si sistemino adeguatamente i permessi con: |
179 | 34 | Amministratore Truelite | <pre> |
180 | 1 | Amministratore Truelite | chgrp postfix /etc/postfix/mysql_* |
181 | 15 | Amministratore Truelite | chmod 640 /etc/postfix/mysql_* |
182 | 34 | Amministratore Truelite | </pre> |
183 | 15 | Amministratore Truelite | |
184 | 34 | Amministratore Truelite | <pre> |
185 | 1 | Amministratore Truelite | |
186 | |||
187 | 34 | Amministratore Truelite | h3. Uso di vacation con Postfix e Postfixadmin |
188 | |||
189 | |||
190 | <pre> |
||
191 | <pre> |
||
192 | 1 | Amministratore Truelite | groupadd -g 65501 vacation |
193 | 15 | Amministratore Truelite | useradd -g 65501 -u 65501 -c Vacation -s /sbin/nologin -d /nonexistent vacation |
194 | 34 | Amministratore Truelite | </pre> |
195 | 15 | 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: |
196 | 34 | Amministratore Truelite | <pre> |
197 | 1 | Amministratore Truelite | mkdir /var/spool/vacation |
198 | 15 | Amministratore Truelite | chown -R vacation.vacation /var/spool/vacation |
199 | chmod o-xr /var/spool/vacation |
||
200 | 34 | Amministratore Truelite | </pre> |
201 | infine si dovrà copiare lo script perl fornito con "PostfixAdmin":http://postfixadmin.sourceforge.net/ nella suddetta directory e renderlo eseguibile: |
||
202 | <pre> |
||
203 | 1 | Amministratore Truelite | cd /usr/share/doc/postfixadmin/examples/VIRTUAL_VACATION/ |
204 | 16 | Amministratore Truelite | zcat vacation.pl.gz > /var/spool/vacation/vacation.pl |
205 | chmod 700 /var/spool/vacation/vacation.pl |
||
206 | chown vacation.vacation /var/spool/vacation/vacation.pl |
||
207 | 34 | Amministratore Truelite | </pre> |
208 | 16 | Amministratore Truelite | per farlo funzionare sono però necessari una serie di moduli per il perl, che si dovranno installare con: |
209 | 34 | Amministratore Truelite | <pre> |
210 | 16 | Amministratore Truelite | aptitude install libemail-valid-perl libmime-encwords-perl libmime-perl \ |
211 | 1 | Amministratore Truelite | libmail-sender-perl liblog-log4perl-perl libmail-sendmail-perl |
212 | 34 | Amministratore Truelite | </pre> |
213 | 1 | Amministratore Truelite | inoltre si dovranno modificare le prime righe dello script dove sono impostate le credenziali di accesso al database, con qualcosa del genere: |
214 | 34 | Amministratore Truelite | <pre> |
215 | 16 | Amministratore Truelite | our $db_type = 'mysql'; |
216 | our $db_host = 'localhost'; |
||
217 | our $db_username = 'postfixadmin'; |
||
218 | our $db_password = 'passsegretaedifficile'; |
||
219 | our $db_name = 'postfixadmin'; |
||
220 | |||
221 | our $vacation_domain = 'autoreply.miodominio.it'; |
||
222 | 34 | Amministratore Truelite | </pre> |
223 | 16 | Amministratore Truelite | |
224 | 34 | Amministratore Truelite | <pre> |
225 | <pre> |
||
226 | 10 | Amministratore Truelite | vacation unix - n n - - pipe |
227 | flags=Rq user=vacation argv=/var/spool/vacation/vacation.pl -f ${sender} -- ${recipient} |
||
228 | 34 | Amministratore Truelite | </pre> |
229 | <pre> |
||
230 | <pre> |
||
231 | 10 | Amministratore Truelite | autoreply.miodominio.it vacation: |
232 | 34 | Amministratore Truelite | </pre> |
233 | <pre> |
||
234 | <pre> |
||
235 | 10 | Amministratore Truelite | transport_maps = hash:/etc/postfix/transport |
236 | 34 | Amministratore Truelite | </pre> |
237 | 10 | Amministratore Truelite | fatto questo si dovrà fare usare a Postfix la nuova configurazione con: |
238 | 34 | Amministratore Truelite | <pre> |
239 | 10 | Amministratore Truelite | postmap /etc/postfix/transport |
240 | 25 | Amministratore Truelite | postfix reload |
241 | 34 | Amministratore Truelite | </pre> |
242 | 10 | Amministratore Truelite | |
243 | |||
244 | |||
245 | 34 | Amministratore Truelite | h3. Configurare Dovecot per Postfixadmin |
246 | |||
247 | |||
248 | <pre> |
||
249 | <pre> |
||
250 | 10 | Amministratore Truelite | aptitude install dovecot-imapd dovecot-pop3d ntp |
251 | 34 | Amministratore Truelite | </pre> |
252 | <pre> |
||
253 | <pre> |
||
254 | 14 | Amministratore Truelite | mail_location = maildir:/var/mail/vmail/%d/%n |
255 | 1 | Amministratore Truelite | mail_privileged_group = vmail |
256 | first_valid_uid = 106 |
||
257 | 34 | Amministratore Truelite | </pre> |
258 | <pre> |
||
259 | 27 | Amministratore Truelite | |
260 | 34 | Amministratore Truelite | <pre> |
261 | <pre> |
||
262 | 27 | Amministratore Truelite | passdb sql { |
263 | args = /etc/dovecot/dovecot-mysql.conf |
||
264 | } |
||
265 | userdb sql { |
||
266 | args = /etc/dovecot/dovecot-mysql.conf |
||
267 | } |
||
268 | 34 | Amministratore Truelite | </pre> |
269 | <pre> |
||
270 | <pre> |
||
271 | 27 | Amministratore Truelite | driver = mysql |
272 | connect = host=localhost dbname=postfixadmin user=postfixadmin password=passsegretaedifficile client_flags=0 |
||
273 | 30 | Amministratore Truelite | default_pass_scheme = MD5 |
274 | user_query = SELECT maildir, 106 AS uid, 61 AS gid FROM mailbox WHERE username = '%u' |
||
275 | password_query = SELECT password FROM mailbox WHERE username = '%u' AND active = '1' |
||
276 | 34 | Amministratore Truelite | </pre> |
277 | <pre> |
||
278 | 30 | Amministratore Truelite | |
279 | |||
280 | |||
281 | 34 | Amministratore Truelite | h3. Autenticazione SMTP |
282 | |||
283 | |||
284 | <pre> |
||
285 | <pre> |
||
286 | 27 | Amministratore Truelite | socket listen { |
287 | client { |
||
288 | path = /var/spool/postfix/private/auth |
||
289 | mode = 0660 |
||
290 | user = postfix |
||
291 | group = postfix |
||
292 | } |
||
293 | } |
||
294 | 34 | Amministratore Truelite | </pre> |
295 | <pre> |
||
296 | <pre> |
||
297 | 27 | Amministratore Truelite | auth default { |
298 | ... |
||
299 | mechanisms = plain login |
||
300 | ... |
||
301 | } |
||
302 | |||
303 | 34 | Amministratore Truelite | </pre> |
304 | <pre> |
||
305 | <pre> |
||
306 | 27 | Amministratore Truelite | # ls /var/spool/postfix/private/auth -l |
307 | srw-rw---- 1 postfix postfix 0 29 set 18:59 /var/spool/postfix/private/auth |
||
308 | 34 | Amministratore Truelite | </pre> |
309 | 27 | Amministratore Truelite | |
310 | 34 | Amministratore Truelite | <pre> |
311 | <pre> |
||
312 | 27 | Amministratore Truelite | smtpd_sasl_type = dovecot |
313 | smtpd_sasl_path = private/auth |
||
314 | 34 | Amministratore Truelite | </pre> |
315 | 27 | Amministratore Truelite | |
316 | 34 | Amministratore Truelite | <pre> |
317 | <pre> |
||
318 | 27 | Amministratore Truelite | smtpd_sasl_auth_enable = yes |
319 | smtp_sasl_application_name = smtpd |
||
320 | smtpd_sasl_local_domain = $myhostname |
||
321 | broken_sasl_auth_clients = yes |
||
322 | 34 | Amministratore Truelite | </pre> |
323 | 1 | Amministratore Truelite | mentre l'uso di TLS con le righe seguenti: |
324 | 34 | Amministratore Truelite | <pre> |
325 | 1 | Amministratore Truelite | smtpd_use_tls = yes |
326 | smtpd_tls_auth_only = yes |
||
327 | smtpd_tls_loglevel = 1 |
||
328 | smtpd_tls_received_header = yes |
||
329 | smtpd_tls_session_cache_timeout = 3600s |
||
330 | tls_random_source = dev:/dev/urandom |
||
331 | 34 | Amministratore Truelite | </pre> |
332 | <pre> |
||
333 | <pre> |
||
334 | 1 | Amministratore Truelite | smtpd_recipient_restrictions = |
335 | permit_mynetworks, |
||
336 | permit_sasl_authenticated, |
||
337 | reject_rbl_client zen.spamhaus.org, |
||
338 | reject_non_fqdn_sender, |
||
339 | reject_non_fqdn_recipient, |
||
340 | reject_unknown_sender_domain, |
||
341 | reject_unauth_destination |
||
342 | 34 | Amministratore Truelite | </pre> |
343 | 1 | Amministratore Truelite | |
344 | 34 | Amministratore Truelite | |
345 | h3. CLI script to massive account creation |