[MAIL]fetchmail+procmail+spamassassin(Résolu)
Publié : ven. 21 déc. 2007, 14:33
N'étant pas une brute de Linux, ce que j'écris ci-dessous, n'est que, ce que j'ai mis en place sur mon architecture de façon a trier au mieux mes mails. N'ayant pas la prétention de maîtriser Linux (j'en suis vraiment très loin), je partage mes essais et mes conclusions qui sont et seront sûrement critiquable. Quoiqu'il en soit ce je vais tenter de décrire au mieux, c'est ce qui fonctionne chez moi.
Comment faire pour éliminer les spams.
Nous allons utiliser le trio fetchmail-->procmail-->spamassassin et evolution
http://miguel.moquillon.free.fr/miguel/ ... gents.html
Après l'installation il faut:
Création du fichier dans /home/mario/.fetchmailrc
exemple du contenu de mon fichier:
exemple du contenu de mon fichier:
Normalement les fichiers de spamassassin sont sous:
Modifier local.cf à partir du lien suivant:
http://www.yrex.com/spam/spamconfig.php
Voilà un exemple de mon fichier /etc/mail/spamassassin/local.cf.
première console en root et faites:
deuxième console avec votre user et faites:
Normalement vous devez voir dans la console user le travail de fetchmail, et dans la console en root le tri effectué par procmail et la redirection dans les différentes boîtes définies dans .procmailrc
Quand c'est fini, aller vérifier le contenu du fichier/home/mario/.fetchids vous devriez avoir quelque chose du type:
Le dernier champ de chaque ligne est l'ID du message, preuve que vous vous avez bien mis l'option keep dans .fetchmailrc et qu'au prochain lancement de fetchmail il ne récupéreras pas à nouveau ces messages.
Si tout est OK, alors il faut automatiser tout ça.
Faire une tâche cron avec votre user.
Faites:
Voilà j'espère avoir été clair n'hésitez à laisser vos critique ou suggestion.
Comment faire pour éliminer les spams.
Nous allons utiliser le trio fetchmail-->procmail-->spamassassin et evolution
Pour comprendre le fonctionnement de ce trio je me suis appuyé surInstaller fetchmail
Cette application sert à récupérer les mails dans vos différentes boîtes aux lettres.
Installer procmail
Cette application sert à effectuer des décisions et et des redirections des mails récupéré par fetchmail.
Installer spamassassin
Cette application sert à éplucher le contenu de vos mails et d'affecter des scores qui vont permettre de décider si le mail en question est un spam.
Installer si ce n'est pas déjà fait evolution
Cette application est un lecteur de mail.
http://miguel.moquillon.free.fr/miguel/ ... gents.html
Après l'installation il faut:
Création du fichier dans /home/mario/.fetchmailrc
Code : Tout sélectionner
$ touch .fetchmailrc
$ chmod 0600 .fetchmailrc
-rw------- 1 mario users 616 déc 21 10:51 .fetchmailrc
exemple du contenu de mon fichier:
Création du fichier dans /home/mario/.procmailrcpoll pop.wanadoo.fr ---> adresse de votre serveur de messagerie
uidl ------> veut dire que l'on conserve les ids des messages de façon à ne pas les récupérer à chaque lancement de /usr/bin/fetchmail (un fichier /home/mario/.fetchids sera crée automatiquement par le 1er lancement de /usr/bin/fetchmail)
proto pop3 ---> protocole utilisé pour la récupération des messages
user "aaaaa.bbbbb" ----> c'est votre identifiant de messagerie chez votre fai
pass "xxxx" ----> c'est votre mot de passe de votre messagerie chez votre fai
is mario here ---> mario c'est votre user linux
keep ---> veut dire qu'il sont conservé chez votre fai (pensez à faire du ménage de temps en temps)
mda "/usr/bin/procmail -Y -d mario" ---> veut dire que je vais passer la main à procmail pour effectuer un premier tri
poll pop.laposte.net
proto pop3
user "aaaaa.bbbbb "
pass "zzzzz"
is mario here
mda "/usr/bin/procmail -Y -d mario"
Code : Tout sélectionner
$ touch .procmailrc
# Please check if all the paths in PATH are reachable, remove the ones that
# are not.
PATH=/usr/bin:/usr/ucb:/bin:/usr/local/bin:.
MAILDIR=/home/mario/.evolution/mail/local/ ---> fichiers au format mailbox où seront déposé mes messages après récupération de fetchmail
DEFAULT=$MAILDIR
LOGFILE=/var/log/procmail.log --> Pensez à créer le fichier
VERBOSE=yes--> bon pour le debug après remplacer yes par no
En ce qui concerne la syntaxe plus que rugueuse de procmail voir:
http://www.linux-france.org/article/appli/procmail.html
:0fw
* < 256000
| /usr/bin/spamassassin ---> utilisation du filtre spamassassin
# All mail tagged as spam (eg. with a score higher than the set threshold)
# is moved to "probably-spam".
:0:
* ^X-Spam-Status: Yes ---> si le score est atteint (il se trouve dans /etc/mail/spamassassin/local.cf) rajout dans le mail de l'item X-Spam-Status: Yes
, du coup les mails iront là
/home/mario/.evolution/mail/local/spam ---> pensez à créer le dossier sous evolution
:0:
* ^Subject.*SPAM*
/home/mario/.evolution/mail/local/spam (Tous les mails qui correspondent à cette règle iront là)
:0:
* ^To.*aaaaa.bbbbb @wanadoo.fr
/home/mario/.evolution/mail/local/Mario---> pensez à créer le dossier sous evolution
(Tous les mails qui correspondent à cette règle iront là)
:0:
* ^From.*toto.polo@yahoo.fr
/home/mario/.evolution/mail/local/toto---> pensez à créer le dossier sous evolution
(Tous les mails qui correspondent à cette règle iront là)
:0:
/home/mario/.evolution/mail/local/Inbox
--> il existe déjà
(Tous les mails qui ne correspondent pas aux règles précédentes iront là)
Normalement les fichiers de spamassassin sont sous:
/etc/mail/spamassassin
En voilà la liste:
init.pre ---> fichier contenant les plugins
local.cf ---> votre fichier de conf
v310.pre ---> fichier contenant les plugins (si dans vos mails vous filtrez en tenant compte de la langue du contenu du mail il faudra
enlever le # sur la ligne -->loadplugin Mail::SpamAssassin::Plugin::TextCat
v312.pre ---> fichier contenant les plugins
v320.pre ---> fichier contenant les plugins
Modifier local.cf à partir du lien suivant:
http://www.yrex.com/spam/spamconfig.php
Voilà un exemple de mon fichier /etc/mail/spamassassin/local.cf.
Faites un premier essai pour cela ouvrez# SpamAssassin config file for version 3.x
# NOTE: NOT COMPATIBLE WITH VERSIONS 2.5 or 2.6
# See http://www.yrex.com/spam/spamconfig25.php for earlier versions
# Generated by http://www.yrex.com/spam/spamconfig.php (version 1.50)
# How many hits before a message is considered spam.
required_score 5.0 ---> la valeur de mon score au delà duquel je considère que c'est du spam
# Change the subject of suspected spam
rewrite_header subject *****SPAM revu par MARIO*****---> je modifie mon Sujet
# Encapsulate spam in an attachment (0=no, 1=yes, 2=safe)
report_safe 1
# Enable the Bayes system
use_bayes 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
# Mail using languages used in these country codes will not be marked
# as being possibly spam in a foreign language.
# - french italian
ok_languages fr it ---> je n'accepte que le français et l'italien (forza Italia)
# Mail using locales used in these country codes will not be marked
# as being possibly spam in a foreign language.
ok_locales all
première console en root et faites:
Code : Tout sélectionner
# tail -f /var/log/procmail.log
deuxième console avec votre user et faites:
Code : Tout sélectionner
# /usr/bin/fetchmail -v
Quand c'est fini, aller vérifier le contenu du fichier/home/mario/.fetchids vous devriez avoir quelque chose du type:
Code : Tout sélectionner
$ cat .fetchids
aaaa.bbbb@pop.wanadoo.fr 1082525583.6982
aaaa.bbbb@pop.wanadoo.fr 1082525583.6983
aaaa.bbbb@pop.wanadoo.fr 1082525583.6984
aaaa.bbbb@pop.wanadoo.fr 1082525583.6985
Si tout est OK, alors il faut automatiser tout ça.
Faire une tâche cron avec votre user.
Faites:
Code : Tout sélectionner
$ crontab -e ---> pour édition et création:
et rentrer la ligne suivante si vous voulez qu'il soit lancé toutes les minutes
*/1 * * * * /usr/bin/fetchmail