Spam

De SME Server Wiki
Révision de 2 mai 2017 à 21:06 par WikiSysop (discussion | contributions) (Augmenter le temps de réponse du serveur)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

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://mirror.pialasse.com/contribs/bread/mailstats/LearnAsSpam.pl
cd /etc/cron.d
wget http://mirror.pialasse.com/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 mailpattern setprop  AHhIYW5k Status enabled
db mailpattern setprop  AHhUYXgg Status enabled
db mailpattern setprop   AMkgICAg Status enabled
db mailpattern setprop  AMlIbDk5Lm Status enabled
db mailpattern setprop  GIF01 Status enabled
db mailpattern setprop  TVoAAAAAA Status enabled
db mailpattern setprop  TVoAAAEAAA Status enabled
db mailpattern setprop  TVoAAAQAA Status enabled
db mailpattern setprop  TVoAACoAG Status enabled
db mailpattern setprop  TVoAAD8AA Status enabled
db mailpattern setprop  TVoFAQUAA Status enabled
db mailpattern setprop  TVoIARMAA Status enabled
db mailpattern setprop  TVouARsAA Status enabled
db mailpattern setprop  TVp1AQEAAAAE Status enabled
db mailpattern setprop  TVpAALQAc Status enabled
db mailpattern setprop  TVpLRVJOR yes Status enabled
db mailpattern setprop  TVpQAAIAA Status enabled
db mailpattern setprop  TVpyAXkAX Status enabled
db mailpattern setprop  TVqQAAMAA Status enabled
db mailpattern setprop n TVqgAAEAAAAFAAAA Status enabled
db mailpattern setprop  TVrQAT8AA Status enabled
db mailpattern setprop  TVrhARwAk Status enabled
db mailpattern setprop  TVrmAU4AA Status enabled
db mailpattern setprop  ZIPV1 Status disabled
db mailpattern setprop  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 règles soient trop restrictives et que vous ayez besoin de faire quelque chose qui contrebalance (score négatif). Vous 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 les entêtes 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 dans le corps du message :

# 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

Augmenter le temps de réponse du serveur

La majorité des serveur de spam n'attendent pas après l'autorisation de parler après le HELO. Par défaut SME attend 1 seconde avant d'envoyer son autorisation. En augmentant sensiblement à 3 secondes le nombre de positif augmentera à la règle early talker (depuis SME9.2 le plugin a été renomé de check_earlytalker à earlytalker):

mkdir -p /etc/e-smith/templates-custom/var/service/qpsmtpd/config/peers/0
cd /etc/e-smith/templates-custom/var/service/qpsmtpd/config/peers/0
echo "earlytalker wait 3" > 10earlytalker
signal-event email-update

Gestion facile des Whitelistes et Blacklistes

Une contribution est apparue afin de gérer les listes plus facilement:

yum --enablerepo smecontribs install smeserver-wbl
signal-event post-upgrade; signal-event reboot

Puis direction le server manager pour configurer

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


Petit Hack pour voir les stats de qmail dans awstats de smeserver-contribs

inspiré de ce tuto : http://wiki.contribs.org/Qmail_Statistics_%28AWStats%29

exécuter ceci après l'avoir examiné http://smeserver.pialasse.com/fichiers/qmail-awstats-setup.v4.sh

cd ~
wget http://smeserver.pialasse.com/fichiers/qmail-awstats-setup.v4.sh
sh qmail-awstats-setup.v4.sh

petit hack (à consulter avant)

cd /etc/e-smith/web/functions/cgi
wget http://smeserver.pialasse.com/fichiers/awstats.patch
patch awstats -i awstats.patch