Serveur mail et webmail – part. 1 – préparation

Suite à l’annonce de l’arrêt de GandiMail et les prix du service de remplacement, les boites aux lettres de la famille seront hébergées sur un serveur dédié. Dans cette suite d’articles, nous allons installer un serveur complet (postfix, dovecot, postfix admin, SPF, DKIM, Roundcube,…) sur une debian 12 avec uniquement des paquets de la distribution.

Ce que nous allons faire

L’installation du serveur nécessite quelques étapes détaillées dans les articles suivant :

Nommons le serveur

Le serveur retenu est chez Hetzner CAX11 (2 vcpu ARM, 4Go RAM, 40Go SSD) sous debian 12. Il va s’appeler klopmail.dync.fr. Hetzner attribue un /64 à la machine nous utiliserons la première du subnet.

root@klopmail:~# hostnamectl set-hostname klopmail.dync.fr
root@klopmail:~# reboot

Côté DNS (toujours chez Gandi), je crée des entrées A et AAAA pour le serveur et des CNAME ‘smtp, pop, imap et webmail’ sur les deux domaines de mon serveur de messagerie. Certains clients peuvent utiliser les trois premiers enregistrements pour la configuration automatique. Pour la zone dync.fr

Puis pour la zone framboisier.fr (sans oublier le point à la fin des CNAME)

Côté Hetzner réglons le reverse DNS.

et pour ip v4

Certificat

Les services smtp, imap et webmail seront joignables en TLS. Je vais créer un certificat à tout faire. Comme, j’en aurai besoin pour le webmail, je vais utiliser le module md d’Apache pour l’obtenir auprès de let’s encrypt.

root@klopmail:~# apt-get install apache2
...
ice.
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for libc-bin (2.36-9) ...
root@klopmail:~# vi /etc/apache2/mods-available/md.conf

Je crée un fichier de configuration du module md

MDCertificateAgreement accepted
LogLevel md:info
#change l'adresse mail avec la tienne
MDContactEmail xyz@exemple.tld
MDCAChallenges tls-alpn-01
MDRequireHttps temporary

puis je crée un virtual host :

root@klopmail:~# vi /etc/apache2/sites-available/010-klopmail.conf

Avec le contenu suivant :

MDomain klopmail.dync.fr imap.dync.fr pop.dync.fr smtp.dync.fr webmail.dync.fr imap.framboisier.fr pop.framboisier.fr smtp.framboisier.fr webmail.framboisier.fr
<VirtualHost _default_:443>
        serverName klopmail.dync.fr
        serverAlias imap.dync.fr pop.dync.fr smtp.dync.fr webmail.dync.fr imap.framboisier.fr pop.framboisier.fr smtp.framboisier.fr webmail.framboisier.fr
        documentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/klopmail-error.log
        CustomLog ${APACHE_LOG_DIR}/klopmail-access.log combined
        SSLEngine on
        SSLOpenSSLConfCmd MinProtocol TLSv1.2
        Protocols h2 http/1.1 acme-tls/1
</VirtualHost>

J’active les modules, le sites. Je teste la conf et je redémarre

root@klopmail:~# a2enmod ssl
...
root@klopmail:~# a2enmod md
...
root@klopmail:~# a2ensite 010-klopmail.conf
...
root@klopmail:~# apachectl --testconfig
...
root@klopmail:~# apachectl restart
root@klopmail:~# apachectl restart

Le certificat et sa clé privée sont dans /etc/apache2/md/domains/klopmail.dync.fr sous privkey.pem et pubcert.pem (il reste un détail a régler : la prise en compte par les autres programmes lors du renouvellement de certificat). Avec un navigateur on peut examiner le certificat en se connectant à l’une des URLs par exemple https://webmail.framboisier.fr

Tous les SAN (subject alternative name – nom alternatif du sujet) sont présents.

La suite au prochain article Part. 2 : Installation de Postfix et Dovecot

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *