20/08/2014
enit

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:

# vi /etc/postfix/main.cf

Configurare un mail server con Postfix, Dovecot, Roundcube

Configurare un mail server con Postfix, Dovecot, Roundcube

Configurare un mail server con Postfix, Dovecot, Roundcube

Configurare un mail server con Postfix, Dovecot, Roundcube

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

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

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

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

Configurare un mail server con Postfix, Dovecot, Roundcube

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

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

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

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

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

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

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

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

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

Configurare un mail server con Postfix, Dovecot, Roundcube

Settare i parametri per accedere al database creato in precedenza.

Configurare un mail server con Postfix, Dovecot, Roundcube

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

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

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

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

14 commenti

  1. Salve,
    sto seguendo questa perché, oltre ad essere cmpleta, sembra molto dettagliata. Sono arrivato al test di roundcubemail. Purtroppo, non riesco ad andare oltre perché la finestra di roundcube mi appare con questo messaggio:
    DATABASE ERROR: CONNECTION FAILED!
    Unable to connect to the database!
    Please contact your server-administrator.
    Nel configurare MySQL, la password dell’user “roundcube” tu hai usato “roundcube00″ ed io “franco”. Credi che il problema possa essere questo? Come si può rimediare? Quali sono le impostazioni da verificare in questo caso?
    Grazie, Franco

  2. Ho risolto. Il problema era solo quello della password. (colpa mia) Posso confermare che è un’ottima guida, testata e funzionante. Posso inviare e ricevere mail all’interno della lan. Se hai voglia di fare un’altra guida per inviare e ricevere mail anche dall’esterno la testo volentieri.
    Grazie Paolo :)

    • Grazie. Sono contento di sapere che la guida ti è stata utile.

      Questo sistema è un server di posta a tutti gli effetti e quindi le email possono essere inviate/ricevute da/per l’esterno.

  3. Allora mi spieghi come mai non riesco a ricevere mail dall’esterno e non riesco a configurare thunderbird?
    Sul firewall della macchina server ho aperto le porte POP3 e SMTP sul router la 25 inviando da alice una mail a franco@mail.gol mi perviene l’errore da Mail Delivery Service (postmaster@alice.it).
    Se la spedisco da postfixadmin (spedisci email) quando clisso su spedisci messaggio sotto mi esce ”
    La casella di posta è stata creata!”
    maillog mi escono questi errori:
    dovecot: master: Warning: Killed with signal 15 (by pid=1419 uid=0 code=kill)
    dovecot: master: Dovecot v2.0.9 starting up (core dumps disabled)
    postfix/postfix-scripts[1255] : startingo the postfix mail system
    postfix/master[1256]. daemon started — version 2.6.6, configuration (etc/postfix
    postfix/postfix-script[1430]: stopping the postfix mail system
    postfix/master[1256]: terminating on signal 15
    questi messaggi si ripetono più volte.
    Ho sbagliato qualcosa? :)

    • Per ricevere le email dall’esterno hai bisogno di verificare:
      - Come è configurato nel DNS il record MX del dominio associato
      - L’IP statico o DynDNS name è correttmente associato al record MX
      - Nel router il NAT è impostato correttamente
      - Il firewall ha le porte correttamente impostate (soprattutto la 25) per i protocolli utilizzati

      Per inviare le email:
      Se si utilizza la linea ADSL Alice “casalinga” (non business), devi utilizzare come SMTP out.alice.it con la corretta autenticazione.

      • Interessante, davvero interessante. Fin’ora avevo impostato soltanto le porte del firewall:
        :INPUT ACCEPT [0:0]
        :FORWARD ACCEPT [0:0]
        :OUTPUT ACCEPT [0:0]
        -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
        -A INPUT -p icmp -j ACCEPT
        -A INPUT -i lo -j ACCEPT
        -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
        -A INPUT -m state –state NEW -m tcp -p tcp –dport 25 -j ACCEPT
        -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
        -A INPUT -m state –state NEW -m tcp -p tcp –dport 110 -j ACCEPT
        -A INPUT -m state –state NEW -m tcp -p tcp –dport 995 -j ACCEPT
        -A INPUT -m state –state NEW -m tcp -p tcp –dport 143 -j ACCEPT
        -A INPUT -m state –state NEW -m tcp -p tcp –dport 993 -j ACCEPT
        -A INPUT -j REJECT –reject-with icmp-host-prohibited
        -A FORWARD -j REJECT –reject-with icmp-host-prohibited
        COMMIT
        Sono intervenuto sul Nat del router aprendo la porta 25. Per il resto, non avevo fatto niente e mi sa che mi debbo arrangiare diversamente. :)

  4. Purtroppo anche questi errori:
    dovecot: imap-login: Aborted login (auth failed, 1 attempts): user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
    Jul 21 18:21:33 mercury dovecot: imap-login: Login: user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=1346, secured
    Jul 21 18:21:34 mercury dovecot: imap(franco): Disconnected: Logged out bytes=29/399
    Jul 21 18:21:34 mercury dovecot: imap-login: Login: user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=1349, secured
    Jul 21 18:21:34 mercury dovecot: imap(franco): Disconnected: Logged out bytes=44/362
    Jul 21 18:21:35 mercury dovecot: imap-login: Login: user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=1355, secured
    Jul 21 18:21:35 mercury dovecot: imap-login: Login: user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=1356, secured
    Jul 21 18:21:35 mercury dovecot: imap(franco): Disconnected: Logged out bytes=82/430
    Jul 21 18:21:35 mercury dovecot: imap(franco): Disconnected: Logged out bytes=303/1190
    Jul 21 18:22:14 mercury dovecot: imap-login: Login: user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=1360, secured
    Jul 21 18:22:14 mercury dovecot: imap(franco): Disconnected: Logged out bytes=44/362
    Jul 21 18:22:15 mercury dovecot: imap-login: Login: user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=1365, secured
    Jul 21 18:22:15 mercury dovecot: imap(franco): Disconnected: Logged out bytes=82/430
    Jul 21 18:22:15 mercury dovecot: imap-login: Login: user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=1366, secured
    Jul 21 18:22:15 mercury dovecot: imap(franco): Disconnected: Logged out bytes=303/1190
    Jul 21 18:22:43 mercury dovecot: imap-login: Aborted login (auth failed, 1 attempts): user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
    Jul 21 18:23:07 mercury dovecot: imap-login: Aborted login (auth failed, 1 attempts): user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
    Jul 21 18:24:51 mercury dovecot: imap-login: Aborted login (auth failed, 1 attempts): user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
    Jul 21 18:25:16 mercury dovecot: imap-login: Aborted login (auth failed, 1 attempts): user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
    Jul 21 18:25:30 mercury dovecot: imap-login: Aborted login (auth failed, 1 attempts): user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured

  5. Ciao,

    seguendo la Tua guida sono riuscito a configurare il mio primo server. tuttavia mi ritrovo ad avere un inconveniente.
    ovvero, roundcube e postfix admin si ritrovano su due DB differenti e quando eseguo delle modifiche a postfix admin (e.g. creazione di nuovo dominio e relativa casella) loggandomi con le credenziali appena create su roundcube questo mi dice che nome utente o password errati
    come posso risolverlo

  6. Inizio a pensare che ho lo stesso problema!
    Mi spiegate come faccio a leggere la posta dei domini creati con postfixadmin?

  7. Nessuna risposta?

  8. OTTIMO LAVORO
    GRAZIE

  9. Grazie per la guida, davvero ottima! ho configurato il tutto ma non capisco come procedere alla creazione delle email:
    Creando le email da postfixadmin non riesco ad accedere a roundcube con i dati inseriti, ma solo con i dati dell’utente di sistema.

  10. Ciao.. la guida è perfetta.. ma incontro problemi…
    Nel test localhost smtp, mi manda l’email ma non la recepisce.
    Nel test dovecot mi accetta il nome utente ma la password è giusta…

    Puoi consigliarmi?

    Grazie & complimenti.

Inserisci un commento

Il tuo indirizzo email non sarà pubblicato. Required fields are marked *

*

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">