Introduzione
Questa guida spiega come configurare un server di posta con supporto SQL.
Installazione
Installare i seguenti pacchetti con i privilegi di amministrazione. Digitare in un terminale i comandi:
sudo apt install postfix-mysql sudo apt install mysql-server sudo apt install dovecot-pop3d sudo apt install dovecot-imapd sudo apt install apache2 sudo apt install libapache2-mod-php4
Configurazione SMTP
Modificare con i privilegi di amministrazione e con un editor di testo 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
Eliminare 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.
Creare il Database
Creare 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
Generare le password in hashing CRYPT con l'utility di apache2 htpasswd2, digitare nel terminale il seguente comando:
htpasswd2 -c postaliases_passwords m.rossi
Per aggiungere le password degli utenti, digitare nel terminale il seguente comando:
htpasswd2 postaliases_passwords g.bianchi
Gestire tabelle
Per aggiornare o eliminare righe dalla vostra tabella, usare i comandi SQL, digitare nel terminale i seguenti comandi:
mysql>update mxaliases set alias='g.bianchi' where forw_addr='giulio'; mysql>delete from mxaliases where forw_addr='marco';
Controllare con un editor di testo il file /etc/mysql/my.cnf che 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
Verificare il funzionamento delle tabelle, consultare il paragrafo.
Riavviare il servizio mysql, consultare il paragrafo.
Riavviare il servizio postfix, consultare il paragrafo.
Ora passiamo alla configurazione del server POP3 e IMAP.
Configurazione di POP3 e IMAP
Generare cartella utenti
Generare la home directory degli utenti e renderla scrivibile per tutti.
Creare la cartella utente nella '/home'. Digitare in terminale il seguente 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'
Controllare 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.
Riavviare dovecot, consultare il paragrafo. Testare la configurazione.
Webmail protetta con SSL
Procedere come segue:
Creare il certificato per la protezione di Apache
Procedere con la configurazione di apache2, digitare in terminale il seguente comando:
apache2-ssl-certificate -days 3650
Cambiare 3650 con la durata in giorni del certificato
Aggiungere un `Virtual``Host`
Aggiungere un VirtualHost:
Con i privilegi di amministrazione e con un editor di testo, aprire il file /etc/apache2/sites-enabled/000-default e configurare come segue l'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 i servizi apache2, consultare il paragrafo apache2.
Riavviare i servizi postfix e dovecot, consultare i paragrafi dovecot e postfix.
Risoluzione dei problemi
Verificare funzionamento tabelle
Verificare che tutto funziona, con un terminale il seguente comando:
mysql -u root -p -h DNSdbmysql -D postaliases
sostituire a DNSdbmysql l'IP o il nome dell'host che ospita il database.
Riavviare apache2
Riavviare apache2
sudo /etc/init.d/apache2 restart
Riavviare dovecot
Riavviare dovecot in terminale il seguente comando:
sudo /etc/init.d/dovecot restart
Riavviare postfix
Riavviare postfix, digitare in terminale il seguente comando:
sudo /etc/init.d/postfix restart
Riavviare MySql
Per riavviare mysql, digitare in terminale il seguente comando:
/etc/init.d/mysql restart