Du libre, du code, des idées, du mélange d’ArraKISS…

De l’épice pour la pensée

Sur le même modèle que bsdly.net , je publie désormais des listes d'IP connues pour être nuisibles ou émettrices de spam.

La page contenant les listes se trouve ici : Vilaines IP

Vous y trouverez des IP à blacklister avec le parefeu générées régulièrement avec le projet BlockZones. PengouinPdt fait la même chose ici. :)

De même, vous trouverez en complément de la traplist une liste des IPs qui m'ont envoyé du spam. Comme j'utilise déjà d'autres listes très complètes, elle est pour l'instant très maigre, mais elle sera mise à jour automatiquement.

J'utilise des tâche cron pour périodiquement copier les listes d'IP filtrées.
Pour repérer le spam, il me suffit de filtrer l'état de spamd. Lorsqu'un émetteur de spam est piégé, on le repère facilement avec le flag 'TRAPPED'.
J'adore spamd. En laissant trainer une fausse adresse blackhole@yeuxdelibad.net , je sais que ce sont des bots qui écrivent dessus. Outre le fait qu'ils sont piégés pendant un certain temps et ralentis, je retiens maintenant leur IP pour que tout le monde en profite. Nanananère :P

(n'écrivez pas à l'adresse ci-dessus XD)

Voici le script que j'utilise :

#!/bin/sh
# Auteur :      thuban <thuban@yeuxdelibad.net>
# licence :     MIT

# Keep in /var/thuban.traplist
# IPs that used to be trapped.
#
# Use in in spamd.conf with :

###
#
#all:\
#        :nixspam:myblack

#myblack:\
#        :black:\
#        :msg="Your are spam !":\
#        :method=file:\
#        :file=/var/thuban.traplist

###

BLACKFILE=/var/thuban.traplist
touch $BLACKFILE

/usr/sbin/spamdb | grep "TRAPPED|" | cut -d'|' -f2 >> $BLACKFILE

# keep uniq
/usr/bin/sort -u $BLACKFILE -o $BLACKFILE

# reload spamd
/usr/libexec/spamd-setup
exit 0

enjoy ;)

EDIT : j'ai ajouté une nouvelle liste qui contient les IP de bruteforceurs détectés avec vilain.

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