1. Les solutions en place historiquement
Historiquement, notre serveur de messagerie était placé en frontal de notre site.
Il recevait tous les mails (mails valides, Spams, mails avec une adresse
invalide...). Ces mails étaient ensuite traités par l'anti-spam qui modifiait le
sujet en cas de Spam. Le mail était alors mis dans la boîte mail de l'utilisateur
ou effacé automatiquement, à la discrétion de l'utilisateur.
2. Analyse de la problématique
Avec l'augmentation du nombre de Spams, la charge occasionnée au serveur central
devenait trop importante (principalement au niveau des accès disques). Cette charge
occasionait un ralentissement des accès pour tous les services, ce qui
ralentissait la distribution des mails jusqu'à plus de 45 minutes, même pour les
mails locaux. Nous avons essayé de limiter cette durée pendant plusieurs semaines,
en supprimant des tests plus ou moins inutiles, en modifiant le code de
l'anti-spam, en optimisant sa configuration...
3. Analyse des besoins
Il a donc été mené une étude et nous avons défini le cahier des charges suivant :
- Un anti-spam en amont qui enlève tous les spams garantis (score
Spamassassin supérieur à 12
points)
- Rejet des mails (casser la connexion SMTP avec un code d'erreur) et non
renvoi d'un mail d'erreur (à cause des usurpations d'adresse)
- Aucun stockage de mail sur la passerelle : tous les mails valides sont
immédiatement envoyés au serveur principal. Si il y a une erreur de connexion,
le serveur émetteur renverra le mail un peu plus tard (ou passera par le serveur
de secours)
4. Décisions de mise en oeuvre
Nous avons donc mis en place un serveur 'SMTP-GW' qui répond au cahier des
charges. Cette machine sous Linux est équipée de disques RAID pour la fiabilité.
Pour la partie logicielle, nous avons choisi le logiciel libre
qpsmtpd, qui supporte les tests
anti-spam, vérification des utilisateurs par LDAP, etc. Ce programme supporte aussi
des modules additionnels permettant d'insérer des nouveaux filtres si nécessaire.
5. Retour sur expérience
Problématiques soulevées :
- il faut configurer les Linux pour utiliser le
serveur principal pour l'envoi de mail en mettant "[smtp.grenoble.cnrs.fr]" pour
que le serveur d'émission soit l'adresse du serveur principal et non l'adresse de
la passerelle (ceci pourrait être évité en utilisant un DNS local et un DNS
externe). Les autres plateformes utilisent l'adresse A par défaut, il n'est donc
pas nécessaire de modifier l'adresse.
Avantages constatés :
- Très efficace : 80% des mails reçus sont rejetés (~44% entant que SPAMs (+ de 12 points de pénalité), ~20% sont à destination d'utilisateurs inconnus, le reste pour des raisons diverses)
- Très performant : le traitement prend 3.5 secondes en moyenne
- Charge CPU de la passerelle faible (~20% d'occupation)
- Libération de la charge disque sur le serveur principal permettant une
distribution des mails de l'ordre de la seconde
- Pas de rejet de mails par la passerelle signalé à tort (faux-positif)