Rendez-vous sur Arrakis

C'est lorsque nous croyons savoir quelque chose qu'il faut justement réfléchir un peu plus profondément. F. Herbert

spamdb et son greylisting

spamdb peut permettre de mettre en attente de nouvelles IP. C'est top, sauf quand un expéditeur utilise plusieurs IP différentes. C'est vraiment le défaut de spamd.

Du coup, j'ai retroussé mes manches pour faire un petit script à appeler régulièrement (via une tâche cron). Il va simplement mettre sur liste blanche les IP sur liste grise si ces IP correspondent à une adresse mail située dans le fichier /etc/mail/allow_in_spamd (une par ligne).

Voici le script :

#!/bin/sh
 # Auteur :      thuban <thuban@yeuxdelibad.net>
 # licence :     MIT
 
 # Fill /etc/mail/allow_in_spamd with regular expression of
 # lines shown by spamdb.
 # Each matching line will be used to add the corresponding IP
 # to /etc/mail/nospamd the spamdb whitelist
 
 WHITE=/etc/mail/allow_in_spamd
 SPAMD_WHITE=/etc/mail/nospamd
 
 if [ ! -f $WHITE ]; then
     exit
 fi
 
 DB=$(/usr/sbin/spamdb |grep "GREY")
 
 while read line; do
     /usr/sbin/spamdb | grep "GREY|" | grep -E "$line" | cut -d'|' -f2 >> $SPAMD_WHITE
 done < $WHITE
 
 # keep uniq
 sort -u $SPAMD_WHITE -o $SPAMD_WHITE
 
 # reload pf
 /sbin/pfctl -f /etc/pf.conf
 exit