Mise à jour du 08/12/2021.
Déployer un système de messagerie moderne avec un minimum de sécurisation est une tâche complexe qui demande des compétences dans de nombreux domaines y compris les bases de données selon l'architecture retenue. Disons le tout de suite, ce n'est pas à la portée d'un débutant tant les risques d'erreur sont nombreux.
Nous souhaitons déployer un système de messagerie qui :
Nous choisissons de pouvoir installer notre solution soit sur un serveur local directement connecté à l'Internet, soit sur un serveur "loué" (VPS, serveur dédié, etc.) chez un hébergeur (OVH, LWS, etc.). L'autre critère structurant et la nullité du coût d'investissement. Ces critères imposent une solution sur système d'exploitation Linux. Pour être le plus indépendant possible de la distribution Linux, nous choisissons le système Debian dans sa dernière version : Debian 11. Si vous ne disposez pas d'un compte avec possibilité de droits root ou que nous ne connaissez pas suffisamment Linux ou UNIX, inutile de poursuivre votre lecture.
Nous accédons à ce système via une console et un tunnel SSH. Pour grandement simplifier la modification des fichiers de configuration, nous travaillons depuis une station LINUX et nous utilisons l'explorateur de fichiers Dolphin. Ce dernier est paramétré pour accéder au système de fichier distant via le protocole SFTP (notez que des éditeurs offrent ce type d'outils pour Windows également mais c'est hors de propos ici).
Pour atteindre nos objectifs, il existe une grande quantité de possibilités. La sécurité et la documentation étant des éléments essentiels de choix, voici ce que nous avons retenu :
En outre, quelques outils sont également nécessaires à l'exploitation du système :
Notez que nous utilisons le serveur DNS mis à notre disposition par notre greffier de domaine. L'accès en modification à ce DNS est indispensable aussi bien pour déclarer le ou les serveurs de messagerie du domaine (postfix) que pour mettre en place les mécanismes de sécurité SPF et DKIM. Si vous ne disposez pas d'un tel DNS ou que vous n'y avez pas accès, vous devrez également installer et configurer votre propre DNS (hors du champ de notre système de messagerie). Voici un schéma très simplifié de notre architecture :

Comme on peut le constater, le déploiement d'un système de messagerie est une opération assez compliquée et coûteuse en temps. Comptez une journée de travail pour la réaliser si tout se passe bien et que vos tests s'effectuent quasiment du premier coup. Dans les articles qui suivent, nous détaillons l'installation et la configuration de chaque serveur. Même si certaines installations pourraient être ordonnées différemment, nous vous recommandons de suivre l'ordre proposé :
Enfin, pour ne pas ajouter les petits problèmes au gros et avant toute autre chose, pensez à configurer d'emblée votre pare-feu (ou celui de votre fournisseur pour accepter en entrée le protocole TCP/IP à tout le monde sur les ports 22 (SFTP) [si vous utilisez SSH], 25 (SMTP clair), 80 (HTTP), 443 (HTTPS), 465 (SMTP TLS), 993 (IMAPS) et 995 (POP3S). Notez que nous recommandons de ne pas ouvrir le port 5432 du serveur postgresqlcar il n'est accédé que sur la machine locale (à moins que vous n'ayez déporté votre base de données sur une autre machine). Là encore la configuration du ou des pare-feux est hors du champ de ces articles. Nous limiterons nos explications au protocole IPv4 (pas de prise en compte d'IPv6).
Avant de commencer, vous devez connaître le nom d'hôte de votre machine, son adresse IP, et le domaine Internet sur lequel seront activées les BAL. Vous devez fixer au moins deux adresses de courriel avec leur mots de passe.
Nous prendrons comme exemple :
Le nom du VPS est de la forme vpsXXXXX.serveur-vps.net où XXXXX est un entier. La commande hostname -f retourne cette valeur. Il nous faut donc la changer. Pour cela tapez la commande hostname poste.piapp.fr. La commande précédente retourne la bonne valeur mais il nous faut encore :
Après avoir réinstallé le système de Debian 10 SSH vers Debian 11 SSH, on constate que l'adresse IPv4 du VPS annoncé sur la console n'est pas celle de la machine. Ceci pose un problème avec ce fournisseur pour le reverse DNS de la machine. Or LWS ne propose plus l'accès à la configuration du reverse DNS (enregistrement PTR) de ses serveurs de nom. On dispose simplement du choix d'un reverse DNS sur l'adresse affichée à la console qui n'est pas celle du VPS. La solution la plus souple est d'installer, configurer puis gérer son propre DNS. De cette façon, on dépend le moins du fournisseur qui est certes peu coûteux mais contraignant.
Rédaction par Jean-Marie Piatte (1983-2021)