Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Derniers journaux de gone :

Journal : Exim, spammassassin, fetchmail ( très mini ) howto

Posté par Gonéri Le Bouder (Jabber id, page perso, ) le 14 juillet 2003
Spamassassin est un programme très éfficasse pour marquer les spams, son probleme principal est qu'il demande "beaucoup" de resource. J'ai donc voulu isolé ce programme sur une machine dédiée. Dans ce "mini howto", je vais expliquer comment utiliser une machine exclusivement pour triller le spam. La distribution est une Débian Woody 3 et la machine, un vieux serveur Compaq 150Mhz et 128Mo de RAM. INSTALLATION Je commence par installer les outils. Je vais utiliser : -exim, -spammassin, -fetchmail pour relever le courrier sur les comptes pop3 -et enfin un serveur pop3 de votre choix Premièrement, je commence a ajouter une source dans mon /etc/apt/sources.list afin d'avoir un spamassassin à jour. J'y ajoute donc : -->> #Backport spamassassin deb http://people.debian.org/~aurel32/BACKPORTS stable main <<-- Au passage, vérifié que vous avez bien une ligne pour les mises a jour de sécurité : deb http://security.debian.org/ stable/updates main en suite, j'actualise l'index des packages : apt-get update enfin, j'install les programmes utiles : apt-get install exim spamassin fetchmail je peux lancer les services : EXIM : Maintenant, je vais configurer exim afin qu'il filtre les courriers, j'édite donc son fichier de conf ( /etc/exim/exim.conf ) Je précise, que j'avait déjà configuré exim lors de son installation pour le reste. Au début de la section TRANSPORTS CONFIGURATION j'ajoute : -->> spamcheck: driver = pipe command = /usr/sbin/exim -oMr spam-scanned -bS transport_filter = /usr/bin/spamc bsmtp = all home_directory = "/tmp" current_directory = "/tmp" # must use a privileged user to set $received_protocol on the way back in! user = mail group = mail return_path_add = false log_output = true return_fail_output = true prefix = suffix = <<-- Et au début de la section DIRECTORS CONFIGURATION -->> spamcheck_director: # do not use this director when verifying a local-part at SMTP-time no_verify # When to scan a message : # - it isn't already flagged as spam # - it isn't already scanned # - it didn't originate locally (as long as I don't harbor spammers :-)) condition = "${if and { {!def:h_X-Spam-Flag:} {!eq {$received_protocol}{spam-scanned}} {!eq {$received_protocol}{local}} } {1}{0}}" driver = smartuser transport = spamcheck real_local: prefix = real- driver = localuser transport = local_delivery <<-- Voila, exim est configuré, je peux le relancer : /etc/init.d/exim restart et regarder les logs pour voir si il y a des problemes : tail -f -n 30 /var/log/syslog SPAMASSASSIN : Maintenant, je doit regler un peu plus proprement spamassin, j'édite la configuration de spamassassin ( /etc/spamassassin/local.cf ). Voici la mienne : -->> required_hits 3.5 rewrite_subject 1 subject_tag **** SPAM **** ok_languages en fr #si vous recevez des courriers "serieux" dans d'autres langues que le Français ou l'Anglais, viré cette ligne score PENIS_ENLARGE 30 score HTML_IMAGE_ONLY_02 20 score MICROSOFT_EXECUTABLE 20 score FOR_FREE 30 score CLICK_BELOW 30 blacklist_from lettre_abonnes@club-internet.fr #On peut ajouter d'autres adresses ou des domaines entiers whitelist_from un_ami@ami.fr #idem <<-- Je peux lancer le daemon de spamassassin (spamd) /etc/init.d/spamassin restart FETCHMAIL : La configuration de fetchmail. Il se trouve que la machine que j'utilise est "très" lente (300+ secondes pour filtrer un courrier). Je suis donc obligé d'utiliser quelques astuces afin d'éviter de la voir rammer durant des heures. Le daemon fetchmail me pose un probleme, il releve tres vite le courrier et comme je suis abonné a pas mal de mailing liste, je me retrouve avec 15 mails a se faire scanner par spammassassin en meme temps, ce qui est catastrophique pour les performances de la machine. A lieu d'utiliser le daemon fetchmail directement pour relever mon courrier, je me suis donc bricolé un petit script qui ne releve qu'un mail a la fois et attent pour le suivant : myfetchmaild : Ce script attend que le mail précédant soit filtré avant d'en prendre un nouveau -->> #!/bin/sh FETCHMAIL=`which fetchmail` CONFDIR=/etc/myfetchmaild test -x $FETCHMAIL || exit 0 while [ -n "`pidof spamc`" ]; do sleep 1 ; done while true do for conf in $CONFDIR/* do echo $conf $FETCHMAIL --silent --fetchmailrc $conf sleep 1 while [ -n "`pidof spamc`" ]; do sleep 1 ; done done sleep 60 done <<-- Je l'enregistre dans le dossier /usr/local/bin/ et je le rend executable : chmod 755 /usr/local/bin/myfetchmaild Maintenant, je doit ajouter les comptes que je veux relever dans le dossier /etc/myfetchmaild/ Attention, un fichier par compte. voici un exemple de fichier : /etc/myfetchmaild/free Ici, le courrier est dirigé dans la boite au lettre du l'utilisateur robert -->> set postmaster "robert" set bouncemail set no spambounce set properties "" poll pop.free.fr with proto POP3 timeout 100 user 'goneri' there with password 'leMotDePass' is 'Login' here options fetchlimit 1 <<-- J'ajoute autant de fichier que j'ai de compte, (solution souple). Attention les fichiers doivenvent avoir les droits "600" pour des questions de sécurité : chmod 600 /etc/myfetchmaild/* Maintenant, je peux lancer /usr/local/bin/myfetchmaild pour relever mon courrier J'ai ajouté ce fichier dans /etc/ppp/ip-up.d/ afin que myfetchmaild soit lancé en tache de fond a chaque fois que je me déconnecte : /etc/ppp/ip-up.d/myfetchmaild : -->> #!/bin/sh # # Default fetchmail ip-up script # /etc/ppp/ip-up.d/fetchmail # $Id: ip-up,v 1.5 2002/02/16 09:45:09 hmh Exp $ # /usr/local/bin/myfetchmaild 2> /tmp/myfetchmail.erro > /tmp/myfetchmail& <<-- Je j'ai rendu executable : chmod 755 /etc/ppp/ip-up.d/myfetchmaild Et pour que le script soit arrété lorsque je me déconnecte : /etc/ppp/ip-down.d/myfetchmaild Vous pouvez maintenant configurer votre client mail pour qu'il releve le courrier via le serveur pop3 de cette machine. BILAN : Bilan, ma machine est vraiment tres lente, je me prend des charges de 12 dans la gueule. Voici un extrait des mes logs : Jul 12 18:28:17 alice spamd[3551]: clean message (-5.0/3.5) for mail:8 in 289.0 seconds, 3883 bytes. Jul 12 18:38:10 alice spamd[3663]: identified spam (7.4/3.5) for mail:8 in 433.0 seconds, 2724 bytes. Jul 12 18:38:30 alice spamd[3684]: identified spam (36.5/3.5) for mail:8 in 414.0 seconds, 2019 bytes. Jul 12 18:49:03 alice spamd[3803]: clean message (-1.0/3.5) for mail:8 in 562.0 seconds, 3132 bytes. Il faut faire attention a libérer le maximum de ram pour spamd. Je me suis installé un kernel preempt en me disant que j'aurait la main plus facilement en cas de grosse charge. Je me demande si l'idée était bonne. LIENS : Un article sur Linux Nantes tres bien fait http://www.linux-nantes.fr.eu.org/article.php3?id_article=148 Un site sur exim et spamassasin dont j'ai perdu le lien :/ >FILL ME<

> Lire le journal (2 commentaires, moyenne: 1).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Re: Exim, spammassassin, fetchmail ( très mini ) howto

Posté par Maillequeule () le 14/07/2003 à 15:35. (lien). Évalué à 1.

trilliez, trilliez, il en reste toujours quelque chose :)

M

Re: Exim, spammassassin, fetchmail ( très mini ) howto

Posté par jigso () le 15/07/2003 à 09:45. (lien). Évalué à 1.

Je suis surpris par tes pbs de charge très élevée, tu traites combien d'emails à la minute ?

Revenir en haut de page