J’ai récemment du implémenter des listes noires dans squid via squidGuard.
Le problème, c’est que certaines listes sont tellement grosses qu’il est presque impossible de les compiler sans bloquer le serveur. De plus, les performance sont dégradées sur ces listes.
Vient alors la question: sont-elles à jour ?
pour les nouveaux sites, plutôt. Par contre, il traine dedans moultes sites qui n’existent plus.
d’où le petit script suivant qui permet de créer un fichier .new de la blacklist en paramètre (chemin) .
function one_line (){
if host -s -4 -W 1 -t any $1 >/dev/null 2>&1 ; then
echo "$1" >>$2.new
ok="ok"
else
echo "-$1">>$2.diff
ok="nok"
fi
echo "$1 $ok"
}
count=0
NB_PROC=8
# nb de process en parallele
for line in $(cat $1)
do
one_line $line $1 &
let count+=1
[[ $((count%NB_PROC)) -eq 0 ]] && wait
#si modulo 0 tous process pris!
done
libre à vous de le mette ensuite en production en ajoutant au script :
si vous utilisez le nouveau fichier ( .new) que vous prendrez soin de renommer ou
si vous utilisez le .diff généré 🙂
vous noterez la parallélisation des tests: la commande host étant plutôt lente, il est intéressant de traiter plusieurs lignes en simultané.
Commentaires récents