Avant de configurer squid il faut l’installer, si vous l’avez déjà fait vous pouvez continuer sinon allez ici.
Cliquer sur le menu déroulant (1).
Cliquer sur “Services” (2).
.png)
Séléctionner “Squid Proxy Server”.
.png)
Nous allons dans un premier temps commencer par configurer le cache du proxy. Se rendre dans “Local Cache”.
.png)
Augmenter la taille du disque alloué pour le cache si vous le désirez.
.png)
Cliquer sur “Save”.
.png)
Nous pouvons nous rendre dans le shell de notre pfsense pour vérifier si le cache a bien été créé.
Nous pouvons voir dans le dossier “/var/squid” qu’un cache est bien en place.
.png)
Nous allons désormais configurer notre proxy pour qu’il puisse filtrer les paquets HTTP.
Cliquer sur “General”.
.png)
Cliquer sur “Check to enable the Squid proxy” (1).
Nous voulons inspecter les paquets venant du LAN, cliquer sur “LAN” (2).
.png)
Sélectionner cette option.
.png)
Cocher le mode pour activer le proxy transparant pour HTTP (1).
Cocher LAN pour la même raison que précedemment (2).
.png)
Ne pas cocher cette case pour le moment. Nous nous occuperons de HTTPS plus tard.
.png)
Cocher cette option afin d’activer les logs de filtrage de squid (1).
Entrer le nombre de jours que vous voulez garder vos logs (2).
Cocher cette derniere option afin d’afficher les pages bloquées par le proxy dans les logs (3).
.png)
A présent nous allons configurer les messages qui s’afficheront lors du blocage d’une page.
Entrer votre hostname (1).
Entrer votre email (2).
Entrer la langue pour le message d’erreur (3).
Cocher cette dernière option (4) dans un soucis de sécurité.
Cliquer sur “Save” (5).
.png)
Nous allons pouvoir tester notre filtrage HTTP.
Se rendre dans “ACLs”.
.png)
Ajouter le site de votre choix dans la blacklist.
Ici nous choisissons ‘info.cern.ch’.
.png)
Cliquer sur “Save”.
.png)
Lorsque nous essayons d’acceder à ce site, nous pouvons voir que squid le bloque et affiche correctement les informations renseignées comme l’adresse mail.
.png)
Se rendre dans les logs du pfsense pour voir si notre système de logs est fonctionnel.
Nous pouvons voir que les requêtes pour le site info.cern.ch ont été correctement loggées et que le site est bien renseigné dans le fichier blacklist.
.png)
Pour pouvoir filtrer les paquets HTTPS nous allons devoir faire de notre proxy une authorité de certification. En ajoutant notre certificat au navigateur client, nous pourrons devenir un intermédiaire entre le client et le serveur comme un man in the middle. Le client chiffre son message avec notre clé publique, nous la déchiffrons avec notre clé privée. Nous pouvons inspecter le paquet, s’il est valide, nous rechiffrons avec la clé publique du serveur. L’autorité de certification du client est le proxy, l’autorité de certification du proxy est celle ayant attribué son certificat au serveur avec qui nous discutons.
.png)
Cliquer sur “Add”.
.png)
Dans “Descriptive name”, entrer le nom de votre CA (1).
Selectionner la méthode “Create an internal Certicate Authority” (2).
Cocher les options (3) et (4).
.png)
Entrer les caractéristiques de votre CA.
Nom (1).
Code du pays (2).
Pays (3).
France si votre pays est la France (4).
Ville (5).
L’organisation (6).
Cliquer sur “Save” (7).
.png)
Nous pouvons voir que l’authorité de certification a correctement été créée.
.png)
Retourner dans “General” afin d’activer la réception des paquets HTTPS.
.png)
Cocher “Enable SSL filtering” (1).
Selectionner l’option “custom”, en effet, le splice va traiter les paquets à la volée sans les déchiffrer, et bump va les rejetter sans les déchiffrer (2).
.png)
Dans ‘CA’, nous renseignons l’authorité de certification que nous venons de créer sur le pfsense.
Ici, pfsenseCA.
.png)
Cliquer sur “Show advanced options”.
.png)
Ici, nous allons pouvoir écrire de manière personnalisée les règles que suivra notre proxy. Cela nous permet d’analyser les paquets HTTPS.
.png)
Afin de pouvoir tester que l’interlocuteur de notre client soit bien le proxy (ici qui joue un rôle d’intermediaire), nous allons devoir l’ajouter comme authorité de certification dans le navigateur de notre client. Nous faisons ceci dans un premier temps pour tester, par la suite nous ferons cette étape par GPO pour ne pas avoir à ajouter à la main les CA sur chaque navigateur de chaque compte de chaque utilisateur.
Nous faisons la manipulation dans microsoft edge.
Dans un nouvel onglet (1), cliquer sur “…” (2).
Cliquer sur “Paramètres” (3).
.png)
Cliquer sur le menu déroulant.
.png)
Cliquer sur “Confidentialité, recherche et services”.
.png)
Cliquer sur le petit icône dans “Gérer les certificats”.
.png)
Cliquer sur “Autorités de certification racines”.
.png)
Cliquer sur “Importer…”.
.png)
Cliquer sur “Suivant”.
.png)
Cliquer sur “Parcourir…” (1).
Choisir son certificat en .crt.
Cliquer sur “Suivant” (2).
.png)
Cliquer sur “Suivant”.
.png)
Cliquer sur “Terminer”.
.png)
Cliquer sur “OK”.
.png)
Dans les “authorité de certification racines”, nous pouvons voir que le CA de notre pfsense est bien apparue.
.png)
Pour tester que notre proxy est bien considéré comme le CA pour notre client, se rendre sur un site HTTPS (1).
Ici, pour l’exemple nous prenons ‘facebook.com’ (2).
Cliquer sur le petit cadenas (3).
.png)
Cliquer sur “La connexion est sécurisée”.
.png)
Cliquer sur le petit logo de certificat.
.png)
Nous pouvons voir dans la section “Délivré par”, que c’est bien le CA de notre pfsense qui est pris en compte par le client.
.png)
Nous allons tester la capacité de filtrage de notre proxy sur les paquets HTTPS.
Se rendre dans “ACLs”.
.png)
Ajouter un site HTTPS dans la blacklist.
Ici, facebook.com.
.png)
Cliquer sur “Save”.
.png)
Lorsque nous nous rendons sur facebook.com, nous recevons un message nous signifiant que la page a été bloquée par squid.
.png)
Sur un autre site, ici ebay.com pour l’exemple, nous voyons que nous n’avons pas de problème de blocage.
.png)
Pour ne pas avoir à ajouter le certificat du pfsense à la main, il est possible de le déployer automatiquement sur un groupe via GPO (cf: Déploiement des certificats via GPO)
Se rendre dans l’onglet “Antivirus”.
.png)
Cliquer sur “Enable squid antivirus check using ClamAV”.
.png)
Séléctionner l’intervalle de temps dans laquelle la base de données de l’antivirus sera mis à jour (1).
Séléectionner la région de votre proxy pour améliorer la précision de ClamAV (2).
.png)
Cliquer sur “Save”.
.png)
Cliquer sur “Update AV”.
.png)
Cliquer sur “Update AV”.
Nous allons désormais bloquer tous les navigateurs autre que internet explorer à la version 10 ou +.
Pour cela, nous utilisons les user-agents.
User-agent est un header présent dans les requêtes HTTP et qui comporte des informations sur le navigateur depuis lequel les requêtes sont envoyées.
Squid permet de bloquer l’accès à des sites par user-agent, nous allons donc utiliser cette fonctionnalité.
Commençons par bloquer Firefox.
Se rendre dans “ACLs” dans la partie “Block User Agents”.
Nous ajoutons “Firefox”. Cela va bloquer l’accès à toutes les versions Firefox.
.png)
Cliquer sur “Save”.
.png)
Lorsque que l’on fait une recherche dans firefox, peu importe son contenu, squid bloque la requête.
Ici nous avons tapé “test” dans google.
.png)
Lorsque nous faisons la même recherche dans Microsoft edge, et nous pouvons voir que squid ne bloque pas la requête.
.png)
Nous allons désormais bloquer les requêtes pour des versions de internet explorer inferieur à 10.
Le problème pour cette partie est que ces versions ne sont pas compatibles avec windows 10, ce qui fait que en l’état nous ne pouvons pas tester.
Nous allons donc essayer de bloquer notre version de internet explorer pour vérifier que notre syntaxe est correct. Pour les autres versions nous allons remplacer notre versions (testé) par les autres.
Nous écrivons “MSIE.10” qui correspond à notre version.
On clique sur “Save”.
.png)
Lorsque l’on test une recherche sur internet explorer (test dans google encore), nous pouvons voir que les paquets sont filtrés.
.png)
Nous allons ajouter une regexp qui match :
.png)
Nous retestons sur notre version de internet explorer (qui ne doit donc pas matcher la regexp), et nous pouvons constater que squid ne nous bloque pas.
.png)
Nous allons installer chrome pour pouvoir tester son bloquage.
Chercher “Chrome” (1), et cliquer sur le lien (2).
.png)
Cliquer sur “Télécharger Chrome”.
.png)
Dans “téléchargement” (1), double cliquer sur “ChromeSetup” (2).
.png)
Cliquer sur “oui”.
.png)
Un écran de téléchargement apparait.
.png)
Ajouter “Chrome”, pour bloquer toutes les versions de chrome.
.png)
Cliquer sur l’onglet windows (1), chercher “chrome” (2), cliquer sur chrome (3).
.png)
On fait une recherche dans chrome et on voit que squid l’a bloqué.
.png)
Rajouter “Edg”, pour bloquer toutes les versions de Microsoft edge.
.png)
Lorsque l’on fait une recherche on voit que squid bloque la requête.
.png)