Filtrage par liste blanche pour une adresse IP locale donnée avec Squid

De HomeServer.DIY.
Aller à : Navigation, rechercher

Si Squid et ses addons comme SquidGuard ou DansGuardian sont très efficaces pour filtrer l’accès à internet de façon autonome en utilisant des blacklists, il existe des cas ou ce type de filtrage se révèle insuffisant. En effet, dans le cadre d’une entreprise par exemple, il se peut que l’administrateur choisisse de ne donner accès qu’à certains type de sites web ayant un rapport direct avec les activités de celle-ci. Autre domaine d’application, le cadre familiale où le filtrage par blacklist sera bien trop général pour protéger un jeune enfant des contenus non adaptés du web, les parents devant bien entendu être le filtre principal .

Pour cela il existe une possibilité de n’autoriser vos machines clientes à surfer que sur des sites qui seront inscris sur une liste blanche (whitelist). Le fonctionnement du filtrage par liste blanche est assez simple, bien qu’assez peu documenté sur le net.

Sommaire

Prés requis

Nous partirons du besoin suivant: Empêcher une machine de votre réseau local appelée « client » avec l’adresse ip 192.168.0.100 d’accéder aux sites internet non présent dans la liste blanche que vous définirez. Pour cela nous allons configurer le proxy squid afin qu’il filtre les requêtes effectuées par ce client.

Définition du client pour Squid

En premier lieu, nous allons définir une ACL permettant de définir notre client à partir de son adresse ip locale.

Editez le fichier /etc/squid/squid.conf à l’aide de votre éditeur de texte favori, et d’ajoutez à la suite des ACL déjà présentes:

acl client src 192.168.0.100-192.168.0.100

Création de la liste des domaines autorisés

Ensuite, nous allons créer le fichier qui listera les domaines que vous voulez filtrer, puis nous créerons l’ACL le définissant dans Squid:

Ce fichier doit se situé dans /etc/squid/. Dans notre cas nous le nommerons simplement « whitelist ».

Editez le en ajoutant les noms de domaine autorisés, précédés d’un « . » de la façon suivante:

.techage.fr
.tom23.com

Pour créer l’ACL correspondante, il suffit encore une fois d’ajouter celle-ci à la suite des autres dans le fichier squid.conf:

acl whitelist dstdomain « /etc/squid/whitelist »

Création de la règle de filtrage

Voilà, il suffit maintenant d’ajouter la règle de filtrage incluant les deux ACL crée précédemment en autorisant cet accès au net. Pour cela il suffit d’ajouter la restriction suivante dans le fichier squid.conf:

http_access allow client !whitelist

Attention, choisissez bien la place de cette restriction ! En effet squid lit les restrictions dans leur ordre d’écriture en les résolvant aussi dans cet ordre. Si par exemple vous placez une restriction interdisant l’accès à tout votre réseau local après celle que nous venons de définir, votre poste client n’aura pas accès aux sites présents dans la liste blanche.

Maintenant, il vous suffit de recharger la configuration de squid avec la commande /etc/init.d/squid reload

Notez qu’il vous suffira d’ajouter les domaines désirés dans le fichier « whitelist » et de recharger les paramètres de Squid pour élargir le nombre de sites de confiance accessibles à votre poste client.

Voilà votre proxy sait filtrer les accès à internet en se basant sur une liste blanche. Le reste se passant sur le poste client où vous devrez forcer le passage sur le proxy pour son accès au net.