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 :
- Part. 1 : préparation du serveur
- Part. 2 : Installation de Postfix et Dovecot
- Part. 3 : postfix admin et Mariadb
- Part. 4 : SPF, DKIM et DMARC
- Part. 5 : Roundcube
- Part. 6 : Migration d’un domaine existant
- Part. 7 : rspamd
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