Lutter contre le spam avec Spamassassin

Cet article décrit comment lutter contre le spam en installant sur votre serveur de mails le logiciel spamassassin couplé au logiciel procmail. Le serveur de mail que je vais configurer utilise Linux/Debian Sarge.

Tout d'abord je suppose que vous avez un serveur de mail qui fonctionne.

Installation de spamassassin

  1. Sous Linux/Debian en tant que root :
    apt-get install spamassasin
  2. Ensuite créez un utilisateur "spamd" qui sera utilisé plus tard pour lancer le démon de spamassassin :
    adduser --disabled-login --system --group spamd
  3. Dans "/etc/default/spamassassin", modifiez les deux variables suivantes :
    ENABLED=1
    OPTIONS="-u spamd"

    La première permet d'activer l'utilisation du démon "spamd", qui accélère le traitement des messages. La seconde permet d'exécuter "spamd" sous une identité non privilégiée ("-u").

  4. Lancez le démon de spamassassin :
    /etc/init.d/spamassassin start
  5. Placez le code suivant dans votre "~/.procmailrc" :
    :0fw
    | /usr/bin/spamc

    Ceci va demander à "procmail" de transmettre tous les mails à "spamc" (c'est un client spamassassin qui transmet au démon "spamd" les messages à tester).

  6. Vous pouvez intercepter les spams avant qu'ils n'arrivent dans votre boite mail en créant une boîte aux lettres supplémentaires et en ajoutant un filtre dans "~/.procmailrc" :
    • Créer la boite mail :
      touch ~/Maildir/spam
    • Ajouter le filtre suivant dans "~/.procmailrc" :
      :0:
      * ^X-Spam-Status: Yes.*
      $HOME/Mail/spam
  7. Faites maintenant des tests en vous envoyant des spams évidents et des messages normaux. Tous les messages normaux qui arrivent sur ce compte doivent comporter des en-têtes supplémentaires. Exemples :
    X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on zeitoun
    X-Spam-Level: 
    X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED autolearn=failed 
            version=3.0.2

    Les spams identifiés comprennent les en-têtes : X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on zeitoun

    X-Spam-Level: **************
    X-Spam-Status: Yes, score=14.4 required=5.0 tests=FORGED_MUA_OUTLOOK,
      FORGED_OUTLOOK_TAGS,HELO_DYNAMIC_IPADDR,HTML_MESSAGE,MIME_HTML_MOSTLY,
      MSGID_FROM_MTA_HOTMAIL,TO_MALFORMED,X_MESSAGE_INFO autolearn=no 
      version=3.0.2

    Le démon "spamd" écrit des informations dans le journal du système :

    grep spamd /var/log/syslog
    Apr 19 19:40:18 zeitoun spamd[8979]: connection from localhost.localdomain [127.0.0.1] at port 52220 
    Apr 19 19:40:18 zeitoun spamd[8979]: processing message <MC9-F34avN3qljWwY0V00077461@mc9-f34.hotmail.com> for kerphi:111. 
    Apr 19 19:40:19 zeitoun spamd[8979]: identified spam (14.4/5.0) for kerphi:111 in 0.6 seconds, 136243 bytes. 
    Apr 19 19:40:19 zeitoun spamd[8979]: result: Y 14 - FORGED_MUA_OUTLOOK,FORGED_OUTLOOK_TAGS,HELO_DYNAMIC_IPADDR,HTML_MESSAGE,MIME_HTML_MOSTLY,MSGID_FROM_MTA_HOTMAIL,TO_MALFORMED,X_MESSAGE_INFO scantime=0.6,size=136243,mid=<MC9-F34avN3qljWwY0V00077461@mc9-f34.hotmail.com>,autolearn=no 
    Apr 19 19:40:21 zeitoun spamd[8980]: connection from localhost.localdomain [127.0.0.1] at port 52224 
    Apr 19 19:40:21 zeitoun spamd[8980]: processing message <D9D5FFDB7800C54BBB584833A1DF4AC05343F5@keex01.winery.kingestate.com> for kerphi:111. 
    Apr 19 19:40:22 zeitoun spamd[8980]: clean message (4.2/5.0) for kerphi:111 in 0.4 seconds, 3558 bytes. 
    Apr 19 19:40:22 zeitoun spamd[8980]: result: .  4 - X_MESSAGE_INFO scantime=0.4,size=3558,mid=<D9D5FFDB7800C54BBB584833A1DF4AC05343F5@keex01.winery.kingestate.com>,autolearn=no

Sources