« SpamAssassin » : différence entre les versions
Aucun résumé des modifications |
|||
Ligne 21 : | Ligne 21 : | ||
=== Séparation des logs === | === Séparation des logs === | ||
* Pour éviter de trop encombrer les logs de '''[[Postfix]]''' dans le fichier '''/var/log/mail.log''', nous allons séparer les logs de ''' | * Pour éviter de trop encombrer les logs de '''[[Postfix]]''' dans le fichier '''/var/log/mail.log''', nous allons séparer les logs de '''SpamAssassin'''. Pour cela, on insère les éléments suivant juste avant la ligne '''OPTIONS''' : | ||
SAHOME="/var/log/spamd/" | SAHOME="/var/log/spamd/" | ||
Ligne 35 : | Ligne 35 : | ||
=== Création de l'utilisateur spamd === | === 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 : | ||
{{ Box Console | objet=sudo groupadd spamd<br /> | {{ Box Console | objet=sudo groupadd spamd<br /> | ||
Ligne 43 : | Ligne 43 : | ||
sudo chown spamd:spamd /var/log/spamd}} | sudo chown spamd:spamd /var/log/spamd}} | ||
=== Configuration de | === Configuration de SpamAssassin === | ||
* Le configuration de ''' | * 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***** | rewrite_header Subject *****SPAM***** | ||
Ligne 54 : | Ligne 54 : | ||
bayes_ignore_header X-Spam-Status | bayes_ignore_header X-Spam-Status | ||
* Une fois le fichier de configuration renseigné, on peut démarrer ''' | * Une fois le fichier de configuration renseigné, on peut démarrer '''SpamAssassin''' : | ||
{{ Box Console | objet=sudo service spamassassin start }} | {{ Box Console | objet=sudo service spamassassin start }} | ||
Ligne 78 : | Ligne 78 : | ||
{{ Box Console | objet=sudo service postfix restart}} | {{ Box Console | objet=sudo service postfix restart}} | ||
=== Mise à jour des bases === | |||
* Il est nécessaire de mettre à jour régulièrement les bases de '''SpamAssassin'''. La commande suivante permet d'effectuer sa mise à jour : | |||
{{ Box Console | objet=sa-update -D -v}} | |||
=== Validation === | === Validation === | ||
Ligne 83 : | Ligne 89 : | ||
==== Faux positif ==== | ==== Faux positif ==== | ||
* Pour tester le comportement de ''' | * Pour tester le comportement de '''SpamAssassin''', on va s'envoyer un <font color=orange>faux positif</font>; 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 | 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 --------------------- | ------------------ Début de Rapport SpamAssassin --------------------- | ||
Ligne 128 : | Ligne 134 : | ||
{{ Box Remarque | objet=Pour désactiver cette avertissement, il suffit de mettre à 0 le paramètre report_safe dans le fichier /etc/spamassassin/local.cf. }} | {{ Box Remarque | objet=Pour désactiver cette avertissement, il suffit de mettre à 0 le paramètre report_safe dans le fichier /etc/spamassassin/local.cf. }} | ||
* Dans l'en-tête du mail incriminé, le score attribué par ''' | * 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-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on alice | ||
Ligne 181 : | Ligne 187 : | ||
Ici, nous indiquons que la '''blacklist''' à un score de '''10'''. Ce score est supérieure au '''required_score''' ''(5.0)'' ce qui aura pour conséquence de taguer comme spam les messages blacklistés. Ensuite, dans la seconde ligne nous renseignons l'adresse mail à blacklister. | Ici, nous indiquons que la '''blacklist''' à un score de '''10'''. Ce score est supérieure au '''required_score''' ''(5.0)'' ce qui aura pour conséquence de taguer comme spam les messages blacklistés. Ensuite, dans la seconde ligne nous renseignons l'adresse mail à blacklister. | ||
* On recharge la configuration de ''' | * On recharge la configuration de '''SpamAssassin''' : | ||
{{ Box Console | objet=sudo service spamassassin restart }} | {{ Box Console | objet=sudo service spamassassin restart }} | ||
Ligne 226 : | Ligne 232 : | ||
== Utilisation d'une base Sql == | == Utilisation d'une base Sql == | ||
* Il peut être intéressent d'utiliser une base de données '''Sql''' pour stocker les règles de ''' | * 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. | ||
{{ Box Remarque | objet=La documentation qui suit est basée sur l'utilisation d'une base de données [[MySQL]]. Nous considérerons que la base est déjà fonctionnelle. }} | {{ Box Remarque | objet=La documentation qui suit est basée sur l'utilisation d'une base de données [[MySQL]]. Nous considérerons que la base est déjà fonctionnelle. }} | ||
Ligne 238 : | Ligne 244 : | ||
OPTIONS="<font color=red>-q</font> --create-prefs --max-children 5 --helper-home-dir --username spamd -H ${SAHOME} -s ${SAHOME}spamd.log" | OPTIONS="<font color=red>-q</font> --create-prefs --max-children 5 --helper-home-dir --username spamd -H ${SAHOME} -s ${SAHOME}spamd.log" | ||
* On redémarre ''' | * On redémarre '''SpamAssassin''' pour appliquer les modifications : | ||
{{ Box Console | objet=service spamassassin restart }} | {{ Box Console | objet=service spamassassin restart }} | ||
Ligne 261 : | Ligne 267 : | ||
==== Connexion à la base de données ==== | ==== Connexion à la base de données ==== | ||
* | * SpamAssassin a besoin de connaître les éléments de connexion à la base de donnée. Nous allons créer le fichier de configuration '''/etc/spamassassin/sql.cf''' et y insérer les données nécessaires à la connexion : | ||
user_scores_dsn DBI:mysql:postfix:10.0.0.47:3306 | user_scores_dsn DBI:mysql:postfix:10.0.0.47:3306 | ||
Ligne 268 : | Ligne 274 : | ||
user_scores_sql_custom_query SELECT preference, value FROM _TABLE_ WHERE username = USERNAME_ OR username = '$GLOBAL' OR username = CONCAT('%',_DOMAIN_) ORDER BY username ASC | user_scores_sql_custom_query SELECT preference, value FROM _TABLE_ WHERE username = USERNAME_ OR username = '$GLOBAL' OR username = CONCAT('%',_DOMAIN_) ORDER BY username ASC | ||
* Nous remarqueront que la ligne '''user_scores_sql_custom_query''' indique à ''' | * Nous remarqueront que la ligne '''user_scores_sql_custom_query''' indique à '''SpamAssassin''' la commande '''Sql''' pour récupérer les éléments de configuration dans la table '''userpref'''. | ||
{{ Box Information | objet= | {{ Box Information | objet=SpamAssassin charge sa configuration au travers de tous les fichiers portant l’extension .cf contenu dans le dossier /etc/spamassassin/.}} | ||
==== Récupération de la variable USERNAME ==== | ==== Récupération de la variable USERNAME ==== | ||
Ligne 295 : | Ligne 301 : | ||
* '''Site officiel du projet :''' http://spamassassin.apache.org/ | * '''Site officiel du projet :''' http://spamassassin.apache.org/ | ||
* ''' | * '''SpamAssassin par Ubuntu-fr.org :''' http://doc.ubuntu-fr.org/postfix_mysql_tls_sasl#spamassassin | ||
* ''' | * '''SpamAssassin avec Sql :''' http://wiki.apache.org/spamassassin/UsingSQL | ||
* '''Documentation Sql :''' http://svn.apache.org/repos/asf/spamassassin/branches/3.3/sql/README | * '''Documentation Sql :''' http://svn.apache.org/repos/asf/spamassassin/branches/3.3/sql/README | ||
[[Category:Serveur de Messagerie]] | [[Category:Serveur de Messagerie]] |
Version du 6 février 2014 à 20:08
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 :
|
|
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
Séparation des logs
- Pour éviter de trop encombrer les logs de Postfix dans le fichier /var/log/mail.log, nous allons séparer les logs de SpamAssassin. Pour cela, on insère les éléments suivant juste avant la ligne OPTIONS :
SAHOME="/var/log/spamd/"
- Puis on remplace :
OPTIONS="--create-prefs --max-children 5 --helper-home-dir --username spamd"
- Par :
OPTIONS="--create-prefs --max-children 5 --helper-home-dir --username spamd -H ${SAHOME} -s ${SAHOME}spamd.log"
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 :
|
|
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 :
|
|
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 :
|
|
Mise à jour des bases
- Il est nécessaire de mettre à jour régulièrement les bases de SpamAssassin. La commande suivante permet d'effectuer sa mise à jour :
|
|
Validation
Faux positif
- 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.
Pour désactiver cette avertissement, il suffit de mettre à 0 le paramètre report_safe dans le fichier /etc/spamassassin/local.cf. |
- 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
- On peut également analyser l'acheminement du mail en interne :
Feb 6 16:49:03 alice postfix/smtpd[14032]: connect from geocoucou.net.ncad.fr[10.0.0.49] Feb 6 16:49:03 alice postfix/smtpd[14032]: A29DD461D0C: client=geocoucou.net.ncad.fr[10.0.0.49] Feb 6 16:49:03 alice postfix/cleanup[14038]: A29DD461D0C: message-id=<f1be69d848c7d2dbb3ab2dc5bf44d031@ncad.me> Feb 6 16:49:03 alice postfix/qmgr[13786]: A29DD461D0C: from=<nicolas.cachelou@ncad.me>, size=1704, nrcpt=1 (queue active) Feb 6 16:49:03 alice postfix/smtpd[14032]: disconnect from geocoucou.net.ncad.fr[10.0.0.49] Feb 6 16:49:03 alice spamd[14006]: spamd: connection from localhost [127.0.0.1] at port 37195 Feb 6 16:49:03 alice spamd[14006]: spamd: handle_user unable to find user: 'cacheln@mail.glx' Feb 6 16:49:03 alice spamd[14006]: spamd: processing message <f1be69d848c7d2dbb3ab2dc5bf44d031@ncad.me> for cacheln@mail.glx:5001 Feb 6 16:49:06 alice spamd[14006]: spamd: identified spam (999.0/5.0) for cacheln@mail.glx:5001 in 3.2 seconds, 1658 bytes. Feb 6 16:49:06 alice spamd[14006]: spamd: result: Y 999 - ALL_TRUSTED,GTUBE,HTML_MESSAGE,MIME_QP_LONG_LINE scantime=3.2,size=1658,user=cacheln@mail.glx,uid=5001,required_score=5.0,rhost=localhost, raddr=127.0.0.1,rport=37195,mid=<f1be69d848c7d2dbb3ab2dc5bf44d031@ncad.me>,autolearn=no Feb 6 16:49:06 alice postfix/pickup[13785]: F33D9461FB6: uid=5001 from=<nicolas.cachelou@ncad.me> Feb 6 16:49:06 alice postfix/cleanup[14038]: F33D9461FB6: message-id=<f1be69d848c7d2dbb3ab2dc5bf44d031@ncad.me> Feb 6 16:49:06 alice postfix/pipe[14039]: A29DD461D0C: to=<cacheln@mail.glx>, relay=spamassassin, delay=3.3, delays=0.05/0.01/0/3.3, dsn=2.0.0, status=sent (delivered via spamassassin service) Feb 6 16:49:06 alice postfix/qmgr[13786]: A29DD461D0C: removed Feb 6 16:49:07 alice postfix/qmgr[13786]: F33D9461FB6: from=<nicolas.cachelou@ncad.me>, size=2458, nrcpt=1 (queue active) Feb 6 16:49:07 alice spamd[14004]: prefork: child states: II Feb 6 16:49:07 alice postfix/virtual[14045]: F33D9461FB6: to=<cacheln@mail.glx>, relay=virtual, delay=0.16, delays=0.08/0.02/0/0.05, dsn=2.0.0, status=sent (delivered to maildir) Feb 6 16:49:07 alice postfix/qmgr[13786]: F33D9461FB6: removed
Blackliste
- Nous allons blacklister l'adresse mail externe que nous utilisons pour les tests : nicolas.cachelou@ncad.me. Pour cela, on va rajouter les deux lignes suivantes dans /etc/spamassassin/local.cf :
score USER_IN_BLACKLIST 10 blacklist_from nicolas.cachelou@ncad.me
Ici, nous indiquons que la blacklist à un score de 10. Ce score est supérieure au required_score (5.0) ce qui aura pour conséquence de taguer comme spam les messages blacklistés. Ensuite, dans la seconde ligne nous renseignons l'adresse mail à blacklister.
- On recharge la configuration de SpamAssassin :
|
|
- Puis on envoi un mail de nicolas.cachelou@ncad.me vers cacheln@mail.glx. Observons dans les logs l'acheminement du mail :
Feb 6 17:09:39 alice postfix/smtpd[14067]: connect from geocoucou.net.ncad.fr[10.0.0.49] Feb 6 17:09:39 alice postfix/smtpd[14067]: 35BF3461D14: client=geocoucou.net.ncad.fr[10.0.0.49] Feb 6 17:09:39 alice postfix/cleanup[14073]: 35BF3461D14: message-id=<3efd902f135925e20b7e0fe692294c1a@ncad.me> Feb 6 17:09:39 alice postfix/qmgr[13786]: 35BF3461D14: from=<nicolas.cachelou@ncad.me>, size=1642, nrcpt=1 (queue active) Feb 6 17:09:39 alice postfix/smtpd[14067]: disconnect from geocoucou.net.ncad.fr[10.0.0.49] Thu Feb 6 17:09:39 2014 [14063] info: spamd: connection from localhost [127.0.0.1] at port 37207 Thu Feb 6 17:09:39 2014 [14063] info: spamd: handle_user unable to find user: 'cacheln@mail.glx' Thu Feb 6 17:09:39 2014 [14063] info: spamd: processing message <3efd902f135925e20b7e0fe692294c1a@ncad.me> for cacheln@mail.glx:5001 Thu Feb 6 17:09:43 2014 [14063] info: spamd: identified spam (9.0/5.0) for cacheln@mail.glx:5001 in 3.8 seconds, 1596 bytes. Thu Feb 6 17:09:43 2014 [14063] info: spamd: result: Y 9 - ALL_TRUSTED,HTML_MESSAGE,MIME_QP_LONG_LINE,USER_IN_BLACKLIST scantime=3.8,size=1596,user=cacheln@mail.glx,uid=5001,required_score=5.0, rhost=localhost,raddr=127.0.0.1,rport=37207, mid=<3efd902f135925e20b7e0fe692294c1a@ncad.me>,autolearn=no Thu Feb 6 17:09:43 2014 [14061] info: prefork: child states: II Feb 6 17:09:43 alice postfix/pickup[13785]: 239B7461FBF: uid=5001 from=<nicolas.cachelou@ncad.me> Feb 6 17:09:43 alice postfix/pipe[14074]: 35BF3461D14: to=<cacheln@mail.glx>, relay=spamassassin, delay=3.9, delays=0.06/0.01/0/3.9, dsn=2.0.0, status=sent (delivered via spamassassin service) Feb 6 17:09:43 alice postfix/qmgr[13786]: 35BF3461D14: removed Feb 6 17:09:43 alice postfix/cleanup[14073]: 239B7461FBF: message-id=<3efd902f135925e20b7e0fe692294c1a@ncad.me> Feb 6 17:09:43 alice postfix/qmgr[13786]: 239B7461FBF: from=<nicolas.cachelou@ncad.me>, size=2366, nrcpt=1 (queue active) Feb 6 17:09:43 alice postfix/virtual[14079]: 239B7461FBF: to=<cacheln@mail.glx>, relay=virtual, delay=0.14, delays=0.06/0.02/0/0.05, dsn=2.0.0, status=sent (delivered to maildir) Feb 6 17:09:43 alice postfix/qmgr[13786]: 239B7461FBF: removed
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.
La documentation qui suit est basée sur l'utilisation d'une base de données MySQL. Nous considérerons que la base est déjà fonctionnelle. |
- Pour illustrer cette exemple nous utiliseront une base de données nommée courriel accessible via l'utilisateur courriel qui a pour mot de passe motdepassebasemysqlpourpostfix. Le serveur de bases de données a pour adresse IP 10.0.0.47.
Activation de Sql
- Par défaut le module n'est pas activé. Il faut pour cela éditer le fichier /etc/spamassassin/default et y ajouter l'option -q dans la ligne OPTIONS :
OPTIONS="-q --create-prefs --max-children 5 --helper-home-dir --username spamd -H ${SAHOME} -s ${SAHOME}spamd.log"
- On redémarre SpamAssassin pour appliquer les modifications :
|
|
Paramètres des utilisateurs
Structure de la table
- La structure de la table est simple. Elle est dotée de 3 colonnes dont une pour identifier le compte mail pour qui s'applique la règle, dans preference on spécifiera le type de règle et pour value sa valeur.
- Nous créerons donc la table userpref dans notre base de données courriel :
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) )
Connexion à la base de données
- SpamAssassin a besoin de connaître les éléments de connexion à la base de donnée. Nous allons créer le fichier de configuration /etc/spamassassin/sql.cf et y insérer les données nécessaires à la connexion :
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
- Nous remarqueront que la ligne user_scores_sql_custom_query indique à SpamAssassin la commande Sql pour récupérer les éléments de configuration dans la table userpref.
|
SpamAssassin charge sa configuration au travers de tous les fichiers portant l’extension .cf contenu dans le dossier /etc/spamassassin/. |
Récupération de la variable USERNAME
- Il est nécessaire d'adapter le contenu de la variable USERNAME. Par défaut, le contenu de cette variable est spamd. Cependant, si l'on veut appliquer des règles propres à chacun des utilisateurs, il faudra que cette variable prenne leur adresse mail respective.
- Pour cela, on éditer le fichier /etc/postfix/main.cf et on remplace la ligne :
spamassassin unix - n n - - pipe user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
- Par :
spamassassin unix - n n - - pipe user=spamd argv=/usr/bin/spamc -f -u ${recipient} -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
- Puis on redémarre Postfix pour appliquer les changements.
|
|
Liens
- Site officiel du projet : http://spamassassin.apache.org/
- SpamAssassin par Ubuntu-fr.org : http://doc.ubuntu-fr.org/postfix_mysql_tls_sasl#spamassassin
- SpamAssassin avec Sql : http://wiki.apache.org/spamassassin/UsingSQL
- Documentation Sql : http://svn.apache.org/repos/asf/spamassassin/branches/3.3/sql/README