QMail – Courier Authlib (CentOS 7)
Una volta installato il nostro sistema di posta, vediamo come accedere alle nostre caselle email tramite servizio imap. Non mi occuperò di installare un pop3 server in quanto credo che il servizio/protocollo pop3 sia veramente inutile.
Sul mercato, i leader incontrastati dei server imap su piattaforma Linux sono sostanzialmente 2: Courier e Dovecot (senza considerare quelli commerciali). Non mi dilungherò su quale sia il migliore, il più veloce o il più facile da configurare. Io uso (quasi) da sempre Courier Imap Server e mi sono sempre trovato bene, soprattutto per quanto riguarda l’interazione con vpopmail, con mysql (fondamentale) e con horde (sistema di webmail che descriveremo in seguito); inoltre è molto plasmabile e potente quando si tratta di creare/gestire le shared folder.
Installazione
Il primo package da installare è il Courier unicode 2.0
# yum -y install expect tcl libtool-ltdl libtool-ltdl-devel gdbm-devel # cd /usr/src# wget https://jaist.dl.sourceforge.net/project/courier/courier-unicode/2.0/courier-unicode-2.0.tar.bz2# tar xvfj courier-unicode-2.0.tar.bz2# cd courier-unicode-2.0 # ./configure# make # make install
Successivamente installiamo Courier AuthLib; scaricheremo i sorgenti direttamente dal sito ufficiale:
# cd /usr/src # wget http://prdownloads.sourceforge.net/courier/authlib/0.68.0/courier-authlib-0.68.0.tar.bz2 # tar xvfj courier-authlib-0.66.1.tar.bz2 # cd courier-authlib-0.66.1 # ./configure # make # make install # make install-migrate # <== SOLO SE AVETE UN'ALTRA VERSIONE DELLE AUTHLIB GIA' INSTALLATE # make install-configure ln -s /usr/local/etc/authlib/ /etc/courier-authlib <== Solo per comodità
Configuriamo il servizio di autenticazione in modo che courier possa autenticarsi sul database mysql di vpopmail (dove sono conservati gli utenti e gli hash delle password del mio mail server). Editiamo il file di configurazione del servizio /usr/local/etc/authlib/authdaemonrc in questo modo:
authmodulelist="authuserdb authpwd authshadow authmysql authcustom authpipe"authmodulelist="authmysql" daemons=520 # DEBUG_LOGIN=0 - turn off debugging # DEBUG_LOGIN=1 - turn on debugging # DEBUG_LOGIN=2 - turn on debugging + log passwords too # ** YES ** - DEBUG_LOGIN=2 places passwords into syslog. DEBUG_LOGIN=2 # <== DA DISABILITARE PRIMA CHE IL SISTEMA ENTRI IN PRODUZIONE
Ricordiamoci la struttura del database vpopmail;
# mysql vpopmail_db -p mysql> SELECT * FROM vpopmail; +------------+--------------+------------------------------------+--------+--------+------------+------------------------------------------------+----------+ | pw_name | pw_domain | pw_passwd | pw_uid | pw_gid | pw_gecos | pw_dir | pw_shell | +------------+--------------+------------------------------------+--------+--------+------------+------------------------------------------------+----------+ | dave | anthesia.lan | $1$00000000$rVKz4V7WR45JidlHoaWaB1 | 0 | 0 | dave | /home/vpopmail/domains/anthesia.lan/dave | NOQUOTA | +------------+--------------+------------------------------------+--------+--------+------------+------------------------------------------------+----------+
Andiamo a modificare il file di configurazione /usr/local/etc/authlib/authmysqlrc per l’accesso al database vpopmail , in maniera tale che i campi del database suindicato coincidano con la query che andremo a fare:
MYSQL_SERVER localhost MYSQL_USERNAME vpopmail_usr MYSQL_PASSWORD vpopmail_pwd MYSQL_SOCKET /var/lib/mysql/mysql.sock MYSQL_PORT 3306 MYSQL_DATABASE vpopmail_db MYSQL_USER_TABLE vpopmail MYSQL_CRYPT_PWFIELD pw_passwd DEFAULT_DOMAIN anthesia.lan MYSQL_UID_FIELD pw_uid MYSQL_GID_FIELD pw_gid MYSQL_LOGIN_FIELD pw_name MYSQL_HOME_FIELD pw_dir MYSQL_NAME_FIELD pw_gecos MYSQL_QUOTA_FIELD pw_shell MYSQL_SELECT_CLAUSE SELECT CONCAT(pw_name, '@', pw_domain) AS username, \ pw_passwd AS cryptpw, '' AS clearpw, \ '66' AS uid, '66' AS gid, pw_dir AS home, './Maildir/' AS maildir, \ pw_shell AS quota, pw_gecos AS fullname, \ 'disablewebmail=0,disablepop3=1,disableimap=0,disableshared=0' AS options \ FROM vpopmail \ WHERE pw_name = '$(local_part)' AND pw_domain = '$(domain)'
L’ultima cosa che rimane da fare è creare il file /etc/init.d/courier-authlib per eseguire all’avvio le courier-authlib:
#! /bin/sh # # chkconfig: 2345 15 85 # description: Authlib - Courier authentication library. # # prefix="/usr/local" exec_prefix="/usr/local" sysconfdir="/usr/local/etc" sbindir="/usr/local/sbin" if test ! -f /usr/local/etc/authlib/authdaemonrc then echo "/usr/local/etc/authlib/authdaemonrc does not exist, forgot make install-configure?" exit 1 fi case "$1" in start) cd / # Start daemons. touch /var/lock/subsys/courier-authlib echo -n "Starting Courier authentication services:" $sbindir/authdaemond start echo " authdaemond" ;; stop) echo -n "Stopping Courier authentication services:" $sbindir/authdaemond stop echo " authdaemond" rm -f /var/lock/subsys/courier-authlib ;; restart) $0 stop $0 start ;; reload) echo -n "Starting Courier authentication services:" $sbindir/authdaemond restart echo " authdaemond" ;; esac exit 0
Facciamo partire le nostre librerie di autenticazione courier e facciamo in modo che ripartano al boot:
# chmod 755 /etc/init.d/courier-authlib # chkconfig courier-authlib on # systemctl start courier-authlib
← QMail – Test Simscan (CentOS 7) QMail – Courier Imap (CentOS 7) →