SERVEUR PROXY: SQUID

SERVEUR PROXY: SQUID

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

Pour mettre en place notre serveur proxy, nous allons installer et configuré « Squid » qui est un serveur mandataire entièrement libre et très performant. il est capable de gérer les protocoles FTP, HTTP, HTTPS… Squid cumule trois fonctions à savoir:

  • Le filtrage : Le filtrage est appliqué en fonction de la politique de sécurité en place sur le réseau. Ceci permet de bloquer selon une liste noire, les sites considérés comme malveillants et/ou inutiles au contexte de travail de l’entreprise (pornographie … etc)
  • Serveur cache : garde en cache les sites visités pour être consulté plus rapidement en cas de demande par les utilisateurs du réseau. Le stockage des logs des sites les pages vues, permet à l’administrateur du réseau de redéfinir la politique de sécurité du réseau et/ou d’intervenir auprès d’un utilisateur qui visite fréquemment des sites malveillants ou sans rapport avec l’activité de l’entreprise.
  • Serveur mandataire : car c’est lui qui est mandaté pour faire la demande à la place des utilisateurs.

Installation de SQUID

Pour mettre en place notre serveur, nous allons commencer par mettre à jour les paquets Debian à l’aide de la commande:

"apt-get updtate & upgrade"

Ensuite nous allons installer Squid:

"apt-get install squid3 squidGuard"

Nous pouvons lancer la commande « ps –axf » pour voir si le processus de squid est bien lancer.

Configuration de Squid

Attribution des droits à l’utilisateur proxy

L’utilisateur proxy du groupe proxy sera le contrôleur des processus squid. Il faut donc lui donner les droits sur les répertoires créés.

« chown –R proxy:proxy /etc/squid »

On va vérifier en tapant la commande « ls –l | grep squid »

Par la suite nous allons créer le répertoire de cache de squid et attribuer les droits.

« mkdir
/var/cache/squid »
« chown –R proxy:proxy /var/cache/squid ».

Après l’installation, nous allons configurer le fichier suivant: « /etc/squid/squid.conf » qui est le fichier où se feront la majorité des configurations.

Après l’installation nous pouvons vérifier le port sur lequel écoute notre serveur dans le fichier de configuration.

Nous pouvons ouvrir notre navigateur et paramétrer le proxy dans les « paramètres avancés d’internet » c’est à dire entrer l’adresse IP de notre serveur proxy ainsi que son port associé, comme suit:

Si nous retournons sur le navigateur et tentons de joindre la page www.google.fr, nous aurons un blocage par le proxy.

Si nous consultons le fichier de log « /var/log/squid/access.log« , nous remarquons que l’accès à la page www.google.fr a été refusé par le proxy.

Afin d’éviter tout désagrément en cas d’erreur, nous allons commencer par faire une copie de configuration de Squid:

"cp
/etc/squid/squid.conf /etc/squid/squid.conf.ini"

Ensuite nous allons enlever les commentaires dans ce fichier et la copier dans un nouveau fichier:

"sed
"/^#/d" /etc/squid/squid.conf> /etc/squid/squid.conf.test"

Et supprimer les lignes vides dans ce même fichier et la mettre dans le fichier de départ.

"sed
"/^$/d" /etc/squid/squid.conf.test> /etc/squid/squid.conf"

À la fin, nous avons le fichier suivant:

Nous pouvons commencer la configuration de squid, nous remarquons que de base, squid bloque tous l’accès à tous les sites. Après chaque modification du fichier de configuration il faut redémarrer le serveur: « service squid restart »

Contrôles d’accès

Afin de contrôler tout ce qui passe par notre serveur, nous utilisons les ACL (Access Control List). Ce sont des règles que le serveur applique afin d’interdire ou d’autoriser certaines transactions.

On peut autoriser ou interdire en fonction du domaine, du protocole, de l’adresse IP, du numéro de port, d’un mot ou des plages horaires.

La syntaxe d’une ACL

Acl       ‘aclname’           ‘acltype’             ‘string’

http_access      allow/deny       [ !]’aclname’

  • Autoriser l’accès au Lan

Interdire l’accès à certains sites.

Nous allons tout d’abord créer un fichier dans lequel nous allons noter tous les sites que nous désirons bloquer et ainsi renseigner le chemin dans le fichier de configuration de squid.

Par la suite nous allons créer une acl comme sur l’image ci-dessous

NB : afin que cette restriction puisse s’appliquer sur les réseaux cités nous allons la placer au-dessus de l’acl autorisant ces réseaux.

Test de connexion pour les sites bloqués

Ensuite nous essayons d’atteindre l’un de ces sites bloquer : ex : www.cdiscount.com, nous remarquons que le proxy refuse la connexion à ce site.

Contrôle d’accès horaires

Squid permet de restreindre l’accès de certains postes clients suivant des plages horaires définies. On ajoute alors les lignes suivantes dans le fichier de configuration de squid :

Afin de faire des tests nous allons créer une restriction horaire de 8h à 13h et les appliqué aux différents réseau.

Après la configuration nous tentons de nous connecter après 14 et la connexion à notre page Web est bien refusée.

Installation d’une solution de filtrage SquidGuard

Un proxy tout seul a peu d’utilité, raison pour laquelle nous allons mettre en place une solution filtrage afin de nous permettre de filtrer l’accès à certains sites ou catégories de site à partir d’une blacklist française. Nous allons commencer par installer SquidGuard:

« apt install squidguard »

Ensuite nous allons mettre en place notre blacklist, ou utiliser la blacklist mis à disposition gracieusement par L’Université Toulouse 1 Capitole qui diffuse depuis quelques années une liste noire d’URLs, gérée par Fabrice Prigent.

L’installation de squidguard crée de base le répertoire/var/lib/squidguard/db, qui est destiné à contenir nos listes noires et blanches ainsi que les scripts cgi.

Le répertoire/var/log/squid quant à lui permet de récupérer les logs

Une fois installer, faire une copie du fichier de squidGuard

« cp
/etc/squidGuard/squidGuard.conf.default /etc/squidGuard/squidGuard.conf »

Ensuite nous allons enlever les commentaires dans ce fichier et la copier dans un nouveau fichier, avec la commande:

"sed "/^#/d" /etc/squidGuard/squidGuard.conf.default>
/etc/squidGuard/squidGuard.conf.test"

Et supprimer les lignes vides dans ce même fichier et la mettre dans le fichier de départ.

"sed "/^$/d" /etc/squidGuard/squidGuard.conf.test>
/etc/squidGuard/squidGuard.conf"

Attribution des droits à l’utilisateur proxy

Nous allons donner tous les droits à l’utilisateur proxy dans les répertoires suivants:

Chown
–R proxy:proxy /etc/squidGuard

On va vérifier en tapant la commande « ls –l | grep squidGuard ».

« chown –R  proxy:proxy /var/lib/squidGuard/db » 

Nous allons par la suite télécharger la blacklist en version compressée à partir du site : https://dsi.ut-capitole.fr/blacklist/.

Pour cela, se déplacer dans le répertoire /var/lib/squidGuard/db

« cd /var/lib/squidGuard/ »

Entrons la commande suivante pour télécharger la blacklist:

« wget https://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz »

Nous décompressons l’archive dans le répertoire /var/lib/squidGuard/db et on copie le contenu du répertoire blacklist dans le répertoire /var/lib/squidGuard/db/

« tar xvzf blacklists.tar.gz »

Par la suite nous éditons le fichier /etc/squidguard/squidguard.conf. Dans ce fichier nous pouvons:

Indiquer les réseaux où seront appliqués les restrictions

la liste des répertoires contenant des sites à bogués

Les horaires de connexion des utilisateurs des réseaux renseignés.

Avant de relancer squid. Il faut lui signaler de démarrer squidguard, on ajoute alors dans squid.conf les lignes suivantes :

redirect_program /usr/bin/squidGuard -c /etc/squid3/squidGuard.conf
redirect_children 5


Création d’un lien symbolique du fichier de configuration squidGuard.conf dans /etc/squid/

« ln –s /etc/squidguard/squidGuard.conf /etc/squid »

Nous allons attribuer des droits aux dossiers suivants :

« chown–R proxy :proxy /var/log/squid  /var/lib/squidguard"

Par la suite nous allons générer la base de donnés avec la commande suivante :

« squidGuard –d –b –C all »

NB: On lance la commande « squidGuard -C all » pour faciliter l’indexation des bases de données de SquidGuard et on vérifie dans les logs (/var/log/squidguard/squidGuard.log) que tout s’est bien déroulé : on devrait avoir une dernière ligne de log précisant « squidGuard ready for requests« 

Pour se faire :

Ouvrir un premier terminal dans lequel on lance la commande « squidGuard –C all » (all: pour charger toute la base de donnée).

NB: vous pouvez taper la commande « squidGuard -C ‘NomduRépertoire’ » pour mettre à jour un répertoire spécifique.

Dans un second terminal nous lançons la commande suivante « tail –f /var/log/squidguard/squidGuard.log » afin de voir les logs.

NB: cela peut prendre un peu plus de temps car il met à jour la base de donnée des sites bloqués

Si vous créer votre propre répertoire de base de données, pensez à lui donner des droits à l’utilisateur proxy afin qu’il lise ce répertoire.

admin7498

Laissez votre message