Partenaires

CNRS IN2P3
UPMC
UPD
UPMC


Rechercher

Sur ce site

Sur le Web du CNRS


Accueil du site > Le LPNHE > Pages du personnel > Beau Tristan > Divers > Vielleries > anti-spam et imap

anti-spam et imap

25 mars 2003

par Tristan Beau - 18 mai

Je présente ici la méthode que j’ai mise en place pour effectuer le filtrage et l’anti-spamming sur mon compte IMAP. Plusieurs raisons font qu’il m’était difficile de mettre cela en place viaccimap.in2p3.fr le serveur imap du centre de calcul de Lyon :

  • Il n’est pas possible de se logger sur ccimap.in2p3.fr. Donc il n’est pas possible d’installer un anti-spam local configuré pour ses besoins.
  • Je ne souhaite pas télécharger tous les mails de IMAP vers une zone spool de ma machine locale, ce qui aurait permis d’utiliser procmail par exemple.
  • Je n’utilise pas de mailer possédant de filtrage intégré. C’est en particulier le cas de mutt. Notons toutefois que du filtrage anti-spam est rarement disponible via directement un mailer. C’est réservé la plupart du temps à d’autres outils.

Si vous vous trouvez dans ces 3 cas, vous pouvez tenter d’utiliser vous aussi la configuration que j’utilise et que je décris ci-dessous.

Filtrage

Le filtrage est possible en laissant les mails sur le serveur IMAP. Pour cela, j’utilise avec succès imapfilter. La version 0.8.6 est disponible en .tar.gz.

Pour l’installation, faire tout simplement :

Quand vous lancerez imapfilter en tant qu’utilisateur standard, le répertoire .imapfilter/ et le fichier .imapfilterrc seront créés. En particulier, dans le fichier rc, vous spécifierez la machine imap, votre compte et surtout quels filtres appliquer. Le fichier sample.imapfilterrc est très clair là-dessus.

Si vous ne souhaitez pas mettre en clair votre mot de passe, vous pouvez définir un fichier encrypté de mots de passe avec l’option -p de imapfilter. Vous créerez alors une master passphrase, définirez le(s) mot(s) de passe de votre(vos) compte(s) et vous n’aurez besoin à l’avenir que de refournir cette passphrase, un peu comme lors de l’utilisation de ssh.

Si vous voulez que le filtrage ait lieu en continu, vous devez lancer imapfilter en tant que démon. Pour cela, l’option -d {time_in_seconds} assure le filtrage régulièrement. Pour tuer le démon, utilisez l’option -k.

Il peut être avantageux de lancer le filtrage avant de lancer votre mailer et de tuer le démon ensuite. Vous pouvez ainsi définir un petit script qui ressemblerait à cela :

C’est tout pour le filtrage. Passons à la lutte anti-spam.

SpamAssassin

Un outil est quasiment idéal pour marquer comme spam un mail. Il s’agit de spamassassin. En particulier, il trouve les spams selon l’allure du mail (pas de destinataire, pas d’envoyeur clairement défini, mots clefs commerciaux, etc.).

L’installation est aisée. Téléchargez la dernière version .tar.gz sur la page download spamassassin, puis simplement :

Dès lors, SpamAssassin est installé. Si vous aviez la possibilité d’utiliser procmail, ce serait fini (voir la doc de SpamAssassin). Mais via IMAP, il reste encore quelques étapes !

Malgré tout, pour en finir avec SpamAssassin et son installation, vous devez, en tant qu’utilisateur standard, effectuer les opérations suivantes :

pour installer le fichier de préférences de SpamAssassin qui se trouvera dans $HOME/.spamassassin/user_prefs. SpamAssassin fonctionne en donnant des notes à des caractéristiques particulières des mails. Vous pouvez dans ce fichier de personnalisation changer ces scores ou bien ajouter d’autres règles.

AntiSpam et IMAP

Pour utiliser SpamAssassin à distance sur un serveur IMAP, j’ai utilisé IMAP Spam Begone. Pour cela, vous téléchargez isbg.py et vous le placez dans une zone accessible par votre PATH. Pour avoir de l’aide,

En particulier, cet outil peut être lancé en crontab. Pour cela, vous avez besoin que votre mot de passe IMAP soit sauvegardé avec l’option --savepw.

Par défaut, aucune action n’est effectuée sur votre INBOX distante. Si vous spécifiez l’option --delete, les mails jugés SPAM seront déplacés vers le folder IMAP spécifié par l’option --spaminbox (INBOX.spam par défaut).

Le tour est joué !!!

Bon courage pour la mise en place de tout ceci. S’ils y a des erreurs, des inexactitudes ou des mises à jour qui s’imposent pour cette page, n’hésitez pas à me contacter.

Facebook