Spam

De SME Server Wiki
Révision de 8 janvier 2008 à 00:16 par 204.19.246.41 (discussion) (Filtre Bayesien : l'indispensable)

Comment en finir avec les spams sur SME

/!\ par defaut le filtre anti-pourriel(spamassassin) est desactivé pensez à l'activer !


/!\ pour les pressés regardez la section Rush job !!

whitelist blacklist

Vous pouvez blacklister ou whitlister des domaines de receveur ou expéditeur ou smtp d'envoi; ou des comptes mails de receveur expéditeurs. Voici ce que je vous conseille de rajouter au minimum (a adapter suivant vos correspondant usuels ne blacklistez pas le japon si vous êtes importateurs de manga)

db spamassassin setprop wblglobal \
*.my Black \
*.mx Black \
*.ph Black \
*.cc Black \
*.fi Black \
*.co.nz Black \
*.br Black \
*.jp Black \
*.hk Black \
*.ai Black \
*.ru Black \
*.bo Black \
*.pl Black \
*.pk Black \
*finances.gouv.fr White
signal-event email-update

Vous pouriez aussi ajouter en blacklist ces domaines mais voulant epargner des correspondant italiens, anglais et australiens, ainsi qu'un correspondant farfelu en .biz je ne l'ai pas fait.

*.biz
*.it
*.co.uk
*.au

modifications a LearnAsSpam.pl de sonora

Étant particulièrement fainéant j'ai modifié ce fabuleux script pour qu'il apprenne directement de ce qui est dans .junkmail au lieu de learnspam par défaut. Je vais aussi dans les prochains jour le faire arrêter d'effacer et apprendre que les fichier plus vieux que 7 jours et moins vieux que 8 jours. Sachant que spamassassin efface automatiquement les spam dans ce dossier au bout de 90 jour par défaut que j'ai ramené a 15 jour pour ma part. De plus le dossier mail de l'admin n'étant pas au même endroit il est oublié par ce script alors que c'est souvent le premier réceptacle a SPAM.

Attention toutefois ceci peut vous amener a faire apprendre comme spam des messages qui ne le sont pas si vous ne vérifiez pas à temps tous les jours le contenu de junkmail

on modifie le fichier learnasspam.pl, ligne 36 apprentissage dans le dossier "junkmail" directement, par défaut "LearnAsSpam":

mcedit /usr/bin/LearnAsSpam.pl

réglage de la sensibilité de spamassassin en personnalisé

via le serveur manager

rendez vous a la page "Messagerie Electronique" / "configuration de la messagerie électronique"

sensibilité du filtre => personnalisé
Niveau personnalisé de marquage => 4

cette dénomination est trompeuse, cela correspond en fait au score que doit avoir le courrier pour etre considéré comme SPAM.

Niveau de rejet personnalisé => 0

cette valeur correspond au score a partir duquel le mail est totalement rejeté il n'est pas accepté par le serveur, vous n'avez donc aucune trace de son existence. Si vous laissez à 0 tout est accepté et au pire mis dans le dossier .junkmail du destinataire.

Envoyer les pourriels dans la corbeille => Activé

cela signifie en fait mettre les SPAM dans le dossier .junkmail

Modifier le sujet des pourriels => Activé
Pièces jointes à bloquer => toutes sauf les ZIP

en console

config setprop spamassassin Sensivity custom
config setprop spamassassin RejectLevel 10
config setprop spamassassin Taglevel 4
signal-event email-update

Filtre Bayesien : l'indispensable

Le filtre bayesien va vous permettre d'affiner les filtres de spamasssasin. suivez le how to ici: http://www.sonoracomm.com/index.php?option=com_content&task=view&id=49&Itemid=32

Vous pourrez ainsi obtenir une mise a jour automatique, un apprentissage automatique, et en plus un rapport journalier. voici ce que vous devez faire en résumé:

config setprop spamassassin UseBayes 1
signal-event email-update
cd /usr/bin
wget http://distro.ibiblio.org/pub/linux/distributions/smeserver/contribs//bread/mailstats/LearnAsSpam.pl
wget http://distro.ibiblio.org/pub/linux/distributions/smeserver/contribs//bread/mailstats/spamfilter-stats-7.pl
cd /etc/cron.d
wget http://distro.ibiblio.org/pub/linux/distributions/smeserver/contribs//bread/mailstats/LearnAsSpam.cron
wget http://distro.ibiblio.org/pub/linux/distributions/smeserver/contribs//bread/mailstats/mailstats.cron
/etc/rc.d/init.d/crond restart

les lignes suivantes ne sont pas necessaires pour sme >=7.3 car il le fait de base déjà:

cd /etc/cron.daily
wget http://distro.ibiblio.org/pub/linux/distributions/smeserver/contribs//bread/mailstats/sa-update
chmod +x sa-update

Si vous recevez 2 notifications sa-update apres la mise a jour vers 7.3 faites :

rm /etc/cron.daily/sa-update

Problèmes avec Spamfilter stats-7.pl

Si votre SME a subi les mises a jour depuis la version 7.0 voir anterieur il se peut que les logs de qpsmtp n'en disent pas assez pour Spamfilter stat (LogLevel 8). Ceux qui ont installé une SME 7.2 fraiche sont deja en Loglevel 6 à priori.

vous aurez alors des erreurs du style:

Use of uninitialized value in numeric gt (>) at /usr/bin/spamfilter-stats-7.pl line 1047.

la solution :

config setprop qpsmtpd LogLevel 6
signal-event email-update
sv t /var/service/qpsmtpd

et attendez gentiment 24 heures.

réglages avancés pour spamassassin

langue

par défaut c'est "all" si vous êtes parano vous pouvez restreindre à "fr" ou à "fr en"

config setprop spamassassin OkLanguage fr
signal-event email-update

JE DECONSEILLE DE MODIFIER LE PARAMETRE PAR DEFAUT

encodage de caractere

Vous pouvez modifier le parametre par defaut "all"

config setprop spamassassin OkLocales en
signal-event email-update

JE DECONSEILLE DE MODIFIER LE PARAMETRE PAR DEFAUT

classement des spams

utilisation du dossier junkmail

par défaut spamassassin mets les SPAM dans la boite de réception ce qui est très pratique pour les utilisateurs POP en cas de faux positif, mais n'est pas pratique pour l'apprentissage, et surtout ne facilite pas la vie de l'utilisateur ( ce réglage est disponible via le manager):

config setprop spamassassin SortSpam enabled
signal-event email-update


limiter la durée de conservation

par défaut spamassassin garde les mails dans le junkmail 90 jour ce qui est trop long

config setprop spamassassin MessageRetentionTime 15
signal-event email-update

tag des SPAM

pour activer le tag des spams dans le sujet défaut: disabled (réalisable aussi depuis le server-manager)

config setprop spamassassin SubjectTag enabled
signal-event email-update

modification du sujet

vous pouvez modifier ce qui est ajouté aux spam par défaut [SPAM]

config setprop spamassassin Subject POURRIEL
signal-event email-update

a noter que cela n'a pas l'aire de fonctionner car les ajouts par défaut sont ***SPAM***

fichiers joints dangereux

dans le manager

rendez vous a la page "Messagerie Électronique" / "configuration de la messagerie électronique"

Pièces jointes à bloquer => toutes sauf les ZIP

en ligne de commande =

db setprop mailpattern AHhIYW5k Status enabled
db setprop mailpattern AHhUYXgg Status enabled
db setprop mailpattern  AMkgICAg Status enabled
db setprop mailpattern AMlIbDk5Lm Status enabled
db setprop mailpattern GIF01 Status enabled
db setprop mailpattern TVoAAAAAA Status enabled
db setprop mailpattern TVoAAAEAAA Status enabled
db setprop mailpattern TVoAAAQAA Status enabled
db setprop mailpattern TVoAACoAG Status enabled
db setprop mailpattern TVoAAD8AA Status enabled
db setprop mailpattern TVoFAQUAA Status enabled
db setprop mailpattern TVoIARMAA Status enabled
db setprop mailpattern TVouARsAA Status enabled
db setprop mailpattern TVp1AQEAAAAE Status enabled
db setprop mailpattern TVpAALQAc Status enabled
db setprop mailpattern TVpLRVJOR yes Status enabled
db setprop mailpattern TVpQAAIAA Status enabled
db setprop mailpattern TVpyAXkAX Status enabled
db setprop mailpattern TVqQAAMAA Status enabled
db setprop mailpattern TVqgAAEAAAAFAAAA Status enabled
db setprop mailpattern TVrQAT8AA Status enabled
db setprop mailpattern TVrhARwAk Status enabled
db setprop mailpattern TVrmAU4AA Status enabled
db setprop mailpattern ZIPV1 Status disabled
db setprop mailpattern ZIPV2 Status disabled

DNS et RHBL

les activer

config setprop qpsmtpd DNSBL enabled RHSBL enabled
signal-event email-update

pour eviter trop de faux positifs

il arrive que les FAI européen soient règlement listé sur : dnsbl-2.uceprotect.net ou encore sur : list.dsbl.org (gmail est aussi souvent victime). donc essayez de les supprimer.


   config setprop qpsmtpd RBLList \
   :dnsbl-1.uceprotect.net\
   :multihop.dsbl.org:psbl.surriel.com:zen.spamhaus.org
   config setprop qpsmtpd SBLList \
   bogusmx.rfc-ignorant.org:multi.surbl.org:black.uribl.com\
   :rhsbl.sorbs.net:bulk.rhs.mailpolice.com:fraud.rhs.mailpolice.com\
   :porn.rhs.mailpolice.com:adult.rhs.mailpolice.com:ex.dnsbl.org\
   :blackhole.securitysage.com
signal-event email-update

pour les remettre:


   config setprop qpsmtpd RBLList \
   :dnsbl-1.uceprotect.net:dnsbl-2.uceprotect.net:list.dsbl.org\
   :multihop.dsbl.org:psbl.surriel.com:zen.spamhaus.org
   config setprop qpsmtpd SBLList \
   bogusmx.rfc-ignorant.org:multi.surbl.org:black.uribl.com\
   :rhsbl.sorbs.net:bulk.rhs.mailpolice.com:fraud.rhs.mailpolice.com\
   :porn.rhs.mailpolice.com:adult.rhs.mailpolice.com:ex.dnsbl.org\
   :blackhole.securitysage.com
signal-event email-update

désactiver les DNS et RHBL blacklistes

config setprop qpsmtpd DNSBL disabled RHSBL disabled
signal-event email-update

ultime recours pour limiter des spams envahissants

Si vous êtes victimes de SPAMS qui ne sont pas bloqué, vous pouvez créer des règles spécifiques vous même pour spamassassin et donner votre propre score:

Créez un template:

mkdir -p /etc/e-smith/templates-custom/etc/mail/spamassassin/local.cf
vi 85_LOCALS

Ajoutez grace à l'editeur vi vos regles par exemple pour réagir à la présence d'une entête nommée X-MELIOS dans le courrier original et ajouter 5 à la note fournie par SpamAssassin :

# commentaire perso
header XIMELIOS_DETECTED X-MELIOS =~ /Suspected\ Spam/
score XIMELIOS_DETECTED 5

Puis :

expand-template /etc/mail/spamassassin/local.cf
signal-event mail-update

Je vous laisse vous référer a la documentation de spamassassin et aux expressions régulières pour rédiger vos règles. Le but de ce tuto est uniquement de vous aider a adapter à SME. ATTENTION toutefois à ne pas faire une règle trop large qui puisse mettre trop de courrier acceptable dans la catégorie SPAM

rush job

# activer Spamassassin
config setprop spamassassin status enabled
# retension limitée
config setprop spamassassin MessageRetentionTime 15
#
config setprop spamassassin SubjectTag enabled


# activer apprentissage bayesien
config setprop spamassassin UseBayes 1
# installer LearnAsSpam
cd /usr/bin
wget http://distro.ibiblio.org/pub/linux/distributions/smeserver/contribs//bread/mailstats/LearnAsSpam.pl
# installer spamfilter stats
wget http://distro.ibiblio.org/pub/linux/distributions/smeserver/contribs//bread/mailstats/spamfilter-stats-7.pl
# automatiser les taches
cd /etc/cron.d
wget http://distro.ibiblio.org/pub/linux/distributions/smeserver/contribs//bread/mailstats/LearnAsSpam.cron
wget http://distro.ibiblio.org/pub/linux/distributions/smeserver/contribs//bread/mailstats/mailstats.cron
cd /etc/cron.daily
# mise a jour des regles de spamassassin
wget http://distro.ibiblio.org/pub/linux/distributions/smeserver/contribs//bread/mailstats/sa-update
chmod +x sa-update
/etc/rc.d/init.d/crond restart
# personalisation de la sensibilité
config setprop spamassassin Sensivity custom
config setprop spamassassin RejectLevel 0
config setprop spamassassin Taglevel 4
#activation des DNS et RHBL blacklistes (allégées de 2 listes)
config setprop qpsmtpd RBLList \
:dnsbl-1.uceprotect.net:\
:multihop.dsbl.org:psbl.surriel.com:zen.spamhaus.org
config setprop qpsmtpd DNSBL enabled RHSBL enabled
# blocage des domaines indesirables, et inversement
db spamassassin setprop wblglobal \
*.my Black \
*.mx Black \
*.ph Black \
*.cc Black \
*.fi Black \
*.co.nz Black \
*.br Black \
*.jp Black \
*.hk Black \
*.ai Black \
*.ru Black \
*.bo Black \
*.pl Black \
*.pk Black \
*finances.gouv.fr White
#fichier joints a bloquer
db setprop mailpattern AHhIYW5k Status enabled
db setprop mailpattern AHhUYXgg Status enabled
db setprop mailpattern  AMkgICAg Status enabled
db setprop mailpattern AMlIbDk5Lm Status enabled
db setprop mailpattern GIF01 Status enabled
db setprop mailpattern TVoAAAAAA Status enabled
db setprop mailpattern TVoAAAEAAA Status enabled
db setprop mailpattern TVoAAAQAA Status enabled
db setprop mailpattern TVoAACoAG Status enabled
db setprop mailpattern TVoAAD8AA Status enabled
db setprop mailpattern TVoFAQUAA Status enabled
db setprop mailpattern TVoIARMAA Status enabled
db setprop mailpattern TVouARsAA Status enabled
db setprop mailpattern TVp1AQEAAAAE Status enabled
db setprop mailpattern TVpAALQAc Status enabled
db setprop mailpattern TVpLRVJOR yes Status enabled
db setprop mailpattern TVpQAAIAA Status enabled
db setprop mailpattern TVpyAXkAX Status enabled
db setprop mailpattern TVqQAAMAA Status enabled
db setprop mailpattern TVqgAAEAAAAFAAAA Status enabled
db setprop mailpattern TVrQAT8AA Status enabled
db setprop mailpattern TVrhARwAk Status enabled
db setprop mailpattern TVrmAU4AA Status enabled
db setprop mailpattern ZIPV1 Status disabled
db setprop mailpattern ZIPV2 Status disabled


#on  mets tout ca en application
signal-event email-update


plus qu'a creer le dossier LearnAsSpam et à le remplir vous meme des SPAM qui passent encore pour chaque utilisateur qui a envie de s'y coller. Laisser 1 jour à spamassassin le temps de s'adapter.

lexique

  1. SPAM : courriel non désiré ou encore "pourriel"
  2. HAM: courriel, message éléctronique quin'est pas un SPAM
  3. faux positif: HAM qui est detecté comme un SPAM
  4. faux negatif: SPAM qui passe a travers les mailles du filet


sources

http://distro.ibiblio.org/pub/linux/distributions/smeserver/contribs//bread/mailstats/

http://www.sonoracomm.com/index.php?option=com_content&task=view&id=49&Itemid=32

http://forums.ixus.fr/viewtopic.php?t=38672&start=0

http://forums.ixus.fr/viewtopic.php?t=37294&highlight=spamassassin


et voila le resultat

Yes, hits=134.9 required=4.0 tests=DIGEST_MULTIPLE,FB_PENIS,FRT_PENIS1,FRT_SEXUAL,HTML_MESSAGE,PYZOR_CHECK,RAZOR2_CF_RANGE_51_100,RAZOR2_CF_RANGE_E8_51_100,RAZOR2_CHECK,RCVD_IN_PBL,RDNS_DYNAMIC,SARE_ADLTOBFU,SARE_ADLTSUB1,SARE_OBFUSEXUAL,SPF_HELO_SOFTFAIL,SPF_SOFTFAIL,SUBJECT_FUZZY_PENIS,URIBL_AB_SURBL,URIBL_BLACK,URIBL_JP_SURBL,URIBL_OB_SURBL,URIBL_SBL,URIBL_SC_SURBL,USER_IN_BLACKLIST