PfSense et Squid : ajouter le filtrage par catégories avec Squid Guard

I. Présentation

Dans ce tutoriel, nous allons voir comment installer et configurer Squid Guard sur un pare-feu PfSense pour permettre à notre proxy Squid d'effectuer du filtrage de sites Web basé sur des catégories, via une blacklist.

Au sein de Squid, sans Squid Guard donc, on peut mettre en place des ACLs et notamment bloquer des noms de domaine. Le problème, c'est que l'on ne peut pas créer de catégories pour regrouper plusieurs domaines, et on ne peut pas non plus créer des restrictions selon des plages horaires. Embêtant.

Grâce à Squid Guard, on va pouvoir utiliser une Blacklist existante, c'est-à-dire une liste noire de domaines organisés par catégories, afin d'affiner le filtrage au sein de notre proxy Squid. En complément, on pourra mettre en place des règles en fonction de plages horaires, de groupes utilisateurs, etc. De cette façon, vous allez pouvoir configurer votre proxy de manière à bloquer tous les sites liés à la pornographie.

La mise en place de Squid Guard nécessite au préalable d'avoir mis en place un proxy avec Squid puisque ce paquet vient en complément. Je vous invite à suivre mon tutoriel sur le sujet : Tutoriel - Proxy transparent avec Squid sur PfSense

II. Installation de Squid Guard sur PfSense

L'installation de ce paquet sur PfSense passe par le menu habituel sous "System", puis "Package manager". Dans la section "Available Packages", recherchez "squid" et vous devriez voir le paquet Squid Guard apparaître. Il ne reste plus qu'à cliquer sur le bouton "Install".

Une fois que c'est fait, nous pouvons passer à la configuration via le menu "Services" où se trouve une entrée "SquidGuard Proxy Filter".

III. Configuration de Squid Guard sur PfSense

Pour le moment, on va s'intéresser à l'onglet "General Settings". N'allait pas trop vite : ne cochez pas l'option "Check this option to enable SquidGuard" pour le moment, car il faut le préconfigurer avant de l'activer.

Cochez les deux options suivantes pour activer les logs : "Enable GUI Log" et "Enable log".

Au sein de la section "Blacklist", cochez l'option "Check this option to enable blacklist" afin d'activer l'utilisation d'une blacklist, c'est-à-dire une liste noire. Nous allons utiliser la liste noire de L'Université Toulouse Capitole, car elle est française, fiable et elle existe depuis depuis plusieurs années. Elle contient de nombreuses catégories afin de répartir les sites et permettre un blocage ciblé selon certaines catégories.

Ensuite, renseignez l'option "Blacklist URL" avec l'URL suivante :

http://dsi.ut-capitole.fr/blacklists/download/blacklists_for_pfsense.tar.gz

Enfin, cliquez sur le bouton "Save".

Maintenant, basculez sur l'onglet "Blacklist" de SquidGuard. Cliquez sur le bouton "Download" pour télécharger la dernière version de la liste noire que nous avons renseignée dans les paramètres de SquidGuard.

Afin d'exploiter la liste noire, nous devons créer des règles sous la forme d'ACL. Cliquez sur "Common ACL" afin de créer une règle de base et commune au sein de Squid, tandis que la section "Groups ACL" permet de créer des ACL ciblées avec plusieurs critères (par exemple : "bloquer une catégorie selon une plage horaire spécifique" ou "bloquer une catégorie à tous les membres d'un groupe Active Directory").

Au sein du champ "Target Rules List", vous avez la liste de toutes les catégories récupérées à partir de la blacklist toulousaine.

Je vous propose de bloquer la catégorie "VPN" correspondante à "[blk_blacklists_vpn]", il faut donc modifier la valeur du champ "access" pour préciser "deny". En complément, pensez à configurer la valeur du champ "Default access [all]" sur "allow" pour autoriser toutes les autres catégories (par défaut).

Afin d'éviter qu'un petit malin contourne la restriction en précisant l'adresse IP du serveur distant à la place du nom de domaine, cochez l'option "Do not allow IP-Addresses in URL". En complément, si vous souhaitez utiliser la fonction SafeSearch des moteurs de recherche, cochez la case "Use SafeSearch Engine", tout en sachant que cela permet d'utiliser Google, Bing, DuckDuckGo, Qwant, etc.

Enfin, activez les logs pour cette règle en cochant l'option "Log" tout en bas, puis cliquez sur "Save".

La configuration étant prête, retournez dans "General Settings", cochez l'option "Check this option to enable SquidGuard" et cliquez sur "Apply".

Le statut du service SquidGuard doit changer et passer sur "STARTED". Si ce n'est pas le cas, vérifiez que Squid est bien démarré de son côté.

Remarque importante : à chaque fois que vous modifiez la configuration de Squid Guard (exemple : bloquer une catégorie supplémentaire), il faut impérativement venir dans l'onglet "General Settings" pour cliquer sur le bouton "Apply" sinon les modifications ne sont pas prises en compte !

À partir d'un poste client, tentez d'accéder à un site en rapport avec la thématique "VPN", comme le site de NordVPN et vous verrez que la connexion est en erreur. En réalité, c'est SquidGuard qui est intervenu pour bloquer la connexion à ce site, conformément à la politique de filtrage mise en place.

Pour aller plus loin, je vous invite à regarder deux onglets en particulier : "Times" pour créer des plages horaires" et "Groups ACL" pour créer des règles basées sur plusieurs critères. Sachez également que la section "Target categories" vous permet de créer des listes personnalisées.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

florian has 3500 posts and counting.See all posts by florian

One thought on “PfSense et Squid : ajouter le filtrage par catégories avec Squid Guard

  • Bonjour,

    J’ai suivi avec beaucoup d’attention votre tuto que je trouve vraiment très ludique et vous en remercie.
    J’ai enfin un proxy filtrant… ou presque.
    La catégorie « adult » ne filtre rien. J’ai essayé d’autres catégorie qui elles fonctionnent en utilisant comme vous la blackliste de Toulouse. Avez-vous déjà eu ce problème ?
    Merci d’avance.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.