Ce document a pour but d'expliquer de manière sommaire l'utilisation des moyens mis en place par le CRANS pour filtrer le SPAM (courrier électronique non sollicité, généralement à caractère commercial ou pornographique, et dont l'expéditeur nous est totalement inconnu dans la plupart des cas). Évidemment, tout ce qui est décrit ici n'a de sens que si vous possédez un compte mail sur le serveur du CRANS.
Le filtrage du spam n'est PAS une opération totalement dénuée de risques : les méthodes employées étant complètement automatiques, il est impossible de garantir l'absence de faux positifs (courriers injustement reconnus comme SPAM alors qu'ils n'en sont pas), ni une efficacité de 100% (il y aura toujours un faible pourcentage de mails qui passeront au travers des cribles employés)
Introduction
Ces restrictions de principe explicitées, nous allons maintenant détailler les procédures à mettre en place. Toutefois il faut savoir que celles-ci diffèrent légèrement selon que l'on consulte son mail en POP3 ou en IMAP, et même selon que l'on est sous Windows {~} , GNU/Linux {8} ou un autre OS.
Dernière remarque avant de commencer, si vous lisez votre mail par l'intermédiaire de l'interface Webmail du CRANS, vous consultez votre mail en IMAP (ce détail aura son importance plus loin).
Le filtrage du SPAM au CRANS repose sur quatre éléments :
- Des listes de serveurs connus pour relayer du SPAM de manière régulière : c'est ce que l'on appelle des "blacklists". À ce jour, nous utilisons plusieurs RBL (Realtime Blackhole Lists), dont celle maintenue par mail-abuse.org.
Le Greylisting systématique des serveurs de mail.
Un programme qui analyse le contenu de chaque mail de manière automatique pour y trouver certaines expression, certains mots ou d'autres motifs récurrents caractéristiques des mails sensés être du SPAM. Ce programme s'appelle Spamassassin. Sachez qu'il est entièrement paramétrable au moyen du fichier ~/.spamassassin/user_prefs qui se trouve dans votre home sur zamok. On peut ainsi, si on le désire, ajuster la sensibilité de spamassassin pour ses propres besoins. Je ferai peut-être une note là-dessus à l'occasion
Et enfin le célébrissime programme procmail, également installé sur zamok, et qui sera chargé de filtrer réellement le mail.
Assez causé, qu'est-ce qu'il faut faire ?
Lecture des mails en POP3
C'est vraisemblablement le cas si vous n'utilisez pas l'interface Webmail du CRANS et que vous consultez votre mail en utilisant un logiciel de messagerie comme Outlook Express...
Il va donc falloir vous connecter sur zamok en ssh comme expliqué ici : WikiInformatique/ConnexionSsh
Une fois connecté, on procède ainsi :
zamok% cd zamok% cp /home/stransky/.procmailrc-crans-pop .procmailrc
La copie de ce fichier dans votre répertoire personnel indiquera désormais à procmail qu'il doit vérifier deux choses lorsque vous recevez un mail :
- Le serveur distant est-il blacklisté ?
- Spamassassin considère-t-il ce mail comme du spam ?
Dans l'affirmative, le mail sera "taggué", c'est à dire que le champ Sujet: sera changé de manière à vous permettre de le filtrer de manière effective. Précisément, le début du sujet du mail commencera par "*****SPAM*****".
Contenu du .procmailrc-crans-pop :
# On pipe tout le mail de taille inférieure à 256Ko vers spamc, le client du daemon spamassassin : :0 Whbf * < 256000 | spamc # Si le serveur distant est blacklisté, et si spamassassin n'a pas reconnu le mail comme spam, # on réécrit le sujet pour tagguer le mail. :0 * ^X-Reject: 554 * !^X-Spam-Status: Yes { :0 Whf * ^Subject:\/.* | formail -i "Subject: *****SPAM***** $MATCH" }
Reportez-vous maintenant à la section qui détaille la mise en place d'un fichier .forward pour dire à postfix d'utiliser procmail comme MDA1 disponible sur cette page VieCrans/GérerSesMails.
Il vous suffira ensuite de créer dans votre logiciel de mail une règle spécifique qui détecte la présence de "*****SPAM*****" dans le sujet du mail et place celui-ci dans le répertoire de votre choix (directement à la poubelle en marquant comme lu, il n'y a que ça de vrai )
Lecture des mails en IMAP
Si vous êtes dans ce cas, alors si ce n'est pas déjà fait, vous avez tout intérêt à utiliser procmail pour trier votre mail. Vous pouvez pour cela vous référer à la page VieCrans/GérerSesMails ou à l'aide complète disponible avec la commande man procmailrc. Mais bon, ce n'est qu'un conseil
Et si vous utilisez déjà procmail, il n'y a qu'à inclure le contenu de .procmailrc-crans-imap à votre .procmailrc existant.
Si vous n'avez pas encore de fichier .procmailrc, logguez-vous sur zamok comme décrit sur la page WikiInformatique/ConnexionSsh, puis exécutez les commandes suivantes :
zamok% cd zamok% mkdir -p Mail/.Spam/cur zamok% cp /home/stransky/.procmailrc-crans-imap .procmailrc
Pour information, voici le contenu du .procmailrc-crans-imap :
# On pipe tout le mail de taille inférieure à 256Ko vers spamc, le client du daemon spamassassin : :0 Whbf * < 256000 | spamc # Si c'est du spam, ça part dans la mbox associée : :0 : * ^X-Spam-Status: Yes .Spam/ # Si le serveur distant est blacklisté, et si spamassassin n'a pas reconnu le mail comme spam, # on réécrit le sujet et on redirige tout vers le dossier Spam. :0 E * ^X-Reject: 554 { :0 Whf * ^Subject:\/.* | formail -i "Subject: *****SPAM***** $MATCH" :0 : .Spam/ }
Ce .procmailrc a pour effet de rediriger tout le mail reconnu comme Spam vers le répertoire du même nom ; il ne reste plus au lecteur qu'à faire apparaître ce dossier IMAP pour en lire le contenu. Reportez-vous à présent à la mise en place du .forward disponible sur la page VieCrans/GérerSesMails .
Dernières remarques
Si vous utilisez spamassassin, vous remarquerez vite que les spams reçus en HTML apparaissent en texte brut ; c'est alors la source du mail qui est visible, ceci pour éviter que votre mailer ne déclenche des popups et autres joyeusetés. Toutefois si le mail était valide, la manip pour remettre le bon type MIME peut s'avérer compliquée pour le novice, qui aura peut-être tout intérêt à placer l'option suivante dans son fichier ~/.spamassassin/user_prefs : zamok% echo "defang_mime 0" >> ~/.spamassassin/user_prefs
Un autre paramètre qu'il peut être utile de changer est required_score. Par défaut il vaut 5, et on peut le diminuer pour recevoir moins de spams (à 3.5 par exemple), et l'augmenter si le système qualifie comme spams trop de vrais mails (faux positifs) (à 7 par exemple).
What score is needed to flag an email as spam (via the X-Spam-Status header)? A brand new user may want to raise this score, perhaps to 6 or 7, until you get confident that your server's parameters do not cause excessive false positives. If you server is working extremely well, you might consider dropping this required score to 4.5 or 4 (I suggest dropping it 0.1 at a time to avoid suddenly causing a lot of false positives). Note: Under version 2.5x and 2.6x, this parameter was named required_hits. |
Il est recommandé de choisir un score assez haut pour un utilisateur nouveau, et ensuite de le diminuer progressivement (au fur et à mesure que spamassassin reçoit de plus en plus de mails et entraîne son filtre Bayesien). La documentation officielle suggère de changer ce score de petites valeurs à chaque fois (0.1 ou 0.2).
Plus de détails sur le wiki de SpamAssassin.
Notez toutefois qu'il faut avoir reçu au moins un mail pour que le répertoire .spamassassin soit créé ainsi que tous les fichiers qu'il contient.
Le spam c'est pas bien, moi j'aime pas ça |
Mail Delivery Agent (1)