Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Immutable Page
  • Info
  • Attachments


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

  1. 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.

  1. Riavviare il servizio mysql, consultare il paragrafo.

  2. 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


CategoryServer CategoryDaRevisionare