IndiceBRTableOfContents |
Introduzione
Questa guida spiega come configurare un server di posta con supporto SQL.
Installazione
Installare i seguneti pacchetti con permessi di [:Sudo:amministratore]:
apt-get install postfix-mysql apt-get install mysql-server apt-get install dovecot-pop3d apt-get install dovecot-imapd apt-get install apache2 apt-get install libapache2-mod-php4
Configurazione SMTP
Modificare con permessi di amministratore il file /etc/postfix/main.cf aggiungendo la direttiva:
alias_maps = mysql:/etc/postfix/mysql-aliases.cf alias_database = mysql:/etc/postfix/mysql-aliases.cf
Si eliminino le direttive hash:/etc/aliases se si vuole configurare un sistema che accetti posta soltanto per utenti definiti nel vostro database SQL! |
Il file /etc/postfix/mysql-aliases.cf è fatto nel modo seguente :
user = someone password = some_password dbname = customer_database table = mxaliases select_field = forw_addr where_field = alias
Come si vede, bisogna specificare utente, password, database, tabella del database Sql che contiene le corrispondenze fra utenti di posta e alias names ed è necessario definire anche i campi da selezionare per ottenere l'alias dell'utente di posta definito.
Si crei il database e le tabelle come nell'esempio che segue :
mysql -u root -p -D postaliases mysql> create table mxaliases (forw_addr varchar(64),alias varchar(64),password varchar(64),home varchar(64),uid integer not null,gid integer not null ); mysql>insert into mxaliases values ('giulio','g.bianchi','njZCfywEU/olE,'/home/postaliases','0','0');
Generare le password in hashing CRYPT con l'utility di apache2 htpasswd2 nel modo seguente :
htpasswd2 -c postaliases_passwords m.rossi
Per aggiungere le password degli utenti usare il comando :
htpasswd2 postaliases_passwords g.bianchi
oppure per aggiornare o eliminare righe dalla vostra tabella usare i comandi SQL :
mysql>update mxaliases set alias='g.bianchi' where forw_addr='giulio'; mysql> delete from mxaliases where forw_addr='marco';
Controllate il vostro file /etc/mysql/my.cnf e verificate l'indirizzo di binding del database mysql (dovrebbe essere l'IP di rete del server MYSQL e non 127.0.0.1). Nel nostro esempio è:
bind_address = 192.168.77.1
e verificate che tutto vada bene con il comando:
#mysql -u root -p -h DNSdbmysql -D postaliases
sostituire a DNSdbmysql l'IP o il nome dell'host che opsita il database.
Riavviate mysql e postfix :
/etc/init.d/mysql restart /etc/init.d/postfix restart
la configurazione del MTA è finita , ora passiamo alla configurazione del server POP3 e IMAP.
Configurazione di POP3 e IMAP
Generare la home directory degli utenti e renderla scrivibile per tutti con il comando:
mkdir /home/postaliases;chmod -R 777 /home/postaliases
Modificare il file /etc/dovecot/dovecot-mysql.conf come segue:
db_host = wilcoyote.example.com db_port = 3306 #db_unix_socket = /var/tmp/mysql.sock db = postaliases db_user = root db_passwd = azsxdcfv db_client_flags = 0 default_pass_scheme = CRYPT password_query = SELECT password FROM mxaliases WHERE alias = '%n' user_query = SELECT home, uid, gid FROM mxaliases WHERE alias = '%n'
Controllate sempre che nel file /etc/dovecot/dovecot.conf vi sia la riga seguente:
protocols = pop3 pop3s imap imaps
assicurarsi che vi siano le direttive
auth_userdb = mysql /etc/dovecot/dovecot-mysql.conf auth_passdb = mysql /etc/dovecot/dovecot-mysql.conf
e modificare le righe:
first_valid_uid = 0 last_valid_uid = 10000 first_valid_gid = 0 last_valid_gid = 10000
I valori di last dipendono da quanti utenti avrà il sistema di posta.
Ora riavviare dovecot con
sudo /etc/init.d/dovecot restart
e testare la configurazione.
Configurazione della Webmail protetta con SSL
Procedere come segue:
Creare il certificato per la protezione di apache2 con il comando:
#apache2-ssl-certificate -days 3650
Cambiare 3650 con la durata in giorni del certificatoAggiungere un VirtualHost a /etc/apache2/sites-enabled/000-default come da esempio:
<VirtualHost 127.0.0.1> ServerName webmail.example.com DocumentRoot /usr/share/squirrelmail SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem </VirtualHost>
Controllare che in /etc/apache2/mods-enabled/ siano presenti i moduli:
ssl.conf ssl.load php4.conf php4.load
Riavviare apache2
sudo /etc/init.d/apache2 restart
Assicurarsi che siano avviati sia dovecot che postfix
sudo /etc/init.d/postfix restart sudo /etc/init.d/dovecot restart
Godetevi il vostro sistema.