Passerelle Filtrante DansGuardian/Squid (proxy cache transparent) 

Objectif

Installer DansGuardian et Squid sur un routeur linux (debian/ubuntu) pour filtrer l’accès au web.

Pourquoi DansGuardian (et pas SquidGuard ) ?

SquidGuard utilise une liste noire de sites interdits qu'il faut tenir à jour. DansGuardian peut lui aussi utiliser des listes noires (sites, mots, extensions ...), mais plus futé, il analyse le contenu des pages et détermine si elles doivent être bloquées en fonction de leur niveau de « naughtiness ».

Installation de Squid

Pour fonctionner, DansGuardian a besoin d'un serveur proxy.

# aptitude install squid

Configuration de Squid

Le fichier de configuration de Squid est énorme mais il s'agit surtout de commentaires, il y a très peu de choses à modifier.

# nano /etc/squid/squid.conf

Rechercher la partie concernant la déclaration des acl (rechercher « acl all ») , ajouter vos subnets réseau :

acl ourLANs src 172.16.0.0/16 172.20.0.0/16

Plus bas, avant la ligne « http_access deny all » ajoutez :

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

http_access allow ourLANs

Redémarrer le Squid pour prendre en compte les modifications :

# /etc/init.d/squid restart

Test de Squid

Pour tester squid, il suffit de configurer un navigateur web pour qu’il l’utilise. Par exemple, pour Firefox, il faut faire :
- Menu « Éditions / Préférences » onglet « Avancé », bouton « Paramètres ».
- Mettre « AdresseIPPasserelle » dans le champ « Proxy HTTP »
- Mettre « 3128 » dans le champ « Port »
- Cocher « Utiliser ce serveur proxy pour tous les protocoles »

Si après ce réglage, l’accès web fonctionne toujours c’est que le proxy est opérationnel.

Et normalement en arrêtant le proxy, cela doit bloquer l’accès web :

# /etc/init.d/squid stop

Il faut le démarrer pour refaire fonctionner l’accès au web :

# /etc/init.d/squid start

Installation de DansGuardian

# aptitude install dansguardian

L’installation de « DansGuardian entraîne l’installation de l’antivirus « Clamav ».

Configuration de DansGuardian

DansGuardian utilise plusieurs fichiers de configuration situés dans « /etc/dansguardian ».

Configuration de « /etc/dansguardian/dansguardian.conf »

Pour activer la configuration, il faut commenter ou supprimer cette ligne :

#UNCONFIGURED

La ligne suivante permet d’indiquer le port utilisé par le proxy squid :

proxyport = 3128

Cette ligne permet d’avoir les messages en français en cas de blocage des sites :

language = 'french'

Cette ligne permet de désactiver l’antivirus :

virusscan = off

Configuration de « /etc/dansguardian/dansguardian1.conf »

La ligne suivante permet de paramétrer le filtrage en fonction de l’âge des personnes concernées :

naughtynesslimit = 150

La valeur par défaut de « 50 » donne un filtrage très dur et peu de sites sont accessibles. Plus cette valeur est élevée et plus le filtrage est faible.

Cette ligne permet de désactiver l’antivirus :

virusscan = off

Configuration du fichier /etc/dansguardian/bannedextensionlist

Ce fichier permet de définir des types de fichiers qui seront interdits de télécharger. Par défaut, la liste est très restrictive. il faut donc commenter les types de fichiers que vous souhaitez autoriser.

Configuration du fichier /etc/dansguardian/bannedmimetypelist

Là encore il s’agit de restreindre des types de fichiers.

#application/gzip
#application/x-gzip
#application/zip

Configuration du fichier /etc/dansguardian/bannedregexpurllist

L’ajout de cette ligne à la fin du fichier permet de bloquer la plupart des sites français de rencontres en ligne :

(webcam|tchat|t'chat|rencontre|meetic|amour)

Configuration du fichier /etc/dansguardian/phraselists/pornography/weighted_french

Il est possible d’ajouter des mots ou des listes de mots dans ce fichier, avec des coefficients positifs (mauvais mot) ou négatifs (bons mots) :

< tchat ><20>
< t'chat ><20>

Prise en compte des modifications dans la configuration de DansGuardian

Pour prendre en compte les modifications, il faut relancer DansGuardian :

# /etc/init.d/dansguardian restart

Test de DansGuardian

Pour tester « DansGuardian », il suffit de configurer un navigateur web pour qu’il l’utilise. Par exemple, pour Firefox, il faut faire :
- Menu « Éditions / Préférences » onglet « Avancé », bouton « Paramètres ».
- Mettre « AdresseIPPasserelle » dans le champ « Proxy HTTP »
- Mettre « 8080 » dans le champ « Port » (et non plus « 3128 » qui est le port utilisé par le proxy)
- Cocher « Utiliser ce serveur proxy pour tous les protocoles »

Test du filtrage

Dans Firefox, allez sur www.google.fr et faites une recherche sur « gros seins ». Les sites retournés par cette recherche devraient être bloqués et la page d’avertissement : /etc/dansguardian/languages/french/template.html s’affiche à la place.

Faites maintenant une recherche sur « grosseur seins ». Les pages retournées ne sont pas bloquées, elles offrent des informations sur le dépistage du cancer du sein ...

Configuration d’iptables pour rendre DansGuardian incontournable

Avec la configuration précédente, il suffit de désactiver le proxy dans le navigateur pour accéder au web sans filtrage. Pour remédier à ce problème, il faut configurer iptables pour rediriger toutes requête web vers DansGuardian, on rend ainsi le proxy « transparent ». Pour cela, il suffit d’ajouter cette ligne à la configuration de votre parefeu :

iptables -t nat -A PREROUTING -i ! $ext_if -p tcp --dport 80 -j REDIRECT --to-port 8080

Ou mieux, pour empecher les clients de passer directement par le proxy squid sur le port 3128 en évitant DansGuardian en configurant leur navigateur :
iptables -t nat -A PREROUTING -i ! $ext_if -p tcp -m multiport --dport 80,3128 -j REDIRECT --to-port 8080

Il faut également configurer le mode transparent dans /etc/squid/squid.conf :

http_port 3128 transparent

always_direct allow all

Utilisation des listes noires de SquidGuard

Vous trouverez sur ce site, des listes noires régulièrement actualisées pour SquidGuard :
- http://cri.univ-tlse1.fr/documentations/cache/squidguard.html

Adresse du fichier blacklists : ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz à décompresser dans :

# mkdir /etc/dansguardian/blacklists

Les blacklists sont disponibles individuellement, pour la blacklist « Adult » par exemple :

wget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/adult.tar.gz


Créer un script pour Automatiser la mise à jour des blacklists

#!/bin/bash

cd /etc/dansguardian/blacklists

wget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz

tar -xvzf blacklists.tar.gz -C /etc/dansguardian/blacklists

/etc/init.d/dansguardian restart

Ajouter les chemins d'accès aux blacklists que vous souhaitez utiliser dans /etc/dansguardian/bannedsitelist

.Include /etc/dansguardian/blacklists/blacklists/adult/domains ... .Include /etc/dansguardian/blacklists/blacklists/warez/domains

Pour prendre en compte les modifications, redémarrer DansGuardian :

# /etc/init.d/dansguardian restart

Pour tester que la liste est bien opérationnelle, il faut tester l’un des sites proposés dans le fichier « domains » la mention « Site Interdit » est utilisée si le blocage est lié à la présence de l'url dans une blacklist, sinon la mention « Limite de ponderation depassee » est utilisée... on peut aussi regarder les logs :

# nano /var/log/dansguardian/access.log

2007.2.17 11:49:44 - 127.0.0.1 votresite.com *DENIED* Site interdit: votresite.com GET 0



Monitorer l'activité du proxy avec SARG

(log analyser pour squid et dansguardian)

# aptidude update
# aptitude install sarg

# nano /etc/squid/sarg.conf
dans la config de SARG /etc/squid/sarg.conf mettre le log de dansguardian à la place de celui de squid :
access_log /var/log/dansguardian/access.log
report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads denied
dans /etc/dansguardian/dansguardian.conf mettre :
loglevel = 3
logfile format = 3

 

 

Sources :

http://www.deckle.co.za/squid-users-guide/Transparent_Caching/Proxy

http://www.coagul.org/article.php3?id_article=570

http://www.coagul.org/article.php3?id_article=184



[ Ajouter un commentaire ] ( ( 3 vues ) )   |  [ 0 Trackbacks ]   |  Lien permanent

<< <Précédent | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Suivant> >>