QMail – Courier Imap (CentOS 7)

Published by Lello on

Installiamo ora il vero e proprio Imap Server: installiamo alcune dipendenze, scarichiamo i sorgenti e procediamo alla compilazione:

# yum -y install libidn-devel gamin-devel
# su - simscan 
$ wget https://jaist.dl.sourceforge.net/project/courier/imap/4.18.2/courier-imap-4.18.2.tar.bz2 
$ tar xvfj courier-imap-4.18.2.tar.bz2
$ cd courier-imap-4.18.2
$ ./configure 
$ make 
$ make check 
$ exit 
# cd /var/spool/simscan/courier-imap-4.15.1
# make install 
# make install-configure
# ln -s  /usr/lib/courier-imap/etc /etc/courier-imap <== Per comodità

Modifichiamo il file di configurazione di courier-imap /usr/lib/courier-imap/etc/imapd:

MAXDAEMONS=200
MAXPERIP=200 <== ho accesso a questo mail server da una rete con NAT su un unico IP address
DEFDOMAIN="@anthesia.lan"
IMAP_ENHANCEDIDLE=1
IMAPDSTART=YES

Creiamo il file /etc/init.d/courier-imap per eseguire il nostro servizio al boot

#!/bin/sh
#
# This is a sample /etc/init.d file for Courier-IMAP
#
# chkconfig: 2345 80 30
# description: Courier-IMAP - IMAP server
#
#
#

prefix=/usr/lib/courier-imap
exec_prefix=/usr/lib/courier-imap
bindir=${exec_prefix}/bin
sbindir=${exec_prefix}/sbin
datarootdir=/usr/lib/courier-imap/share

case "$1" in
start)
        cd /
        . ${prefix}/etc/imapd
        touch /var/lock/subsys/courier-imap

        echo -n "Starting Courier-IMAP server:"

        case x$IMAPDSTART in
        x[yY]*)
                # Start daemons.
                /usr/lib/courier-imap/libexec/imapd.rc start
                echo -n " imap"
                ;;
        esac

        . ${prefix}/etc/imapd-ssl
        case x$IMAPDSSLSTART in
        x[yY]*)
                if test -x $COURIERTLS
                then

                # First time we start this, generate a dummy SSL certificate.

                        if test ! -f $TLS_CERTFILE
                        then
                                echo -n " generating-SSL-certificate..."
                                /usr/lib/courier-imap/share/mkimapdcert >/dev/null 2>&1
                        fi
                        /usr/lib/courier-imap/libexec/imapd-ssl.rc start
                        echo -n " imap-ssl"
                fi
                ;;
        esac

        POP3DSTART=""
        POP3DSSLSTART=""

        if test -f ${prefix}/etc/pop3d
        then
                . ${prefix}/etc/pop3d
        fi

        case x$POP3DSTART in
        x[yY]*)
                # Start daemons.
                /usr/lib/courier-imap/libexec/pop3d.rc start
                echo -n " pop3"
                ;;
        esac

        if test -f ${prefix}/etc/pop3d-ssl
        then
                . ${prefix}/etc/pop3d-ssl
        fi

        case x$POP3DSSLSTART in
        x[yY]*)
                if test -x $COURIERTLS
                then

                # First time we start this, generate a dummy SSL certificate.

                        if test ! -f $TLS_CERTFILE
                        then
                                echo -n " generating-SSL-certificate..."
                                /usr/lib/courier-imap/share/mkpop3dcert >/dev/null 2>&1
                        fi
                        /usr/lib/courier-imap/libexec/pop3d-ssl.rc start
                        echo -n " pop3-ssl"
                fi
                ;;
        esac

        echo ""
        ;;
stop)
        echo -n "Stopping Courier-IMAP server:"
        . ${prefix}/etc/imapd
        . ${prefix}/etc/imapd-ssl
        /usr/lib/courier-imap/libexec/imapd.rc stop
        echo -n " imap"
        if test -x $COURIERTLS
        then
                /usr/lib/courier-imap/libexec/imapd-ssl.rc stop
                echo -n " imap-ssl"
        fi

        if test -f ${prefix}/etc/pop3d
        then
                /usr/lib/courier-imap/libexec/pop3d.rc stop
                echo -n " pop3"

                if test -x $COURIERTLS
                then
                        /usr/lib/courier-imap/libexec/pop3d-ssl.rc stop
                        echo -n " pop3-ssl"
                fi
        fi

        echo ""
        rm -f /var/lock/subsys/courier-imap
        ;;
restart)
        $0 stop
        $0 start
        ;;
esac
exit 0

Prima di eseguire il nostro imap server, configuriamo anche la parte SSL, in maniera tale che gli utenti roaming possono connettersi al servizio con crittografia; faremo in modo che dall’esterno solo la porta 993 (SSL) sarà accessibile.

Cominciamo a generare i certificati per il nostro servizio; modifichiamo il file /usr/lib/courier-imap/etc/imapd.cnf per rispecchiare le caratteristiche della nostra azienda:

...
[ req_dn ]
C=IT
ST=Italy
L=Florence
O=Anthesia Ltd
OU=IT Dep.
CN=mail.anthesia.lan
emailAddress=dave@anthesia.lan
...

Modifichiamo anche la durata del certificato, portandola da 365 giorni a 10 anni nel file /usr/lib/courier-imap/share/mkimapdcert:

...
/usr/bin/openssl req -new -x509 -days 365 3650 -nodes
...

Generiamo il certificato e un nuovo set di parametri DH:

# /usr/lib/courier-imap/share/mkimapdcert
# /usr/lib/courier-imap/share/mkdhparams

Inseriamo le seguenti righe nel crontab, in maniera da aggiornare all’inizio del mese i parametri DH per la crittografia della connessione:

# AGGIORNAMENTO CERTIFICATI IMAP-SSL
03 05 1 * * /usr/lib/courier-imap/share/mkdhparams > /dev/null 2>&1

Aggiorniamo il file di configurazione /usr/lib/courier-imap/etc/imapd-ssl per fare partire anche la parte ssl dell’imap:

...
IMAPDSSLSTART=YES
...

Modifichiamo le permission dei file ed eseguiamo il nostro imap server:

# chmod 755 /etc/init.d/courier-imap
# chkconfig courier-imap on
# systemctl start courier-imap

Il nostro IMAP Server è ora attivo e funzionantesia sulla porta 143 che sulla porta 993 (imap-ssl); vediamo di testarne il funzionamento.

 

← QMail – Courier Authlib (CentOS 7)                                     QMail – Test Courier (CentOS 7) →