[Admin-ml] Spam
Jean-Luc Bailloeul
jlbailloeul at irtsnpdc.fr
Mer 5 Mar 15:38:17 CET 2008
Bon, je vais remonter mes manches.
Si tu me le permets, 3 questions qui me viennent comme ça en première
lecture :
- l'activation de portgrey se fait juste en ajoutant POSTGREY:=-YES- dans
/etc/hostconfig ? Je pose cette question au cas ou je voudrais le
désactiver, ou si j'ai un problème.
- Quels sont les fichiers de logs que tu analyse ?
- quel est le fichier qui sert de greylist ?
Je sais, j'ai bon pour me trouver une bonne doc sur postgrey, et je ne veux
surtout pas abuser de ta gentillesseŠ
C'est quand même vraiment curieux cette attaque subite. Je reçois encore au
moment où j'écris ces lignes un appel pour me signaler du spam, là ou il n'y
en avait jamais eu.
Je dois avoir un utilisateur vérolé quelque part qui a du communiquer notre
carnet d'adresse. Non ?
> De : Proniewski Patrick <patrick.proniewski at univ-lyon2.fr>
> Répondre à : Administrateurs Systèmes sur Mac OS X <admin-ml at mosx.org>
> Date : Wed, 5 Mar 2008 15:04:30 +0100
> À : Administrateurs Systèmes sur Mac OS X <admin-ml at mosx.org>
> Objet : Re: [Admin-ml] Spam
>
> On 5 mars 08, at 14:29, Jean-Luc Bailloeul wrote:
>
>>> Il n'y a pas grand chose à en dire. Que cherches tu comme info ?
>
>> Un bon How to, éventuellement. J'ai celui là :
>> http://www.afp548.com/article.php?story=20051127235810230.
>> Mais qui me semble un peu fouillé.
>
> ha ok, un guide d'installation alors. Bon, celui là il dit d'utiliser
> launchd juste pour lancer le process au boot. Pourquoi pas. Il faut
> juste savoir que launchd est incapable de bien suivre postgrey, c'est
> un véritable carnage. Il ne faut surtout pas utiliser launchd pour
> autre chose que le simple lancement type startup script, ça pose plein
> de problèmes. À tel point que j'ai préféré faire carrément un vrai
> startup script à l'ancienne.
>
> Voilà un copier-collé de mes notes de travail prises pendant l'install
> de postgrey chez nous :
>
> ------------------------------------------------------------------------------
> --
> ** GREYLIST **
>
> * INSTALL *
>
> mkdir /usr/local/src/
> cd /usr/local/src/
> curl -O http://postgrey.schweikert.ch/pub/postgrey-1.30.tar.gz
> tar -xzvf postgrey-1.30.tar.gz
> cp postgrey-1.30/postgrey /usr/bin (si on cp dans /usr/local/bin PERL
> râle à
> propos du PATH qui n'est pas sûr)
>
> ajout du user:group qui va bien :
>
> dscl localhost -create /NetInfo/users/postgrey
> dscl localhost -create /NetInfo/users/postgrey uid 100
> dscl localhost -create /NetInfo/users/postgrey gid 100
> dscl localhost -create /NetInfo/users/postgrey home /var/db/postgrey
> dscl localhost -create /NetInfo/users/postgrey passwd '*'
>
> dscl localhost -create /NetInfo/groups/postgrey
> dscl localhost -create /NetInfo/groups/postgrey gid 100
> dscl localhost -create /NetInfo/groups/postgrey passwd '*'
>
> mkdir /var/db/postgrey
> chown postgrey:postgrey /var/db/postgrey
>
> perl -MCPAN -e shell
>> test IO::Multiplex
>> install IO::Multiplex
>> test Parse::Syslog
>> install Parse::Syslog
>
> * LANCEMENT GREYLIST *
>
> commande de lancement de l'Usine :
>
> Si on a copié postgrey dans /usr/bin plutôt que dans /usr/local/bin,
> PERL
> ne râle pas, et on peut se passer de "PATH=/usr/loc..." devant la
> commande.
>
> /usr/bin/postgrey \
> --pidfile=/var/run/postgrey.pid \
> --unix=/var/run/postgrey.sock \
> -d --user=postgrey --group=postgrey \
> --dbdir=/var/db/postgrey \
> --auto-whitelist-clients=10 \
> --delay=600 \
> --max-age=20
>
>
> L'utilisation de launchd n'est pas souhaitable pour plusieurs raisons :
> - cela n'autorise pas l'option -d de passage en mode démon
> - sans le mode -d, postgrey ne sait pas loguer, on n'a donc pas de
> trace des
> transactions
> - comme il ne peut pas loguer, c'est visiblement launchd qui prend
> tout dans la
> figure, et il perd la trace du process au bout de quelques secondes
> d'usage.
> - de plus, sans le mode -d, les performances de postgrey chute à moins
> de 200
> requêtes par secondes, dans des conditions de test où nous obtenons
> près de
> 900 requêtes par seconde en mode "démon".
>
> * TEST GREYLIST *
>
> test, bench, et feed de la DB. Prendre un ou des log du serveur
> archivé, et le donner
> à manger à l'utilitaire policy-test fourni avec postgrey. On indique
> le socket
> de postgrey.
> $ gzcat mail.log.*.gz | /usr/local/src/postgrey-1.30/policy-test unix:/
> var/run/postgrey.sock
> 123111 requests in 139s (885.69 r/s)
>
> ------------------------------------------------------------------------------
> --
>
> Au final mon startup script enregistré dans le fichier /Library/
> StartupItems/Postgrey/Postgrey ressemble à ça :
>
> ------------------------------------------------------------------------------
> --
> #!/bin/sh
> #
> # $Id: Postgrey 861 2007-08-17 09:03:08Z patpro $
> #
> # 1.0 - 20070817 - Patrick Proniewski
> # First version.
>
> . /etc/rc.common
>
> StartService ()
> {
> if [ "${POSTGREY:=-NO-}" = "-YES-" ]; then
> ConsoleMessage "Starting Postgrey daemon"
> rm -f /var/run/postgrey.pid
> /usr/bin/postgrey \
> --pidfile=/var/run/postgrey.pid \
> --unix=/var/run/postgrey.sock \
> -d --user=postgrey --group=postgrey \
> --dbdir=/var/db/postgrey \
> --auto-whitelist-clients=10 \
> --delay=600 \
> --max-age=20
> fi
> }
>
> StopService ()
> {
> ConsoleMessage "Stopping Postgrey daemon"
> kill $(cat /var/run/postgrey.pid) 2> /dev/null
> rm /var/run/postgrey.pid
> }
>
> RestartService ()
> {
> if [ "${POSTGREY:=-NO-}" = "-YES-" ]; then
> ConsoleMessage "Restarting Postgrey daemon"
> StopService
> sleep 1
> StartService
> else
> StopService
> fi
> }
>
> RunService "$1"
> ------------------------------------------------------------------------------
> --
>
> Il faut bien sûr ajouter POSTGREY:=-YES- dans /etc/hostconfig
>
> A noter aussi : avant d'activer postgrey, j'ai filtré plusieurs Go de
> log de mail pour repérer les plus gros expéditeurs légitimes externes
> (scores de spam bien négatifs). Une fois cette collecte effectuée,
> j'ai rapidement regardé les domaines de messagerie associés. Après ce
> dernier tri "à la tête du client", j'ai établi un fichier de 1000
> netblocs (A.B.C.D/24) que j'ai mis en whitelist *devant* ma greylist.
> De sorte que ces expéditeurs ne sont jamais greylistés, ils passent
> directement.
> Cela me donne un client_access de 1000 lignes ressemblant à ça :
> ...
> 12.130.136 permit
> 17.72.133 permit
> 24.201.245 permit
> ...
>
> Après 15 jours de fonctionnement, j'ai fait des stats sur les 10
> derniers jours. J'ai trouvé que :
>
> 88,6 % des emails arrivent sans aucun délai
> 92.2 % des emails arrivent avant 15 minutes d'attente
> 96.5 % des emails arrivent avant 30 minutes d'attente
> 98 % des emails arrivent avant 60 minutes d'attente
>
> Le délai le plus long enregistré à cette époque (septembre 2007) était
> de presque 48h, mais pour une poignée de cas vraiment marginaux.
>
>
>
> Patrick PRONIEWSKI
> --
> Administrateur Système - SENTIER - Université Lumière Lyon 2
>
>
> _______________________________________________
> Admin-ml mailing list
> Admin-ml at mosx.org
> http://coruscant.mosx.org/mailman/listinfo/admin-ml
>
Plus d'informations sur la liste de diffusion Admin-ml