QMail – Vpopmail
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.
Per cui la prima cosa da fare è installare e configurare il database server:
# yum -y groupinstall "MySQL Database server" # yum -y install mysql-devel zlib-devel # service mysqld start # /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 # chkconfig mysqld on
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.15.tar.gz # tar xvfz libev-4.15.tar.gz # ln -s libev-4.15 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 # 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;
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.