Configurare un mail server con Postfix, Dovecot, Roundcube

Configurare un mail server con Postfix, Dovecot, Roundcube

Un funzionale mail server può essere configurato utilizzando Postfix (MTA) con l’aggiunta di alcuni componenti come Dovecot (IMAP) e Roundcube (webmail).

Combinando queste applicazioni si ottiene un sistema di posta elettronica con i protocolli SMTP, IMAP, POP3 che può essere utilizzato in un ambinete aziendale dove il budget a disposizione è limitato. Questa soluzione si basa su software di tipo Open Source dove le licenze di utilizzo non necessitano di essere acquistate.

 

Prerequisiti

Per funzionare correttamente, è necessario che il servizio selinux sia disabilitato nel sistema utilizzato.

# vi /etc/selinux/config

Configurare un mail server con Postfix, Dovecot, Roundcube

 

Installazione di Postfix

Dalla console, installare Postfix utilizzando il comando yum.

# yum install postfix

Configurare un mail server con Postfix, Dovecot, Roundcube

Editare il file di configurazione /etc/postfix/main.cf ed impostare i parametri come indicato:

myhostname = hostname.domain.com 
mydomain = domain.com 
myorigin = $mydomain 
inet_interfaces = all 
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain 
mynetworks = 192.168.1.0/24, 127.0.0.0/8 
home_mailbox = Maildir/

# vi /etc/postfix/main.cf

myhostname = hostname.domain.com 
mydomain = domain.com 
myorigin = $mydomain

Configurare un mail server con Postfix, Dovecot, Roundcube

inet_interfaces = all

Configurare un mail server con Postfix, Dovecot, Roundcube

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

Configurare un mail server con Postfix, Dovecot, Roundcube

mynetworks = 192.168.1.0/24, 127.0.0.0/8

Configurare un mail server con Postfix, Dovecot, Roundcube

home_mailbox = Maildir/

Configurare un mail server con Postfix, Dovecot, Roundcube

Una volta terminata la configurazione, impostare l’applicazione per avviarsi durante il boot di sistema ed avviare il servizio.

# chkconfig postfix on
# service postfix start

Configurare un mail server con Postfix, Dovecot, Roundcube

 

Testare Postfix

Per verificare che il sistema funzioni correttamente, digitare da console i seguenti comandi per testare l’invio di una email:

# telnet localhost smtp

Trying ::1... 
Connected to localhost. 
Escape character is '^]'. 
220 server.domain.com ESMTP Postfix 
ehlo localhost 
250-server.domain.com 
250-PIPELINING 
250-SIZE 10240000 
250-VRFY 
250-ETRN 
250-ENHANCEDSTATUSCODES 
250-8BITMIME 
250 DSN 
mail from: username@domain.com
250 2.1.0 Ok 
rcpt to: username@domain.com
250 2.1.5 Ok 
data 
354 End data with <CR><LF>.<CR><LF> 
test
.
250 2.0.0 Ok: queued as 2C55A94 
quit
221 2.0.0 Bye 
Connection closed by foreign host.

Configurare un mail server con Postfix, Dovecot, Roundcube

Per controllare che la email sia stata effettiavmente ricevuta, verificare la sua presenza nella directory /home/username/Maildir/new.

# cd /home/username/Maildir/new/
# ll
# cat xxxxxx.xxxxxx.server.domain.com

Configurare un mail server con Postfix, Dovecot, Roundcube

L’email è stata correttamente ricevuta dal sistema quindi il mail server funziona.

 

Installazione di Dovecot

Mentre Postfix opera esclusivamente come Mail Transfer Agent (MTA), per poter recuperare le emails utilizzando i sistemi attuali è necessario abilitare i protocolli IMAP/POP3. Dovecot è l’applicazione che funge da server IMAP e POP3.

Utilizzare il comando yum per installare Dovecot.

# yum install dovecot

Configurare un mail server con Postfix, Dovecot, Roundcube
Editare il file di configurazione  /etc/dovecot/dovecot.conf per abilitare i protocolli richiesti.

# vi /etc/dovecot/dovecot.conf

protocols = imap pop3 lmtp

Configurare un mail server con Postfix, Dovecot, Roundcube

Successivamente specificare la location delle emails editando il file /etc/dovecot/conf.d/10-mail.conf.

# vi /etc/dovecot/conf.d/10-mail.conf

mail_location = maildir:~/Maildir

Configurare un mail server con Postfix, Dovecot, Roundcube
Editare il file /etc/dovecot/conf.d/10-auth.conf ed impostare i seguenti parametri:

# vi /etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = no

Configurare un mail server con Postfix, Dovecot, Roundcube

auth_mechanisms = plain login

Configurare un mail server con Postfix, Dovecot, Roundcube

L’ultimo file da editare è /etc/dovecot/conf.d/10-master.conf.

# vi /etc/dovecot/conf.d/10-master.conf

unix_listener auth-userdb { 
    #mode = 0600 
    user = postfix 
    group = postfix 
}

Configurare un mail server con Postfix, Dovecot, Roundcube

Anche in questo caso, impostare Dovecot per avviarsi al boot del sistema ed avviare il servizio.

# chkconfig dovecot on
# service dovecot start

Configurare un mail server con Postfix, Dovecot, Roundcube

 

Testare Dovecot

Per testare il corretto funzionamento di Dovecot, è possibile utilizzare il protocollo POP3.

# telnet localhost pop3

Trying ::1... 
Connected to localhost. 
Escape character is '^]'. 
+OK Dovecot ready. 
user admin 
+OK 
pass password 
+OK Logged in. 
list
+OK 1 messages: 
1 477 
. 
retr 1 
+OK 477 octets 
Return-Path: <username@domain.com> 
X-Original-To: username@domain.com 
Delivered-To: username@domain.com 
Received: from localhost (localhost [IPv6:::1]) 
     by server.domain.com (Postfix) with ESMTP id 2C55A94 
     for username@domain.com; Wed, 12 Jun 2013 12:22:00 +0200 (CEST) 
Message-Id: <20130207113547.117113FF18@server.domain.com> 
Date: Wed, 12 Jun 2013 12:22:00 +0200 (CEST) 
From: username@domain.com 
To: undisclosed-recipients:; 
test postfix 
. 
quit
+OK Logging out. 
Connection closed by foreign host.

Configurare un mail server con Postfix, Dovecot, Roundcube

 

Installazione di Roundcube

Roundcube è un client IMAP browser-based con una interfaccia utente ben progettata anche dal lato visivo.

Per configurare l’applicazione è necessario inanzitutto installare nel sistema  il server MySQL e Apache.

# yum install mysql-server mysql-devel httpd

Configurare un mail server con Postfix, Dovecot, Roundcube

Abilitare sia MySQL che Apache per avviarsi al boot del sistema ed abilitare i servizi.

# chkconfig mysqld on
# service mysqld start

# chkconfig httpd on
# service httpd start

 

Installazione repository EPEL

Per installare Roundcube tramite il comando yum, è necessario impostare nel sistema il repository EPEL.

# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm

Configurare un mail server con Postfix, Dovecot, Roundcube

Una volta installato EPEL, utilizzare yum per installare Roundcube.

# yum install roundcubemail

Configurare un mail server con Postfix, Dovecot, Roundcube

 

Configurare MySQL

Per definire il database utilizzato dall’applicazione accedere alla configurazione di MySQL.

# mysql -u root -p

mysql> create database roundcube; 
mysql> create user roundcube; 
mysql> GRANT ALL PRIVILEGES ON roundcube.* TO roundcube@localhost IDENTIFIED BY 'password'; 
mysql> flush privileges; 
mysql> use roundcube; 
mysql> source /usr/share/doc/roundcubemail-0.8.6/SQL/mysql.initial.sql 
mysql> quit

Configurare un mail server con Postfix, Dovecot, Roundcube

Editare il file di configurazione /etc/roundcubemail/db.inc.php ed impostare i parametri per accedere al database.

# vi /etc/roundcubemail/db.inc.php

$rcmail_config['db_dsnw'] = 'mysql://roundcube:password@localhost/roundcube';

Configurare un mail server con Postfix, Dovecot, Roundcube

Editare il file /etc/roundcubemail/main.inc.php ed impostare l’hostname scelto per effettuare il login.

# vi /etc/roundcubemail/main.inc.php

$rcmail_config['default_host'] = 'localhost';

Configurare un mail server con Postfix, Dovecot, Roundcube

Per rendere il sistema accessibile esternamente al server, editare il file /etc/httpd/conf.d/roundcubemail.conf ed impostare il parametro corretto.

# vi /etc/httpd/conf.d/roundcubemail.conf

Allow from all

Configurare un mail server con Postfix, Dovecot, Roundcube

Editare il file /etc/php.ini file per configurare la time zone corretta.

Configurare un mail server con Postfix, Dovecot, Roundcube

Poichè il log potrebbe segnalare eventuali errori dovuti all’encryption, impostare il parametro di encryption con la sintassi corretta.

# vi /etc/php.d/mcrypt.ini

extension=mcrypt.so

Configurare un mail server con Postfix, Dovecot, Roundcube

Riavviare Apache.

# service httpd restart

 

Testare Roundcube

Accedere a Roundcube digitando da browser l’indirizzo:

http://IP_address/roundcubemail

Inserire le proprie credenziali e cliccare su Login.

Configurare un mail server con Postfix, Dovecot, Roundcube

Appare la schermata principale visualizzando l’email ricevuta quando è stato precedentemente testato Postfix.

Configurare un mail server con Postfix, Dovecot, Roundcube

 

Installare Postfix Admin

Per rendere l’amministrazione di Postfix più semplice, il tool Postfix admin è un interfaccia web-based utilizzata per gestire le mailbox, i virtual domain e gli alias.

Se non è già presente nel sistema, installare il componente PHP richiesto dall’applicazione.

# yum install php-imap

Accedere a MySQL e creare il database utilizzato da Postfix Admin.

# mysql -u root -p

mysql> create database postfixadmin; 
mysql> grant all privileges on postfixadmin.* to postfixadmin@'localhost' identified by 'password'; 
mysql> flush privileges; 
mysql> quit

Configurare un mail server con Postfix, Dovecot, Roundcube

Utilizzando il comando wget, effettuare il download della versione più recente dell’applicazione.

# wget http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.3.6/postfixadmin-2.3.6.tar.gz

Configurare un mail server con Postfix, Dovecot, Roundcube

Scompattare il file ed effettuare un’operazione di move della directory nella cartella /var/www/html .

# tar -vxzf postfixadmin-2.3.6.tar.gz
# mv postfixadmin-2.3.6 /var/www/html/postfixadmin

Configurare un mail server con Postfix, Dovecot, RoundcubeConfigurare un mail server con Postfix, Dovecot, Roundcube

Editare il file di configurazione /var/www/html/postfixadmin/config.inc.php per abilitare l’applicazione ed impostare la password.

# vi /var/www/html/postfixadmin/config.inc.php

$CONF['configured'] = true; 
$CONF['setup_password'] = 'password';

Configurare un mail server con Postfix, Dovecot, Roundcube

Settare i parametri per accedere al database creato in precedenza.

$CONF['database_type'] = 'mysqli'; 
$CONF['database_host'] = 'localhost'; 
$CONF['database_user'] = 'postfixadmin'; 
$CONF['database_password'] = 'password'; 
$CONF['database_name'] = 'postfixadmin';

Configurare un mail server con Postfix, Dovecot, Roundcube

Aggiungere la riga seguente per permettere la creazione della password amministrativa da web.

$CONF['setup_password'] = '8abd38580e77ebf7010eb60b95eb4fad:0bd829114d9efc4bc35c7e42cf7d3507dad8b837';

Configurare un mail server con Postfix, Dovecot, Roundcube

Riavviare Apache.

# service httpd restart

Per eseguire il Postfix Admin Setup Checker, digitare da browser l’indirizzo:

http://IP_address/postfixadmin/setup.php

Configurare un mail server con Postfix, Dovecot, Roundcube

Cambiare la password di setup.

Configurare un mail server con Postfix, Dovecot, Roundcube

Creare il Superadmin account compilando i campi presenti in fondo allo schermo. Cliccare sul bottone Add Admin.

Configurare un mail server con Postfix, Dovecot, Roundcube

L’account Superadmin viene creato.

Configurare un mail server con Postfix, Dovecot, Roundcube

Per accedere all’interfaccia di amministrazione, digitare nel browser l’indirizzo:

http://IP_address/postfixadmin

Configurare un mail server con Postfix, Dovecot, Roundcube

La schermata principale di Postfix Admin.

Configurare un mail server con Postfix, Dovecot, Roundcube

 

Inviare le email tramite un relay

Se la rete aziendale presenta dei sitemi antispam che verificano la posta sia in entrata sia in uscita,  Postfix necessita di essere opportunamente configurato per effettuare il relay delle email direttamente al server antispam.

Per permettere un corretto flusso delle email,  configurare il campo relayhost con l’indirizzo corretto del sistema antispam.

# vi /etc/postfix/main.cf

relayhost= lx-antispam02.nolabnoparty.local

Configurare un mail server con Postfix, Dovecot, Roundcube

Il mail server è ora pienamente operativo con le funzioni base per gestire correttamente i messaggi email.

Configurare un mail server con Postfix, Dovecot, Roundcube

About Paolo Valsecchi

Sistemista Informatico, mi occupo principalmente dell’implementazione e della gestione di servizi informatici basati su piattaforma virtuale VMware vSphere con sistemi Microsoft Windows/Active Directory e Linux (Red Hat, CentOS).

Twitter | Facebook | Linkedin | Google+