Squid/DansGuardian

Squid/DansGuardian

Dans ce tutoriel nous allons installer un proxy nommé Squid, qui est un logiciel opensource et nous allons coupler celui-ci avec Dansguardian qui est un logiciel de filtrage. Notez que le principal concurrent de Dansguardian est Squidguard. La différence entre les deux est que Dansguardian va vous permettre de faire du filtrage sur le contenu d’une page alors que Squidguard est limité aux URL.

 

Proxy

Fonctionnement

Un proxy est un système qui va relayer les requêtes entre des clients et des serveurs. Les clients ne sont pas directement connectés à internet, c’est notre serveur proxy qui l’est.

 

Maintenant que notre requête a été transférée, le serveur contacté nous renvoi les données. Ces données arrivent sur le serveur proxy qui va envoyer l’information au demandeur.

 

Avantages

La mise en place d’un proxy présente plusieurs avantages. Tout d’abord il va accélérer la navigation des utilisateurs grâce au cache, vous allez ainsi gagner en bande passante. Deuxième avantage, un proxy va générer des logs sur la navigation des utilisateurs, ce qui va vous permettre d’avoir une historisation des connexions faites pas vos utilisateurs. Enfin il améliore la sécurité du système d’information car les clients ne sont pas directement connectés à internet.

 

Inconvénients

Le serveur proxy étant « le point de passage » de vos équipements vers internet, si vous avez un problème sur celui-ci, l’ensemble de vos équipements seront impactés. Ils auront des lenteurs ou dans le pire des cas ne pourront plus accéder à internet.

 

Mise en place Proxy/Filtrage

Squid

Installation

Lors de ce tutoriel, je vais utiliser la distribution Debian-9.3.0 cliquez ici pour la télécharger. Vous pouvez consulter mon article sur l’installation d’un Debian si vous avez besoin d’aide. Utilisez un compte ayant les privilèges super utilisateur pour réaliser les différentes étapes. Commencez par mettre à jour votre système:

apt-get update
apt-get upgrade

 

Configurez une adresse IP fixe sur votre serveur, éditez le fichier « interfaces »:

nano /etc/network/interfaces

 

Ajoutez les lignes suivantes au fichier en adaptant le nom de l’interface et les IP à votre serveur.

auto ens33
iface ens33 inet static 
address 192.168.43.100
netmask 255.255.255.0
gateway 192.168.43.1
dns-nameservers 8.8.8.8

 

Redémarrez ensuite le service réseau afin d’appliquer les changements.

/etc/init.d/networking restart

 

La commande ifconfig, pour vérifier que la configuration réseau a été prise en compte n’est plus installée par défaut sur Debian. Vous pouvez soit installer le paquet net-tools (apt-get install net-tools) pour utiliser ifconfig, soit utiliser la commande ci-dessous:

ip a l

 

Installez Squid avec la commande suivante:

apt-get install squid

 

Éditez le fichier de configuration.

nano /etc/squid/squid.conf

 

Par défaut Squid n’autorise aucun équipement à l’utiliser. Nous devons créer une ACL afin d’autoriser le réseau local à utiliser le serveur. Ajoutez les lignes suivantes dans le fichier afin de permettre à vos machines d’utiliser le serveur, adapter les lignes à votre cas. (X.X.X.X -> IP réseau, Y.Y.Y.Y -> Masque).

acl monreseau src X.X.X.X/Y.Y.Y.Y
http_access allow monreseau

 

Redémarrez le serveur Squid afin que les modifications soient prises en compte.

systemctl restart squid

 

Test sur client

Allez dans les paramètres du navigateur, dans la partie proxy, cochez « Configuration manuelle du proxy », renseignez l’ip de votre serveur et renseignez le port 3128 qui est le port par défaut de Squid:

 

Allez sur un site afin de tester le bon fonctionnement.

 

Sur votre serveur entrez les commandes suivantes:

cd /var/log/squid
tail -f access.log

 

Vous allez consulter la liste de toutes les connexions qui sont passées par votre proxy.

 

Blocage de site avec Squid

Sachez qu’il est possible de bloquer des sites directement avec Squid. Pour cela éditez le fichier squid.conf:

nano /etc/squid/squid.conf

 

Nous allons créer une seconde ACL afin de bloquer l’ensemble des URL qui contiennent « facebook.com ». Ajoutez les lignes suivantes dans le fichier juste avant l’ACL qui autorise votre réseau:

acl facebook src 192.168.43.0/255.255.255.0
http_access deny facebook

 

Redémarrer le serveur Squid afin que les modifications soient prises en compte.

systemctl restart squid

 

Tentez d’accéder au site bloqué, la connexion sera refusée par le proxy:

 

Bloquer des URL dans Squid est possible mais cela peut s’avérer très long et compliqué à maintenir. C’est pourquoi il est intéressant d’utiliser des outils de filtrage tel que Squidguard ou DansGuardian pour intégrer des blacklists ou des mots bannis.

 

DansGuardian

Installation

Nous allons passer à l’installation de DansGuardian qui va nous permettre de bloquer du contenu à nos utilisateurs:

apt-get install dansguardian

 

Éditez le fichier de configuration:

nano /etc/dansguardian/dansguardian.conf

 

Dans ce fichier, commentez la ligne UNCONFIGURED:

#UNCONFIGURED

 

Modifier les lignes ci-dessous:

proxyport: 3128
language = 'french'
filterport = 8888
daemonuser = 'root'
daemongroup = 'root'

 

Proxyport est le port utilisé par Squid et en langue renseignez français. Le paramètre Filterport va être le port que vous attribuez à Dansguardian, par défaut 8080, mais ce port est utilisé par beaucoup d’outils, je vous conseille de le modifier. Je lui affecte la valeur 8888.

 

Éditez le second fichier de configuration:

nano /etc/dansgguardian/dansguardianf1.conf

 

Cherchez le paramètre « naughtynesslimit »  celui-ci est par défaut très restrictif (50). Réglez ce paramètre à 150.

naughtynesslimit = 150

 

Redémarrez DansGuardian pour appliquer les modifications.

systemctl restart dansguardian

 

 

Mise en place des blacklists existantes

Nous allons mettre en place les blacklists de l’université de Toulouse. Vous trouverez sur ce site de nombreuses blacklists sur différents domaines. Dans ce tutoriel nous allons mettre en place la blacklist bitcoin.

Placez vous dans le bon répertoire:

cd /etc/dansguardian/lists/blacklists

 

Téléchargez le fichier, il est possible que le lien change, vérifiez sur le site de l’université pour avoir le nouveau.

wget ftp://ftp.ut-capitole.fr/pub/reseau/cache/squidguard_contrib/bitcoin.tar.gz

 

Décompressez le fichier

tar zxvf bitcoin.tar.gz

 

Nous devons indiquer à l’outil qu’il doit prendre en compte cette liste, pour cela allez dans le répertoire suivant:

cd /etc/dansguardian/lists

 

Éditez le fichier:

nano bannedsitelist

 

Ajoutez la ligne suivante au fichier:

.Include</etc/dansguardian/lists/blacklists/bitcoin/domains>

 

A cet endroit:

 

Faites de même avec le fichier URL. Éditez:

nano bannedurllist

 

Ajoutez la ligne suivante au fichier:

.Include</etc/dansguardian/lists/blacklists/bitcoin/urls>

 

Redémarrez DansGuardian pour appliquer les modifications:

systemctl restart dansguardian

 

Test sur client

Nous allons maintenant tester sur un client. Tout d’abord retournez dans les paramètres du navigateur, dans proxy. Modifier le port en indiquant celui de DansGuardian.

Essayez d’accéder à une IP présente dans /etc/dansguardian/lists/blacklists/bitcoin/urls ou d’accéder à un lien présent dans /etc/dansguardian/lists/blacklists/bitcoin/domains. Vous devriez être bloqué:

Vous pouvez également créer vos propres blacklists. Créez un fichier avec des URL ou des IP, puis refaites les étapes précédentes pour ajouter une ligne faisant référence à votre blacklist.

Grâce à ce tutoriel, vous savez désormais ce qu’est un proxy ainsi que les avantages à en mettre un en place. La mise en place de Squid et DansGuardian n’a plus de secret pour vous. Vous savez mettre en place des blacklists existantes mais aussi créer les vôtres.

 

À propos de l’auteur

Vincent Krahenbuhl administrator

Passionné d’informatique, ma motivation et ma curiosité m’ont permis de réaliser des études en alternance tout d’abord en tant que technicien informatique au sein du groupe Edscha puis ensuite administrateur réseau au sein de FM Logistic. Fort de ces expériences dans deux entreprises internationales, j’exerce aujourd’hui le rôle d’ingénieur système et réseau au sein de FM Logistic.

Laisser un commentaire