Proxy

Un proxy est un composant logiciel informatique qui joue le rôle d’intermédiaire en se plaçant entre deux hôtes pour faciliter ou surveiller leurs échanges. C’est alors un programme servant d’intermédiaire pour accéder à un autre réseau, généralement internet.
Dans l’environnement plus particulier des réseaux, un serveur proxy (ou « serveur mandataire ») est une fonction informatique client-serveur qui a pour fonction de relayer des requêtes entre une fonction cliente et une fonction serveur.

Les serveurs proxys sont notamment utilisés pour assurer les fonctions suivantes :
– accélération de la navigation : cache, compression de données, filtrage de contenus lourds (java, flash)
– journalisation des requêtes (historique)
– sécurité du réseau local
– filtrage et l’anonymat

 

Mise en place d’un serveur proxy Squid & SquidGuard sous Debian

 

1 – Configuration de Squid

Le fichier de configuration de Squid est /etc/squid/squid.conf. Il est préférable de garder une copie de ce fichier car il est très conséquent.

Nous pouvons ensuite éditer ce fichier en commençant par retirer toutes les lignes commentées et les lignes vides (qui représentent quelques milliers de lignes) à l’aides des commandes suivantes :
:g/^#/d : supprime toutes les lignes commençant par le caractère « # »
:g/^$/d : supprime toutes les lignes commençant par un caractère vide

Et voici ce qu’il reste du fichier :

 

Nous allons maintenant y apporter des modifications en ajoutant une ACL (Acces Control List) pour le réseau 172.16.6.0/24 et une règle l’autorisant à sortir :

 

Notre serveur proxy se trouvant avant un autre serveur proxy, nous allons ajouter :

La ligne cache_peer indique l’adresse IP du prochain proxy,  parent signifie que le type du prochain proxy est à un niveau supérieur à notre proxy. Ensuite, on indique le port du prochain proxy (ici, 8080), suivi du port ICP (Internet Cache Protocol), ici 0 car nous n’utiliserons pas de cache. Ensuite, default indique que ce prochain proxy sera utilisé par défaut et enfin, no-query indique de ne faut pas faire de demande ICP au prochain proxy. login, comme son nom l’indique, correspond aux identifiants de connexion.
never_direct allow all sert à indiquer à notre proxy de ne jamais faire de requêtes directes et donc de toujours passer par le proxy parent.

 

2 – Configuration de SquidGuard

SquidGuard aura pour rôle le filtrage des requêtes parvenant à notre serveur proxy.

Nous commencerons par télécharger un fichier blacklist contenant des noms de domaines, des URLs et des adresses IP qui seront bloquées par notre proxy :

 

Il faudra ensuite extraire ce fichier et copier la blacklist dans /var/lib/squidguard/db :

 

Nous allons ensuite intervenir sur le fichier de configuration de SquidGuard /etc/squidguard/squidGuard.conf en commençant par définir les sources (ici, nous n’en mettrons qu’une) qui serviront au proxy pour appliquer le filtrage :

 

Puis, nous allons définir destinations qui détermineront les noms de domaines et les URLs à filtrer pour les sources qui ont été définies plus haut :

Les noms de domaines et URLs se trouvent dans la blacklist /var/lib/squidguard/db/gambling, là où nous avons décompressé la blacklist.

 

Nous allons maintenant établir des ACL qui sont des règles définissant les autorisations des sources par rapport aux destinations que nous avons défini précédemment :

Ici, nous avons défini la règle suivante pour la source lan, étant le réseau 172.16.6.0/24 : pass laisse passer any tout !gambling ce qui ne se trouve pas dans la blacklist gambling (nous ferons abstraction de l’ACL clients). Et par défaut, rien ne passe : pass none

Nous remarquerons redirect http://www.amazon.fr qui indique de rediriger vers le site d’Amazon si un nom de domaine ou une URLs non autorisée a été détectée.

 

Nous allons ensuite créer le lien suivant pour lier le fichier squidGuard.conf à Squid avec la commande ln –s :

 

Il va ensuite falloir retourner dans le fichier /etc/squid/squid.conf pour ajouter cette ligne pour indiquer à Squid de rediriger les requêtes qu’il reçoit vers le module SquidGuard :

 

Il sera nécessaire par la suite d’effectuer la commande suivante pour créer la base de données qui sera utilisée par Squid pour les blacklists :

 

Nous allons maintenant attribuer les droits à Squid pour les dossiers suivants :

 

Et enfin, nous n’oublierons pas de redémarrer ou de recharger notre serveur Squid avec la commande /etc/init.d/squid {restart/reload}.

Il ne nous restera plus qu’à tester avec après avoir entré les paramètres de notre proxy dans le navigateur d’un client. Nous testerons avec une URL se trouvant dans la blacklist et celle-ci sera bloquée et nous serons redirigé vers le site d’Amazon. Avec une URL ne se trouvant dans la blacklist, nous pourrons accéder au site en question.

Laisser un commentaire

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