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 seguneti pacchetti con i privilegi di amministrazione:

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'; 

Si controlli il file /etc/mysql/my.cnf e si verifichi 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

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' 
  • 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.

  • Ora riavviare dovecot con

    sudo /etc/init.d/dovecot restart
    e testare la configurazione.

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 certificato
  • Aggiungere 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


CategoryServer CategoryDaRevisionare