QMail – Vpopmail (CentOS 7)

Published by Lello on

In questa sezione vedremo come installare vpopmail, un prodotto GPL della Inter7 che ci permette di lavorare con domini virtuali di posta; ci appoggeremo inoltre a MySQL/MariaDB come back-end.

Usiamo un database come back-end in quanto è più facile scrivere dei piccoli tools web-based per interagire con gli account in esso contenuti; inoltre per un server con molti domini di posta ed utenti, un database come MySQL/MariaDB è decisamente più performante che interagire con un sistema basato su disco; infine, è possibile utilizzare le feature di replica del DB combinate con NFS per suddividere gli utenti ed il carico di lavoro su altri server.

Configuriamo il Database Server:

# yum -y install mariadb-server mariadb mariadb-devel
# systemctl enable mariadb
# systemctl start mariadb
# /usr/bin/mysql_secure_installation
  --> [Y] Modificare la password dell'utente root
  --> [Y] Rimuovere gli utenti anonimi
  --> [Y] Disabilitare login di root da remoto
  --> [Y] Cancellare il database di test e i relativi accessi
  --> [Y] Ricaricare i privilegi

Installato il database server, installiamo vpopmail:

# groupadd -g 66 vchkpw
# useradd -g vchkpw -u 66 -d /home/vpopmail vpopmail
# cd /usr/src
# wget http://prdownloads.sourceforge.net/vpopmail/vpopmail-stable/5.4.33/vpopmail-5.4.33.tar.gz
# tar xvfz vpopmail-5.4.33.tar.gz
# cd vpopmail-5.4.33

A questo punto avviamo la compilazione:

# ./configure \
  --enable-learn-passwords \
  --disable-clear-passwd \
  --enable-qmail-ext \
  --enable-auth-module=mysql \
  --enable-libdir=/usr/lib64/mysql \
  --enable-logging=y \
  --enable-auth-logging \
  --enable-sql-logging \
  --enable-mysql-replication \
  --enable-many-domains \
  --enable-valias

# make
# make install-strip

Installiamo ora il vusage; dobbiamo prima installare le librerie ev

# cd /usr/src
# wget http://dist.schmorp.de/libev/libev-4.18.tar.gz
# tar xvfz libev-4.18.tar.gz
# ln -s libev-4.18 libev
# cd libev
# ./configure
# make
# make install
# echo "/usr/local/lib" > /etc/ld.so.conf.d/local_lib.conf
# ldconfig

e successivamente vusage:

# cd /usr/src/vpopmail-5.4.33/vusaged
# ./configure --build=x86_64
# make
# cp -f vusaged /home/vpopmail/bin
# chown vpopmail.vchkpw /home/vpopmail/bin/vusaged
# cp -f etc/vusaged.conf /home/vpopmail/etc
# cp contrib/rc.vusaged /etc/init.d/vusaged
# chmod 755 /etc/init.d/vusaged
# chkconfig vusaged on
# service vusaged start

A questo punto vpopmail è installato; vediamo la configurazione per far interagire vpopmail con mysql. Creiamo un database chiamato vpopmail_db, concediamo all’utente vpopmail_usr con password vpopmail_pwd tutti i privilegi su questo database solo se l’utente si connette dal localhost:

# mysql -u root -p
mysql> CREATE USER 'vpopmail_usr'@'localhost' IDENTIFIED BY 'vpopmail_pwd';
mysql> GRANT USAGE ON *.* TO 'vpopmail_usr'@'localhost' IDENTIFIED BY 'vpopmail_pwd';
mysql> CREATE DATABASE IF NOT EXISTS `vpopmail_db` ;
mysql> GRANT ALL PRIVILEGES ON `vpopmail_db`.* TO 'vpopmail_usr'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> \q

Creiamo il file che permette a vpopmail di collegarsi al database appena creato:

# echo "localhost|0|vpopmail_usr|vpopmail_pwd|vpopmail_db" > /home/vpopmail/etc/vpopmail.mysql

Testiamo il funzionamento; proviamo a creare un dominio virtuale di posta e vedere cosa succede:

# /home/vpopmail/bin/vadddomain anthesia.lan
# /home/vpopmail/bin/vadduser dave@anthesia.lan

Vediamo cosa è successo all’interno del database:

# mysql vpopmail_db -p
mysql> SELECT * FROM vpopmail;
+------------+--------------+------------------------------------+--------+--------+------------+------------------------------------------------+----------+
| pw_name    | pw_domain    | pw_passwd                          | pw_uid | pw_gid | pw_gecos   | pw_dir                                         | pw_shell |
+------------+--------------+------------------------------------+--------+--------+------------+------------------------------------------------+----------+
| postmaster | anthesia.lan | $1$00000000$Abbv2s40p3/9wSmZsP.000 |      0 |      0 | Postmaster | /home/vpopmail/domains/anthesia.lan/postmaster | NOQUOTA  |
| dave       | domain.local | $1$00000000$rVKz4V7WR45JidlHoa.000 |      0 |      0 | dave       | /home/vpopmail/domains/anthesia.lan/dave       | NOQUOTA  |
+------------+--------------+------------------------------------+--------+--------+------------+------------------------------------------------+----------+

Il nostro mail server è pronto per inviare posta dall’interno della nostra lan e ricevere mail per il dominio domain.local; per completare il tutto occorre modificare il dns relativo al dominio domain.local facendo puntare il campo MX al server che stiamo costruendo e configurare i vari account.

← QMail – Log (CentOS 7)                                                                QMail – Patching (CentOS 7) →