Squid

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).

DM3

Séléctionner “Squid Proxy Server”.

DM3

Configuration du cache du proxy.

Nous allons dans un premier temps commencer par configurer le cache du proxy. Se rendre dans “Local Cache”.

DM3

Augmenter la taille du disque alloué pour le cache si vous le désirez.

DM3

Cliquer sur “Save”.

DM3

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.

DM3

Configuration générale et filtrage HTTP.

Nous allons désormais configurer notre proxy pour qu’il puisse filtrer les paquets HTTP.
Cliquer sur “General”.

DM3

Cliquer sur “Check to enable the Squid proxy” (1).
Nous voulons inspecter les paquets venant du LAN, cliquer sur “LAN” (2).

DM3

Sélectionner cette option.

DM3

Cocher le mode pour activer le proxy transparant pour HTTP (1).
Cocher LAN pour la même raison que précedemment (2).

DM3

Ne pas cocher cette case pour le moment. Nous nous occuperons de HTTPS plus tard.

DM3

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).

DM3

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).

DM3

Nous allons pouvoir tester notre filtrage HTTP.
Se rendre dans “ACLs”.

DM3

Ajouter le site de votre choix dans la blacklist.
Ici nous choisissons ‘info.cern.ch’.

DM3

Cliquer sur “Save”.

DM3

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.

DM3

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.

DM3

Configuration du filtrage HTTPS.

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.

Nous allons ainsi créer une authorité de certification sur notre pfsense.
Cliquer sur le menu déroulant (1).
Sélectionner “Système” (2).
Cliquer sur “Cert. Manager” (3).

DM3

Cliquer sur “Add”.

DM3

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).

DM3

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).

DM3

Nous pouvons voir que l’authorité de certification a correctement été créée.

DM3

Retourner dans “General” afin d’activer la réception des paquets HTTPS.

DM3

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).

DM3

Dans ‘CA’, nous renseignons l’authorité de certification que nous venons de créer sur le pfsense.
Ici, pfsenseCA.

DM3

Cliquer sur “Show advanced options”.

DM3

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.

DM3

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).

DM3

Cliquer sur le menu déroulant.

DM3

Cliquer sur “Confidentialité, recherche et services”.

DM3

Cliquer sur le petit icône dans “Gérer les certificats”.

DM3

Cliquer sur “Autorités de certification racines”.

DM3

Cliquer sur “Importer…”.

DM3

Cliquer sur “Suivant”.

DM3

Cliquer sur “Parcourir…” (1).
Choisir son certificat en .crt.
Cliquer sur “Suivant” (2).

DM3

Cliquer sur “Suivant”.

DM3

Cliquer sur “Terminer”.

DM3

Cliquer sur “OK”.

DM3

Dans les “authorité de certification racines”, nous pouvons voir que le CA de notre pfsense est bien apparue.

DM3

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).

DM3

Cliquer sur “La connexion est sécurisée”.

DM3

Cliquer sur le petit logo de certificat.

DM3

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.

DM3

Nous allons tester la capacité de filtrage de notre proxy sur les paquets HTTPS.
Se rendre dans “ACLs”.

DM3

Ajouter un site HTTPS dans la blacklist.
Ici, facebook.com.

DM3

Cliquer sur “Save”.

DM3

Lorsque nous nous rendons sur facebook.com, nous recevons un message nous signifiant que la page a été bloquée par squid.

DM3

Sur un autre site, ici ebay.com pour l’exemple, nous voyons que nous n’avons pas de problème de blocage.

DM3

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)

Configuration de l’antivirus ClamAV.

Se rendre dans l’onglet “Antivirus”.

DM3

Cliquer sur “Enable squid antivirus check using ClamAV”.

DM3

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).

DM3

Cliquer sur “Save”.

DM3

Cliquer sur “Update AV”.

DM3

Cliquer sur “Update AV”.

Bloquage des navigateurs.

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.

DM3

Cliquer sur “Save”.

DM3

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.

DM3

Lorsque nous faisons la même recherche dans Microsoft edge, et nous pouvons voir que squid ne bloque pas la requête.

DM3

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”.

DM3

Lorsque l’on test une recherche sur internet explorer (test dans google encore), nous pouvons voir que les paquets sont filtrés.

DM3

Nous allons ajouter une regexp qui match :

  • MSIE.0
  • MSIE.1
  • MSIE.2
  • MSIE.3
  • MSIE.4
  • MSIE.5
  • MSIE.6
  • MSIE.7
  • MSIE.8
  • MSIE.9

DM3

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.

DM3

Nous allons installer chrome pour pouvoir tester son bloquage.
Chercher “Chrome” (1), et cliquer sur le lien (2).

DM3

Cliquer sur “Télécharger Chrome”.

DM3

Dans “téléchargement” (1), double cliquer sur “ChromeSetup” (2).

DM3

Cliquer sur “oui”.

DM3

Un écran de téléchargement apparait.

DM3

Ajouter “Chrome”, pour bloquer toutes les versions de chrome.

DM3

Cliquer sur l’onglet windows (1), chercher “chrome” (2), cliquer sur chrome (3).

DM3

On fait une recherche dans chrome et on voit que squid l’a bloqué.

DM3

Rajouter “Edg”, pour bloquer toutes les versions de Microsoft edge.

DM3

Lorsque l’on fait une recherche on voit que squid bloque la requête.

DM3