Magazine High tech

Papa papa donne moi du SPAM

Publié le 10 août 2011 par Lmns972 @guestblog

Mais qu'est ce que je raconte encore avec un titre pareil . Ne vous inquietez pas on est pas sur aufeminin.com . Le but ici est de permettre à Spamassassin d'apprendre du SPAM par lui même (avec notre aide également) . Donc nous allons lui donner à manger :) . L'auto apprentisage du SPAM se fait par un filtre bayésien

Pour commencer il faut activer le filtre bayésien .

  1. /*
  2. vim /etc/spamassassin/local.cf
  3. bayes_auto_learn 1
  4. bayes_auto_learn_threshold_nonspam -3
  5. bayes_auto_learn_threshold_spam 12.0
  6. bayes_store_module Mail::SpamAssassin::BayesStore::SQL
  7. bayes_sql_dsn DBI:mysql:spamassassin:localhost
  8. bayes_sql_username nom_base
  9. bayes_sql_password mot_de_passe
  10. bayes_sql_override_username amavis
  11. */

- bayes_auto_learn_threshold_nonspam -3 : On lui file un peu de non-spam ou ham pour un tag inférieur à -3
- bayes_auto_learn_threshold_spam 10.0 : On lui file un peu dspam ou spam pour un tag supérieur à 12

Tu sais quand même créer une BDD et mettre les droits dessus ?

Le fichier SQL à injecter dans votre base se trouve

  1. /*
  2. /usr/share/doc/spamassassin/sql/bayes_mysql.sql
  3. */

Vous devriez avoir ceci

  1. /*
  2. mysql> show tables;
  3. +------------------------+
  4. | Tables_in_spamassassin |
  5. +------------------------+
  6. | bayes_expire |
  7. | bayes_global_vars |
  8. | bayes_seen |
  9. | bayes_token |
  10. | bayes_vars |
  11. +------------------------+
  12. */

Dans la table "bayes_vars" les champs "spam_count | ham_count" afin de déterminer le nombre de spam et de ham appris . Par défaut l'apprentissage est fonctionnel quand le nombre de spam et ham sont supérieurs à 200.
Vous pouvez biensur modier ces valeurs

  1. bayes_min_ham_num
  2. bayes_min_spam_num

Pour terminer un petit script pondu rapidement . Chaque utilisateur pourra glisser dans un répertoire (pour moi il s'agit de SPAM) les mails qu'ils déterminent comme non-sollicités.

  1. /*
  2. #!/bin/bash
  3. #
  4. # Ce script permets de faire spamassassin apprendre le spam et le mettre en base de donnee
  5. #
  6.  
  7. usage ()
  8. {
  9. echo "Usage :syntaxe : $0 [options]
  10. --spam auto apprentissage des spams qui se trouvent dans les directory .SPAM
  11. --delete Pour la suppression des spams de plus de 7 jours
  12. Exemple : $0 --spam
  13. Exemple : $0 --delete "
  14. exit 1
  15. }
  16.  
  17. #Recherche des repertoires SPAM
  18. directoryspam=`find /var/vmail/ -type d -name .SPAM > /tmp/directoryspam.log `
  19.  
  20.  
  21. spam() {
  22. for learn in $(cat /tmp/directoryspam.log) ;
  23. do
  24. sa-learn --spam --dir "$learn"/cur/ ;
  25. done
  26.  
  27. }
  28.  
  29. #Suppression des spams de plus de 7 jours
  30. delete() {
  31.  
  32. for delete in $(cat /tmp/directoryspam.log) ;
  33. do
  34. find "$delete"/cur/ -type f -mtime +7 | xargs rm ;
  35. done
  36. }
  37.  
  38. case "$1" in
  39. --spam )
  40. spam
  41. ;;
  42.  
  43. --delete )
  44. delete
  45. ;;
  46. *)
  47. usage
  48. ;;
  49. esac
  50. */

Il suffit après de mettre en place une tâche cron .
Un peu de documentation ici


Retour à La Une de Logo Paperblog

A propos de l’auteur


Lmns972 3 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte

Dossier Paperblog