Installation et Configuration de Spamassassin

spamassassin jpg

Simple et efficace.

SpamAssassin est un programme (en Perl) qui fait passer un certain nombre de tests au message. En fonction du résultat de ces tests, il attribue un score au message.

Si le score dépasse un certain seuil, le courriel est alors considéré comme du Spam. SpamAssassin modifie alors le titre du message (il l'encadre par ***** SPAM *****). De plus, SpamAssassin positionne deux nouveaux en-têtes au message : X-Spam-Status et X-Spam-Level.

Ces deux en-têtes permettent alors de créer des filtres dans votre client de messagerie pour orienter le message (par exemple la corbeille).

Tous les messages doivent donc passer par SpamAssassin pour être traités, avant d’arriver dans leur dossier définitif.

merci Wikipedia.

Pré-requis :

Un serveur mail avec Postfix qui fonctionne :)

Installation :

yum install spamassassin

Vous aurez surement une ribambelle de dépendances à satisfaire (modules Perl) :

perl-Archive-Tar.noarch 1:1.39.1-1.el5_5.2
perl-Crypt-OpenSSL-RSA.x86_64 0:0.25-1.el5.rf
perl-Email-Date-Format.noarch 0:1.002-1.el5.rf
perl-Geography-Countries.noarch 0:2009041301-1.el5.rf
perl-IO-Compress.noarch 0:2.030-2.el5.rf
perl-IP-Country.noarch 0:2.27-1.el5.rf
perl-Mail-SPF.noarch 0:2.006-1.el5.rf
perl-Net-Ident.noarch 0:1.23-1.el5.rf
perl-Pod-Escapes.noarch 0:1.04-1.2.el5.rf
[...]

Configuration :

Les fichiers de configuration se trouvent dans :

  • /etc/mail/spamassassin le plus important est local.cf.
internal_networks 82.11.127.108
internal_networks 84.97.26.22
required_hits 5
report_safe 0
rewrite_header Subject [!!!SPAM!!!]

Pour internal mettez bien tous vos serveurs mx.

  • /etc/sysconfig/spamassassin
# Options to spamd
SPAMDOPTIONS="-d -c -m5 -H -s /var/log/spamd.log"

Les règles sont stockées dans :

/var/lib/spamassassin/3.003001

Pour récupérer les dernières règles, faites de temps en temps :

sa-update -v
Update available for channel updates.spamassassin.org
Update was available, and was downloaded and installed successfully

Ou mieux, une petite tache Cron :

/usr/share/spamassassin
/etc/cron.d/sa-update

Si vous rencontrez des messages d’erreurs en lien avec la gestion des clés, voila la méthode pour régler ce souci :

wget http://spamassassin.apache.org/updates/GPG.KEY
gpg --import GPG.KEY

Vérifier la syntax du fichier local.cf :

spamassassin --lint

Apprendre de nouveau spam à votre filtre bayésien :

Créer un dossier imap dans votre boite (par exemple : spamtolearn), mettez y les spams non détectés et créez une tache cron du genre :

/usr/bin/sa-learn --spam --mbox /var/spool/vmail/titi@toto.org/.spamtolearn

Vous avez la possibilité de faire la même chose si Spamassassin détecte des spam alors que ce sont de vrai mails :

Créer un dossier imap dans votre boite (ex: hamtolearn), mettez y les hams détectés comme spams et créez une tache cron comme celle ci :

/usr/bin/sa-learn --ham --mbox /var/spool/vmail/titi@toto.org/.hamtolearn

Pour la création de Liste blanche :

whitelist_from mimimati@olala.com

mimimati@olala.com est l'adresse dont vous avez totalement confiance.

A mettre dans les fichiers :

  • ~/.spamassassin/user_prefs

ou

  • /etc/mail/spamassassin/local.cf

A savoir, la syntaxe suivante fonctionne :

whitelist_from  *@sparkingwire.com

Même chose pour les listes noir avec la directive : blacklist_from

Tests et validation :

Envoyer un mail avec cette chaine dans le corps du message :

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Il doit être identifié comme spam, et son objet doit être modifié (ajout de : !!!SPAM!!!), si ce n'est pas le cas c'est que votre Spamassassin ne fonctionne pas correctement, il vous faudra peut être jeter un œil dans les logs : /var/log/spam.log et /var/log/maillog, faites un grep sur spam.

Du basique mais c'est ce qu'il me fallait :), à suivre : Sieve.

Vus : 918
Publié par System Linux : 211