Page 1 sur 1

[MAIL]fetchmail+procmail+spamassassin(Résolu)

Publié : ven. 21 déc. 2007, 14:33
par mariop31
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
Installer 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.
Pour comprendre le fonctionnement de ce trio je me suis appuyé sur
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:
poll 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"
Création du fichier dans /home/mario/.procmailrc

Code : Tout sélectionner

 $ touch .procmailrc
exemple du contenu de mon fichier:
# 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.
# 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
Faites un premier essai pour cela ouvrez
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
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:

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
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:

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
Voilà j'espère avoir été clair n'hésitez à laisser vos critique ou suggestion.

Publié : ven. 21 déc. 2007, 18:01
par chipster
et le topic ? :D

Publié : ven. 21 déc. 2007, 22:19
par mariop31
chipster a écrit :et le topic ? :D
Kesako un topic ????

Publié : ven. 21 déc. 2007, 22:26
par chipster
mariop31 a écrit :
chipster a écrit :et le topic ? :D
Kesako un topic ????
le titre de ton sujet à savoir : "fetchmail+procmail+spamassassin"
Je pense qu'il serait bon de le retoucher comme ceci :
[Mail] fetchmail+procmail+spamassassin
;)