Spam

De SME Server Wiki
Révision de 8 mai 2010 à 02:49 par WikiSysop (discussion | contributions) (Règles personnalisées : l'ultime recours pour limiter des spams envahissants)

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 wbl.global \
*.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

Pour vérifier votre black/white list :

db spamassassin show

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 Sensitivity custom
config setprop spamassassin RejectLevel 10
config setprop spamassassin TagLevel 4
signal-event email-update

Filtre Bayesien : l'indispensable

Installation configuration

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://smeserver.pialasse.com/fichiers/spamfilter-stats-7.pl
cd /etc/cron.d
wget http://distro.ibiblio.org/pub/linux/distributions/smeserver/contribs//bread/mailstats/LearnAsSpam.cron
/etc/rc.d/init.d/crond restart


Mailstats

Pour installer mail stats afin de recevoir un email avec un resumé de l'activité mail de la journée:

yum install --enablerepo=smecontribs smeserver-mailstats

Apprentissage manuel

pour le courrier désirable

sa-learn --ham /home/e-smith/files/users/[your-user-name]/Maildir/cur/*

pour le courrier indésirable

sa-learn --spam /home/e-smith/files/users/[your-user-name]/.junkmail/cur/*

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 jours 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 (orange, neuf...) soient règlement listé sur : dnsbl-2.uceprotect.net ou encore sur : list.dsbl.org et meme sur bl.spamcop.net (gmail est aussi souvent victime). donc essayez de les supprimer.


config setprop qpsmtpd RBLList combined.njabl.org:psbl.surriel.com
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
signal-event email-update

désactiver les DNS et RHBL blacklistes

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

Règles personnalisées : l'ultime recours pour limiter des spams envahissants

Il arrive que les scores donnés par défaut par spamassassin soient trop généralistes pour votre activité. PAr exemple si vous avez une activité dans le domaine de la santé ils e peut que votre spam soit plus orienté vers les médicaments que la moyenne, ou que les messages informatiques soient clairement identifiable comme spam. Ou encore que les regles soient trop restrictives et que vous ayez besoin de faire quelque chose qui contrebalance (score négatif). Vosu aurez besoin de maitriser les REGEXP perl Si vous êtes victimes de SPAMS qui ne sont pas bloqués, 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

Ou a la présence de Viagra dans le corps d'un mail :

# handle laposte.net antispam result
header LOCAL_HEAD_VIAGRA  ALL=~ /Viagra/i
score XIMELIOS_DETECTED 2

Ou d'une image de pillules :

# handle too many pills stuff
body LOCAL_MEDS_ONLINE /alt=".* Meds online"/i
score LOCAL_MEDS_ONLINE 5
describe LOCAL_MEDS_ONLINE Regle pour les medocs

Ou si vous voulez sauvegarder de la corbeille ou du refus les messages parlant de chiropratique:

# chiropratique
body LOCAL_CHIRO        /chiropratique/i
score LOCAL_CHIRO  -3
describe LOCAL_CHIRO    Regle pour les chiro

Puis :

expand-template /etc/mail/spamassassin/local.cf
signal-event email-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. Un bon tutorial est disponible ici http://home.comcast.net/~mkettler/sa/SA-rules-howto.txt (en anglais)

Activer l'anti spam pour le LAN

mkdir -p /etc/e-smith/templates-custom/var/service/qpsmtpd/config/peers/local
ln /etc/e-smith/templates/var/service/qpsmtpd/config/peers/local/70spamassassin /etc/e-smith/templates-custom/var/service/qpsmtpd/config/peers/local//etc/e-smith/templates-custom/var/service/qpsmtpd/config/peers/local
expand-template /var/service/qpsmtpd/config/peers/local
signal-event email-update

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://smeserver.pialasse.com/fichiers/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