Mail Server: openSUSE, Postfix, Dovecot, MariaDB e Squirrel Mail – Part 2

Published by Lello on

Installiamo la rimanente parte LAMP (Apache, PHP7), postfix-admin, postfix-mysql; l’installazione di quest’ultimo package installerà di default l’utente vmail necessario per la gestione dei domini virtuali. Per gestire manualmente l’uid e il gid dell’utente vmail, cancelleremo e ricreeremo l’utente.

# zypper -n in apache2 php7 php7-mysql apache2-mod_php7 postfix-mysql postfixadmin postfixadmin-apache
# a2enmod php7
# a2enflag POSTFIXADMIN
# userdel vmail
# groupdel vmail
# groupadd -g 5000 vmail
# useradd -u 5000 -g vmail -s /usr/bin/nologin -d /var/vmail -m vmail

Configuriamo la parte SSL di Apache, generando certificati Self-Signed:

# gensslcert -c IT -s Italy -l Florence -o "Anthesia Ltd." -u "IT Dep." -n "mailserver.anthesia.lan" -e "webmaster@anthesia.lan" -y 3650 -Y 3650
# a2enmod ssl
# a2enflag SSL

Disablitiamo l’ascolto di Apache2 sullla porta 80 (HTTP) e teniamolo solo sulla porta 443 (HTTPS); editiamo il file /etc/apache2/listen.conf:

...
LISTEN 80
...

Creiamo il file di configurazione del nostro virtualhost, inserendo nel nuovo file /etc/apache2/vhosts.d/mailserver.anthesia.lan.conf il seguente contenuto:

<IfDefine SSL>
<IfDefine !NOSSL>
<VirtualHost 192.168.100.100:443>
        DocumentRoot "/srv/www/htdocs"
        ServerName mailserver.anthesia.lan:443
        ServerAdmin webmaster@anthesia.lan
        ErrorLog /var/log/apache2/error_log
        TransferLog /var/log/apache2/access_log

        SSLEngine on
	SSLUseStapling  on

        SSLCertificateFile /etc/apache2/ssl.crt/mailserver.anthesia.lan-server.crt
        SSLCertificateKeyFile /etc/apache2/ssl.key/mailserver.anthesia.lan.key
        CustomLog /var/log/apache2/ssl_request_log   ssl_combined

</VirtualHost>

</IfDefine>
</IfDefine>

Abilitiamo ed avviamo il servizio Apache2:

# systemctl enable --now apache2

Continuiamo con la configurazione di PostfixAdmin, editando il file /etc/postfixadmin/config.local.php :

.....
   $CONF['configured'] = true;
   $CONF['database_type'] = 'mysqli';
   $CONF['database_host'] = 'localhost';
   $CONF['database_user'] = 'postfix_user';
   $CONF['database_password'] = 'postfix_pwd';
   $CONF['database_name'] = 'postfix_db';
   $CONF['database_use_ssl'] = false;

Colleghiamoci con un browser alla pagina di postfixadmin (ATTENZIONE: utilizziamo certificati self-signed, quindi il browser ci avvertirà che il sito che stiamo visitando potrebbe essere fraudolento):

https://mailserver.anthesia.lan/postfixadmin/setup.php

Se il sito vi risponde con una pagina bianca, editate il file /usr/share/postfixadmin/common.php e commentate la riga:

require_once("$incpath/lib/random_compat.phar");
// require_once("$incpath/lib/random_compat.phar");

Se tutto è andato bene, verrà effettuato un check dei package installati, verranno create le tabelle nel database postfix_db e vi verrà chiesta la password di setup; potete anche notare il warning relativo all’assenza del package php-imap; tale package viene considerato “deprecated” in openSUSE 15, ma la sua installazione non pregiudiza il corretto funzionamento di postfixadmin.

Una volta inserita la password, premete sul bottone “Generate password hash“.

Generata l’hash della password di setup, il sistema vi presenterà la schermata successiva in cui occorre inserire i dati per il SuperAdmin; in tale pagina è presente anche la riga da inserire nel file di configurazione di PostfixAdmin, che contiene l’hash della password di setup.

Modifichiamo il file di configurazione di postfixadmin ( /etc/postfixadmin/config.local.php ) e cambiamo la password di setup con quella indicata:

$CONF['setup_password'] = '1c............................ef';

Effettuata tale modifica, continuiamo con l’inserimento dei dati del SuperAdmin (inserire la password di setup , l’indirizzo email del SuperAdmin e la relativa password) e premiamo su “Aggiungi amministratore“.

La configurazione di PostfixAdmin è terminata ed è possibile effettuare il login utilizzando le credenziali del SuperAdmin (email/password); l’utente SuperAdmin può creare altri utenti SuperAdmin o Admin (per singoli domini virtuali).

Creiamo manualmente anche la directory che conterrà i dati dei domini virtuali:

# mkdir /var/vmail
# chown -R vmail.vmail /var/vmail
# chmod 700 /var/vmail

← Part 1

Part 3 →