SpamAssassin

De Wiki NCad
Révision de 6 février 2014 à 14:45 par Cacheln (discuter | contributions) (Configuration de Spamassassin)

Aller à : navigation, rechercher
ICON boxWarning.png

Suite à la nouvelle version de l'article Postfix, cet article est en cours mis à jour.


Installation

  • Il est nécessaire d'installer spamassassin mais aussi les paquets razor et pizor pour la détection des messages considérés comme SPAM :
ICON Terminal.png

sudo apt-get install spamassassin pyzor razor

Configuration de base

Activation du programme

  • Par défaut, le module est désactivé. Pour être lancé il faut remplacer dans le fichier /etc/default/spamassassin :
ENABLED=0
  • Par :
ENABLED=1

Création de l'utilisateur spamd

  • Spamassassin s'exécute avec les droits et permissions de l'utilisateur spamd. Cependant, cette utilisateur n'est pas crée à l'installation du programme. Il va donc falloir le créer :
ICON Terminal.png

sudo groupadd spamd
sudo useradd -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd
sudo chown spamd:spamd /var/lib/spamassassin
sudo mkdir /var/log/spamd
sudo chown spamd:spamd /var/log/spamd

Configuration de Spamassassin

  • Le configuration de Spamassassin se trouve dans le fichier /etc/spamassassin/local.cf. On va y dé-commenter les lignes suivantes :
rewrite_header Subject *****SPAM*****
report_safe 1
required_score 5.0
use_bayes 1
bayes_auto_learn 1
bayes_ignore_header X-Spam-Status
  • Une fois le fichier de configuration renseigné, on peut démarrer Spamassassin :
ICON Terminal.png

sudo service spamassassin start

Configuration de Postfix

  • Éditer le fichier de configuration /etc/postfix/master.cf et remplacer :
smtp      inet  n       -       -       -       -       smtpd
  • Par :
smtp      inet  n       -       -       -       -       smtpd
       -o content_filter=spamassassin
  • En fin de fichier ajouter :
spamassassin unix -     n       n       -       -       pipe
       user=spamd argv=/usr/bin/spamc -f -e
       /usr/sbin/sendmail -oi -f ${sender} ${recipient}
  • Redémarrer le service Postfix pour appliquer les changements :
ICON Terminal.png

sudo service postfix restart

Validation

  • Pour tester le comportement de Spamassassin, on va s'envoyer un faux positif; c'est à dire un mail censé être détecté comme spammeur. Pour cela, on s’envoie un mail contenant la chaîne de caractères suivante :
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
  • Spamassassin tague l'objet du message avec la chaîne *****SPAM*****. On remarquera également que Spamassassin ajoute un texte d'introduction avant le corps du mail pour informer l'utilisateur que le message a été identifié comme potentiellement dangereux :
------------------ Début de Rapport SpamAssassin ---------------------
Ce message est probablement du SPAM (message non sollicité envoyé en
masse, publicité, escroquerie...).

Cette notice a été ajoutée par le système d'analyse "SpamAssassin" sur
votre serveur de courrier "alice", pour vous
aider à identifier ce type de messages.

Le système SpamAssassin ajoute un en-tête "X-Spam-Flag: YES" aux
messages qu'il considère comme étant probablement du Spam.
Vous pouvez si vous le souhaitez utiliser cette caractéristique
pour régler un filtre dans votre logiciel de lecture de courrier,
afin de détruire ou de classer à part ce type de message.

Si ce robot a classifié incorrectement un message qui vous était
destiné, ou pour toute question, veuillez contacter l'administrateur
du système par e-mail à the administrator of that system .

Voir http://spamassassin.apache.org/tag/ pour plus de détails (en anglais).

Détails de l'analyse du message:   (999.0 points, 5.0 requis)
-1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
1000 GTUBE                  BODY: Test générique de courrier non sollicté en masse
 0.0 HTML_MESSAGE           BODY: HTML inclus dans le message
 0.0 MIME_QP_LONG_LINE      RAW: Ligne quoted-printable de plus de 76
                           caractères

-------------------- Fin de Rapport SpamAssassin ---------------------

Le message original n'étant pas au format text brut, il est peut-être
dangereux de l'ouvrir avec votre logiciel e-mail ; en particulier il
pourrait contenir un virus, ou confirmer à l'expéditeur que votre
adresse e-mail est active, et peut recevoir du spam. Si vous voulez
lire ce message, et n'êtes pas certain de la sécurité de votre logiciel
e-mail, il est plus prudent d'enregistrer ce message sur votre disque
dur, et de l'afficher ensuite avec un éditeur de texte.
  • Dans l'en-tête du mail incriminé, le score attribué par Spamassassin apparaît :
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on alice
X-Spam-Flag: YES
X-Spam-Level: **************************************************
X-Spam-Status: Yes, score=999.0 required=5.0 tests=ALL_TRUSTED,GTUBE,
	HTML_MESSAGE,MIME_QP_LONG_LINE autolearn=no version=3.3.2

Utilisation d'une base Sql

  • Il peut être intéressent d'utiliser une base de données Sql pour stocker les règles de Spamassassin propre à chaque utilisateur du domaine de messagerie.
ICON Light.png
La documentation qui suit est basé sur l'utilisation d'une base de données MySQL. Nous considérerons que la base est déjà fonctionnel.

Connexion à la base de données

  • Nous allons créer le fichier de configuration /etc/spamassassin/sql.cf et y insérer les lignes suivantes :
user_scores_dsn                  DBI:mysql:postfix:10.0.0.47:3306
user_scores_sql_password         motdepassebasemysqlpourpostfix
user_scores_sql_username         postfix
user_scores_sql_custom_query     SELECT preference, value FROM _TABLE_ WHERE username = _USERNAME_ OR 
                                username = '$GLOBAL' OR username = CONCAT('%',_DOMAIN_) ORDER BY username ASC
ICON Information.png

Spamassassin charge sa configuration au travers de tous les fichiers portant l’extension .cf contenu dans le dossier /etc/spamassassin/.

Structure de la table

CREATE TABLE userpref (
  username varchar(100) NOT NULL default ,
  preference varchar(30) NOT NULL default ,
  value varchar(100) NOT NULL default ,
  prefid int(11) NOT NULL auto_increment,
  PRIMARY KEY  (prefid),
  KEY username (username)
)

Autre conf

Renseigner le fichier comme tel :

rewrite_header Subject [***** SPAM _SCORE_ *****]
required_score           2.0
#to be able to use _SCORE_ we need report_safe set to 0
#If this option is set to 0, incoming spam is only modified by adding some "X-Spam-" headers and no changes will be made to the body.
report_safe     0

# Enable the Bayes system
use_bayes               1
use_bayes_rules         1
# Enable Bayes auto-learning
bayes_auto_learn        1

# Enable or disable network checks
skip_rbl_checks         0
use_razor2              0
use_dcc                 0
use_pyzor               0

Liens