Configurare un mail server con Postfix, Dovecot, Roundcube

postfix01

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

postfix02

 

Installazione di Postfix

Dalla console, installare Postfix utilizzando il comando yum.

# yum install postfix

postfix03

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

postfix04

inet_interfaces = all

postfix05

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

postfix06

mynetworks = 192.168.1.0/24, 127.0.0.0/8

postfix07

home_mailbox = Maildir/

postfix08

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

postfix09

 

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.

postfix10

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

postfix11

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

postfix12
Editare il file di configurazione  /etc/dovecot/dovecot.conf per abilitare i protocolli richiesti.

# vi /etc/dovecot/dovecot.conf

protocols = imap pop3 lmtp

postfix13

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

postfix14
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

postfix15

auth_mechanisms = plain login

postfix16

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 
}

postfix17

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

# chkconfig dovecot on
# service dovecot start

postfix18

 

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.

postfix19

 

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

postfix20

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

postfix21

Una volta installato EPEL, utilizzare yum per installare Roundcube.

# yum install roundcubemail

postfix22

 

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

postfix23

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

postfix24

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

postfix25

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

postfix26

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

postfix27

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

postfix28

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.

postfix29

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

postfix30

 

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

postfix31

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

postfix32

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

postfix33postfix36

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

postfix34

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

postfix35

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

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

postfix36

Riavviare Apache.

# service httpd restart

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

http://IP_address/postfixadmin/setup.php

postfix37

Cambiare la password di setup.

postfix38

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

postfix39

L'account Superadmin viene creato.

postfix40

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

http://IP_address/postfixadmin

postfix41

La schermata principale di Postfix Admin.

postfix42

 

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

postfix43

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

mail server 1

14 Comments

  1. franco 21 Luglio 2013
  2. franco 21 Luglio 2013
    • Paolo Valsecchi 22 Luglio 2013
  3. Franco 23 Luglio 2013
    • Paolo Valsecchi 23 Luglio 2013
      • Franco 24 Luglio 2013
  4. Franco 23 Luglio 2013
  5. Patrizio 26 Luglio 2013
  6. Franco 2 Agosto 2013
  7. Franco 9 Agosto 2013
  8. qzu 21 Novembre 2013
    • Franco 8 Dicembre 2013
  9. Tony 22 Febbraio 2014
  10. Manolo 20 Giugno 2014