Mise en œuvre de Squid / SquidGuard sous Debian

Squid : script de mise à jour de la blacklist SquidGuardSquid est le proxy le plus utilisé au monde. Par la mise en cache des pages visitées, il permet aux entreprises d’économiser  de la bande passante. Accessoirement, flanqué de SquidGuard, il empêchera vos salariés de baguenauder – un synonyme de cyberglander – au hasard de leurs clics sur le WWW.

Dans ce tuto, vous trouverez un script de mise à jour du logiciel SquidGuard, à partir de la blacklist fournie par l’université de Toulouse et mise à jour par Fabrice Prigent. Merci à lui.

Installation de Squid / SquidGuard

L’installation de Squid / SquidGuard sous Debian se fait avec la commande apt :

apt update && apt install squid squidguard

Le service squid est automatiquement démarré. Vous pouvez d’ailleurs le contrôler avec :

systemctl status squid

Modification de la configuration Squid

Pensez à ajouter au fichier /etc/squid/squid.conf la ligne suivante :

url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf

Script de mise à jour de la blacklist SquidGuard

L’exécution de ce script suppose que vous ayez configuré correctement tout d’abord Squid et SquidGuard (voir ci-dessous) :

#!/bin/bash
REP=/var/lib/squidguard/db
FILE=blacklists.tar.gz
cd $REP
if [ -f blacklists.tar.gz ]
then
    rm -f blacklists.tar.gz
fi
wget -q http://dsi.ut-capitole.fr/blacklists/download/$FILE
tar zxvf $FILE
/usr/bin/squidGuard -C all -d
chmod a+r $REP -R
systemctl reload squid

Vous devez ensuite planifier l’exécution la planification de la tâche avec crontab -e, après avoir rendu exécutable ce script à l’aide de la commande chmod +x.

Exemple de fichier de configuration SquidGuard

Sous Debian, le fichier de configuration se situe à l’emplacement /etc/squid/squidGuard.conf :

dbhome /var/lib/squidguard/db
logdir /var/log/squidGuard
src lan {
    ip 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8 127.0.0.0/8
}
dest adult {
    domainlist    blacklists/porn/domains
    urllist        blacklists/porn/urls
    expressionlist    blacklists/porn/expressions
    redirect     307:https://lite.qwant.com/?
}
acl {
    lan {
        pass !adult all
        redirect 307:https://lite.qwant.com/?
  }
  default {
        pass none
        redirect 307:https://lite.qwant.com/?
  }
}

Exemple de fichier /etc/squid/squid.conf

Commentez toutes les directives http_access, à l’exception de celles indiquées en gras dans le fichier d’exemple ci-dessous.

acl localnet src 10.0.0.0/8    # RFC1918 possible internal network
acl localnet src 172.16.0.0/12    # RFC1918 possible internal network
acl localnet src 192.168.0.0/16    # RFC1918 possible internal network
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines

http_access allow localnet localhost
http_access deny all

http_port 3128

#Le cache est fonction de la taille mémoire dont vous disposez.
cache_mem 2048 MB
maximum_object_size_in_memory 4 MB

url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf

Une fois toutes ces modifications apportées au fichier de configuration de Squid, rechargez la configuration :

systemctl reload squid

Debian  / Formateur Squid