Règles efficaces pour SpamAssassin

Forum d'assistance et d'échange sur l'installation, la configuration, et l'utilisation des système Linux et BSD. Vous pouvez y poster vos questions concernant ces systèmes d'exploitation en faisant l'effort préalable de rechercher dans le forum, dans les manuels et les documentations que la réponse n'y figure pas.

Modérateur: modos Ixus

Règles efficaces pour SpamAssassin

Messagepar jdh » 20 Juil 2006 10:38

Bonjour, (à mon tour de poser une question)

J'utilise plusieurs config avec du Debian Sarge (3.1 = stable) avec l'ensemble (très classique) de logiciels Postfix+MySQL+Courier-{Imap/Pop}+Amavis+Clamav+SpamAssassin. Tout cela pour gérer les boites mails de l'entreprise ou de l'asso concernée, en suivant l'excellent howto de http://workaround.org.

Cependant, si je vois bien l'utilisation de freshclam pour les mises à jour de Clamav, je n'obtiens qu'une efficacité très faible pour SpamAssassin.

Il est clair qu'il n'existe pas de mise à jour auto de règles SpamAssassin (et même cela serait stupide puisque les spameurs en tireraient tout de suite profit).

Cependant, il doit bien y avoir sur ce forum des personnes ayant travaillé cet aspect pour obtenir enfin une certaine efficacité pour SpamAssassin.

En fait les notes d'évaluation des mails sont insufisantes. Je pense donc que SpamAssassin, par défaut, n'est pas assez bien réglé pour des utilisateurs français.

Avez-vous fait donc des réglages spécifiques et supplémentaires pour SpamAssassin ? (peu importe la distrib bien sur).
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar micjack » 20 Juil 2006 13:36

Salut,

N'étant pas trés satisfait des scores et régles par défaut, j'utilise le fichier etc/mail/spamassassin/local.cf
Le local.cf est un fichier custom et l'on peut coller des régles perso basées sur les expressions régulières de Perl.

Exemples:
Code: Tout sélectionner
/aus/       trouve 'aus' - même dans 'chaussée' ou 'Gauss'
/aus?/       trouve 'aus' etc... - mais aussi 'au' et 'aut'
/a./       trouve 'as' et 'an' (un quelconque autre signe derrière 'a', excepté \n)
/a+/       trouve 'a' und 'aa' und 'aaaaa' (une ou un nombre quelconque de lettres 'a')
/a*/       trouve 'a' und 'aa' und 'aaaaa' et 'b' (pas de ou un nombre quelconque de lettres 'a')
/Ge.s/       trouve 'Gers' et 'Gens' mais pas 'Genes'
/Ge.+s/       trouve 'Gers' et 'Gens' et 'Genes' (un signe quelconque ou un nombre quelconque de signes       quelconques, excepté \n)
/Ge.s/       trouve 'Gers' et 'Gens' mais pas 'Gene'
/Ge.?s/       trouve 'Gers' et 'Gens' et 'Gene'
/x{10,20}/    trouve entre 10 et 20 'x' à la suite
/x{10,}/       trouve 10 'x' et plus à la suite
/x.{2}y/       trouve 'xxxy' ou 'xaby' etc... (deux signes quelconques entre 'x' et 'y', excepté \n)
/Jean\b/       trouve 'Jean' mais pas 'Jeannot' (limite du mot)
/\bvers/       trouve 'verser' ou 'versatile' mais pas 'envers' (limite du mot)
/\bvers\b/    trouve 'vers' mais pas 'envers' ni 'verser' (limite du mot)
/\bvers\B/    trouve 'verser' mais ni 'vers' et ni 'envers' (limite du mot et limite du mot "négative")
/^Jean/       trouve 'Jean' seulement au début du passage à parcourir
/Jean$/       trouve 'Jean' seulement à la fin du passage à parcourir
/^\s*$/       trouve les lignes ne comprenant que des espaces ou autres signes d'espacement ou qui sont vides
/$Nom/       interprète le contenu de la scalaire $Nom comme expression régulière


Et pour la casse "i" Ne tien pas compte des minuscules ou majuscules

Y'a franchement de quoi faire pour contrer l'imagination d'un spameurs. Tout y'est: Filtrage du contenu, mot commencant par ...., les espaces dans les mots, ...etc

Les régles sont à coller juste dessous des ces lignes.
Code: Tout sélectionner
required_hits 5.0
rewrite_header Subject ****SPAM STOP*****
use_bayes 1
auto_learn 1
ok_languages fr <----- Je n'accepte que les mail en Français


Par exemple, le mot sera filtré sur le contenu "agra" genre "viagra" meme si le mot est "agrave" (evec i pour ignorer miniscule, majuscule)
Code: Tout sélectionner
body LOCAL_DEM_VIAGRA /agra/i 
score LOCAL_DEM_VIAGRA 5


Autre exemple, "bbabes" le filtrage concernera uniquement les mots commencants pas "babes"
Code: Tout sélectionner
body LOCAL_DEM_BABES /\bbabes/i
score LOCAL_DEM_BABES 5


Valable pour tout les mots qui te passe par la tete
/porn/ /pharm/ /teen/ /gangb/ ...etc

Pour LOCAL_DEM_CE_QUE_TU_VEUX c'est juste pour identifier la regle

Pour le score, remetre exactement le nom de la regle
score LOCAL_DEM_CE_QUE_TU_VEUX 1,2,3,4 et plus

Pour le niveau de rejet tu met un score hard, un mot comme viagra avec un score de 5, il est marqué sans concession.

Tu peux par contre autoriser des potes à t'envoyer des cochoneries avec
whitelist_from monpote1@domaine, monpote2@domaine ou par domaine @wanadoo.fr

Interdire un domaine ou une adresse
blacklist_from @yahoo.com
Mais bon, cela se configure déja sur un client ou un serveur de mail

Voili
micjack
Amiral
Amiral
 
Messages: 3113
Inscrit le: 06 Juin 2003 00:00
Localisation: Varois

Messagepar jdh » 20 Juil 2006 15:32

Super micjack !

Comme d'hab, un bon travail =D>

J'avais trouvé les "required" et autre "ok_languages" mais pas celles plus haut. Neanmoins, hors "bayes" et "learn", cela reste un peu artisanal. M'enfin je ne recevrais pas les bons messages pour agrandir mon .... Cela dit, ce n'est pas nécessaire car c'est comme les jambes "la bonne longueur c'est qu'elles arrivent jusqu'au sol" :lol:
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Re: Règles efficaces pour SpamAssassin

Messagepar lembal » 22 Juil 2006 11:13

jdh a écrit:Bonjour, (à mon tour de poser une question)

J'utilise plusieurs config avec du Debian Sarge (3.1 = stable) avec l'ensemble (très classique) de logiciels Postfix+MySQL+Courier-{Imap/Pop}+Amavis+Clamav+SpamAssassin. Tout cela pour gérer les boites mails de l'entreprise ou de l'asso concernée, en suivant l'excellent howto de http://workaround.org.

Cependant, si je vois bien l'utilisation de freshclam pour les mises à jour de Clamav, je n'obtiens qu'une efficacité très faible pour SpamAssassin.

Il est clair qu'il n'existe pas de mise à jour auto de règles SpamAssassin (et même cela serait stupide puisque les spameurs en tireraient tout de suite profit).

Cependant, il doit bien y avoir sur ce forum des personnes ayant travaillé cet aspect pour obtenir enfin une certaine efficacité pour SpamAssassin.

En fait les notes d'évaluation des mails sont insufisantes. Je pense donc que SpamAssassin, par défaut, n'est pas assez bien réglé pour des utilisateurs français.

Avez-vous fait donc des réglages spécifiques et supplémentaires pour SpamAssassin ? (peu importe la distrib bien sur).


Sinon avec Postfix, tu peux utiliser les body_checks et les header_checks très efficaces quand ils sont mis à jours régulièrement...
lembal
Vice-Amiral
Vice-Amiral
 
Messages: 880
Inscrit le: 13 Jan 2003 01:00
Localisation: Paris

Messagepar Walkyrie_II » 22 Juil 2006 12:07

Oui perso j'utilise beaucoup le header_checks (pour suprimer les entetes aussi), mais tu n'as pas la granularité avec un score. Soit c'est OK, soit REJECT, soit DUNNO.

Par contre je vois tres rarement l'utilisation de la commande disable_vrfy_command à yes.
Contre le span c'est quant meme bien.
"Disable the SMTP VRFY command. This stops some techniques used to harvest email addresses."
Walkyrie_II
Enseigne de vaisseau
Enseigne de vaisseau
 
Messages: 179
Inscrit le: 04 Fév 2006 21:33
Localisation: Paris

Messagepar jdh » 22 Juil 2006 12:55

Je pense que, si tu es en réception directe sur ton nom de domaine (adr ip fixe), le mieux est Postfix+greylisting (dans la distrib stable postfix-gld) qui est le plus efficace pour limiter le spam direct.

Hélas je suis en adr ip variable et je me contente donc de fetchmail !!

Merci néamoins pour vos retours.
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar Methos_Hi » 22 Juil 2006 18:10

Pour la mise à jour auto ya rulesdujour.
Parmi les srcipts proposés, il y en a un adapté au francais entre autres.

Voici un point de départ pour la retrouver:
http://www.exit0.us/index.php?pagename=RulesDuJour
http://www.rulesemporium.com/rules.htm
Avatar de l’utilisateur
Methos_Hi
Amiral
Amiral
 
Messages: 1520
Inscrit le: 07 Fév 2004 01:00
Localisation: Ile de France

Messagepar lembal » 27 Juil 2006 15:39

Methos_Hi a écrit:Pour la mise à jour auto ya rulesdujour.
Parmi les srcipts proposés, il y en a un adapté au francais entre autres.

Voici un point de départ pour la retrouver:
http://www.exit0.us/index.php?pagename=RulesDuJour
http://www.rulesemporium.com/rules.htm


J'ai essayé d'installer RulesduJour... je lance la mise à jour :

Rules Du Jour Run Summary:RulesDuJour Run Summary on ********:

Code: Tout sélectionner
***NOTICE***: spamassassin --lint failed.  This means that you have an error somwhere in your SpamAssassin configuration.  To determine what the problem is, please run 'spamassassin --lint' from a shell and notice the error messages it prints.  For more (debug) information, add the -D switch to the command.  Usually the problem will be found in local.cf, user_prefs, or some custom rulelset found in /etc/spamassassin.  Here are the errors that 'spamassassin --lint' reported:

config: SpamAssassin failed to parse line, skipping: rewrite_subject    1
config: SpamAssassin failed to parse line, skipping: ok_language        fr en
config: SpamAssassin failed to parse line, skipping: auto_learn         1


Bon bah voilà, ça partait d'une bonne idée ! :roll:
lembal
Vice-Amiral
Vice-Amiral
 
Messages: 880
Inscrit le: 13 Jan 2003 01:00
Localisation: Paris

Messagepar micjack » 27 Juil 2006 21:55

Cherchant depuis bien longtemps des regles préetalies radicales, j'ai connu à mon tour "rules du jour"

Mais bon, du moment que l'on a les elements pour concevoir ses propres régles/scores, autant les utiliser.

Je reconstruit une régle relative à chaque spam qui passe.. Ca tient sur deux lignes, une pour le mot , l'autre pour le score..

Contrairement à la config par défaut, y'a plus qu' 1 spam sur 100 qui passe..
micjack
Amiral
Amiral
 
Messages: 3113
Inscrit le: 06 Juin 2003 00:00
Localisation: Varois

Messagepar lembal » 28 Juil 2006 09:49

micjack a écrit:Cherchant depuis bien longtemps des regles préetalies radicales, j'ai connu à mon tour "rules du jour"

Mais bon, du moment que l'on a les elements pour concevoir ses propres régles/scores, autant les utiliser.

Je reconstruit une régle relative à chaque spam qui passe.. Ca tient sur deux lignes, une pour le mot , l'autre pour le score..

Contrairement à la config par défaut, y'a plus qu' 1 spam sur 100 qui passe..


Je fais pareil mais avec les directives body_checks et header_checks de Postfix (en REJECT) , ce qui me permet de ne pas saturer les boîtes mails de mes utilisateurs avec des spams délocalisés dans un "junkmail directory"... de plus il y a très peu de faux positifs.

Un petit...

Code: Tout sélectionner
egrep '(reject|error|fatal|panic):' /var/log/mail.log | less


... dans un cron me remonte les infos (faux positifs/vrais positifs) et me permet d'adapter les filtres.

Voici ce que j'ajoute en plus à ma configuration de Postfix par défaut :

Code: Tout sélectionner
content_filter = smtp-amavis:[127.0.0.1]:10024

smtpd_proxy_ehlo = antispam.securitysage.com
smtp_send_xforward_command = yes
smtpd_client_connection_count_limit=10
disable_vrfy_command = yes
smtpd_etrn_restriction = reject
message_size_limit = 32768000
bounce_size_limit = 65536
header_size_limit = 32768
smtpd_recipient_limit = 128
smtpd_timeout = 180

strict_rfc821_envelopes = yes
allow_untrusted_routing = no
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20
smtpd_error_sleep_time = 1s

smtpd_data_restrictions = reject_unauth_pipelining

smtpd_recipient_restrictions = permit_mynetworks, check_relay_domains, reject_unauth_destination, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_pipelining, reject_unverified_sender, reject_unverified_recipient, reject_multi_recipient_bounce, reject_rhsbl_client blackhole.securitysage.com, reject_rhsbl_sender blackhole.securitysage.com, reject_rbl_client relays.ordb.org

header_checks = regexp:/etc/postfix/header_checks
body_checks = regexp:/etc/postfix/body_checks

smtpd_helo_required = yes
smtpd_helo_restrictions =
smtpd_client_restrictions =
smtpd_sender_restrictions =


Et globalement ça marche pas mal... Et pour les spams qui arrivent encore à passer il reste spamassassin réglé sur un score de 3.1 (score afûté avec le temps) !
lembal
Vice-Amiral
Vice-Amiral
 
Messages: 880
Inscrit le: 13 Jan 2003 01:00
Localisation: Paris

Messagepar Methos_Hi » 29 Juil 2006 13:20

Le problème ne vient pas de rulesdujour.

Certaines règles par défaut de spamassassin sont mal formées.
Voilà pourquoi "spamassassin --lint" echoue.
tu peux toi même lancer cette commande avec même un mode debug pour voir ou sont les pb.
Avatar de l’utilisateur
Methos_Hi
Amiral
Amiral
 
Messages: 1520
Inscrit le: 07 Fév 2004 01:00
Localisation: Ile de France

Messagepar lembal » 02 Août 2006 11:03

Methos_Hi a écrit:Le problème ne vient pas de rulesdujour.

Certaines règles par défaut de spamassassin sont mal formées.
Voilà pourquoi "spamassassin --lint" echoue.
tu peux toi même lancer cette commande avec même un mode debug pour voir ou sont les pb.


Pourtant mon local.cf est tout ce qu'il y a de plus normal...?!

Code: Tout sélectionner
rewrite_subject 1
rewrite_header  Subject *****SPAM*****
required_hits   3.1
ok_language     fr en
use_bayes       1
auto_learn      1
lembal
Vice-Amiral
Vice-Amiral
 
Messages: 880
Inscrit le: 13 Jan 2003 01:00
Localisation: Paris

Messagepar Gand76 » 10 Mars 2008 18:56

Bonjour,

je suis en train de me faire une config SpamAssassin, et j'aimerais savoir si Razo/Pyzor/DCC sont réellement utiles, et s'ils apportent un plus. Qu'apportent-ils ? Le filtre bayésien ne suffit pas ?

Merci de vos réponses.

Gand76
Gand76
Matelot
Matelot
 
Messages: 1
Inscrit le: 10 Mars 2008 18:55

Messagepar jibe » 10 Mars 2008 20:13

Salut,

Tout dépend tu spam que tu as, et de tes exigences !

Perso, je n'utilise pas. Essaie déjà de faire ce que préconise 109 (désolé, JP, mais c'est plus simple à écrire que meitnerium ou autre unnilennium :lol: ) dans son wiki. Si ça ne te convient pas, tu pourras toujours compléter.
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie


Retour vers Linux et BSD (forum généraliste)

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron