21/12/2024

pfSense

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.

author avatar
Florian BURNEL Co-founder of IT-Connect
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.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

9 commentaires sur “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
      • Bonjour,
        je suis a la recherche d’une blackliste pour adulte et site violant (gore) car celui proposé ne bloque pas grand chose dans les listes que je choisi
        le shallalist.de est fermé pour le moment pour des raison politique
        est ce que il en existe d’autres ?
        merci

        Répondre
  • Je viens d’essayer sur la 2.5.2 de pfsense avec squid déjà installé et configuré. J’arrive à télécharger la blacklist, mais au moment du rebuild db je ne vois aucun avancement et in fine je n’ai rien comme catégorie dans la rule list.
    Dans system.log je vois passer un pb au moment de la copie de ‘/tmp/squidGuard/arcdb/blacklist.file’ => no such file or directory.
    Le package est il encore vraiment fonctionnel ou existe t il une (bonne) alternative ?

    Répondre
  • Bonjour, j’ai suivis le tutoriel et il fonctionne très bien. J’ai un problème au niveau des groups ACLs, j’ai créer des utilisateur locaux à pfsense qui fonctionnent, cependant lorsque j’essaye d’utiliser un groupe Acls avec ces utilisateurs, je n’arrive plus a les logs sur les navigateurs. C’est pour une école et il n’y a que deux groupes donc deux utilisateurs, un prof et un élève.
    Merci de l’aide

    Répondre
  • Bonjour,

    La partie Proxy Transparent fonctionne, cependant lorsque j’active le filtrage par catégorie comme expliquer dans ce tuto, je n’ai plus aucun accès à internet.. Quelqu’un a eu le même problème ?

    Répondre
  • Bonjour,
    est t’il possible de simplement filtrer / blacklister des sites en installant la partie squid mais sans configurer proxy http et https du tuto « proxy-transparent-mise-en-place-de-squid-sur-pfsense » ? Ou l’un ne va pas sans l’autre ?

    J’ai déjà un pfsense 2.6 qui fait office de pare-feu et accès vpn 🙂

    Répondre
  • Bonjour,
    merci pour ce tuto très bien écrit.
    je suis sur Pfsense 2.7.0
    après les étapes suivis j’ai un petit problème :

    je ne peux plus accéder à internet toutes les pages m’indique « Code d’erreur : SSL_ERROR_RX_RECORD_TOO_LONG »
    après mes tests :
    configuration windows dans proxy en automatique
    > pas accès à internet
    si je met dans configuration manuelle proxy l’adresse IP de mon pfsense
    > accès à internet

    le problème c’est que quand je sors avec mon matériel de chez moi, alors je dois retourner sur windows proxy et retirer la configuration manuelle et vise versa .

    merci pour les futurs infos et cette échange
    cordialement

    Répondre
  • comment configurer l’authentification par portail captif sur le proxy serveur pfsense (proxy serveur authentification portail captif).

    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.