proxy inverse pour serveurs SMTP
pour traiter les requêtes des clients, améliorant ainsi la sécurité, les performances et l'évolutivité.

les clients envoient leurs requêtes au proxy inverse,
qui les achemine vers les serveurs appropriés
agissant comme un point d'accès unique et sécurisé.
Principaux avantages :
- Sécurité :
Il peut bloquer les requêtes malveillantes, chiffrer le trafic
et protéger les serveurs backend contre les attaques directes. - Performances :
Il répartit le trafic entrant sur plusieurs serveurs, évitant ainsi la surcharge
d'un seul serveur et garantissant une plus grande disponibilité. - Évolutivité :
Elle vous permet d'ajouter ou de supprimer des serveurs backend sans interruption de service,
offrant ainsi la possibilité de gérer un trafic croissant.
Proxy inverse HTTP uniquement (couche 7)
Plusieurs outils sont disponibles sur Internet ; après des recherches, nous avons initialement écarté ceux qui ne prennent en charge que le protocole HTTP (couche 7) :
Apache
: « Oh là là ! Prenez le temps de vous renseigner sur les technologies que vous utilisez. La messagerie électronique utilise le protocole SMTP. Apache utilise le protocole HTTP. Apache ne connaît absolument rien au protocole SMTP. Si vous souhaitez gérer des messages électroniques, vous aurez besoin d'une technologie compatible SMTP. » – Commentaire de l'EEAA, le 18 août 2016 à 2 h 49
Caddy n'est pas
compatible avec le protocole TCP. « Caddy ne prend pas en charge le proxy TCP, seulement le HTTP sur TCP. Utilisez un proxy inverse capable de gérer le proxy TCP comme Traefik, Nginx ou HAProxy, ou utilisez ce plugin expérimental. » – ElevenNotes, commentaire du 24 septembre 2024
Nous nous sommes ensuite concentrés sur les trois recommandés dans les commentaires : « Traefik, NginX ou HAProxy », en les installant et en les testant un par un.
Traefik était le premier choix.
La plupart des tutoriels commençaient par Docker, une plateforme que je voulais éviter, et j'optais pour une solution simple, éventuellement basée sur l'un des gestionnaires de paquets Linux, comme YUM pour les distributions basées sur RPM comme Fedora et CentOS, ou APT (Advanced Package Tool), qui est utilisé sur les distributions basées sur Debian comme Ubuntu et Debian.
Après une longue recherche, nous avons trouvé cet article récent, qui décrit le type d'installation que nous recherchions : Configurer Traefik en tant que service systemd.
Remarque : vous devez modifier les paramètres SELinux de « Applicatif » à « Permissif »
Après avoir essayé deux formations sur Udemy, nous avons trouvé cette excellente formation :
Traefik Crash Course (sans Docker).
Nous sommes parvenus à la faire fonctionner en reproduisant les exemples fournis. Vers la fin de la vidéo, l'excellent formateur a exprimé son désaccord total avec cet outil :
Traefik Crash Course - 53:50 Summary.
Cela nous a découragés de poursuivre nos tests et nous a conduits à essayer autre chose.
NginX était le deuxième choix
Dans ce cas, l'installation était plus simple, utilisant YUM en résumé :
`yum install epel-release nginx nginx-mod-stream nginx-mod-mail`.
Remarque : sous SELinux, il est nécessaire d'activer le relais :
`setsebool -P httpd_can_network_relay 1`.
Pour la formation, nous avons opté pour la prudence en choisissant le même formateur que pour le cours précédent :
« Initiation à NginX » (la première partie dure environ une heure et vingt minutes). Le formateur n'est pas non plus convaincu par cette application, notamment par le fait qu'elle fasse office à la fois de serveur web et de proxy inverse : «
Initiation à NginX - Résumé 1:20:10 ».
Le rapport conclut : « Je préfère HAProxy à NginX », nous avons donc décidé de tester HAProxy également.
Enfin, nous avons également essayé HAProxy.
L'installation s'est avérée d'une simplicité enfantine, car il s'agit d'une application très courante, disponible dans tous les gestionnaires de paquets Linux, par exemple : `yum install haproxy`
Nous avons également consulté notre formateur de confiance : HAProxy Crash Course.
Cela fonctionne, mais malheureusement, ce n'est PAS adapté à l'authentification SMTP :
« Il est impossible de configurer HAProxy de cette manière, car HAProxy ne prend pas du tout en charge SMTP. »
– lukastribus, commentaire du 17 août 2023
Un serveur SMTP standard en tant que proxy inverse
Au terme de deux semaines de tests, nous avons réalisé qu'il
était préférable d'utiliser un serveur SMTP standard comme proxy inverse pour d'autres serveurs SMTP.
Il remplit sa fonction, utilisant uniquement le protocole SMTP, authentifie correctement les connexions
et peut transférer les requêtes vers d'autres serveurs SMTP via la fonction « smarthost ».
Dans Postfix, dans main.cf, sous
relayhost = [smarthost_address]:port
Dans Sendmail, dans sendmail.mc, comme
define(`SMART_HOST',`mail.example.com')