Documente Academic
Documente Profesional
Documente Cultură
0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
Squid et
SquidGuard
Damien GRILLAT
Lylian LEFRANCOIS
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 1 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
Identification
Client Projet
Validité du document
Action Date Nom
Rédaction 18/03/2008 Damien GRILLAT, Lylian LEFRANCOIS
Synthèse :
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 2 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
SOMMAIRE
1 Introduction ....................................................................................................... 4
2 Squid .................................................................................................................. 5
2.1 Spécifications : ...................................................................................................... 5
2.2 Installation de SQUID ............................................................................................ 6
2.3 Configuration de SQUID........................................................................................ 8
3 SquidGuard...................................................................................................... 10
3.1 Installation module SquidGuard dans Webmin ................................................. 10
3.2 Blacklist SquidGuard........................................................................................... 13
3.2.1 Installation .................................................................................................................... 13
3.2.2 Administration via Webmin .......................................................................................... 14
3.2.3 Administration via SquidGuard.conf ............................................................................ 15
3.2.4 Compilation et mise à jour ........................................................................................... 15
4 IPTABLES......................................................................................................... 20
5 Webmin ............................................................................................................ 22
6 SARG ................................................................................................................ 23
7 CONCLUSION .................................................................................................. 26
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 3 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
1 Introduction
Ce projet a pour but de mettre en place une solution technique qui permet :
SquidGuard :
o Fonction filtrage d’URL très rapide
o Blacklists très souvent mises à jour
o Gratuit
o Plugin de Squid
o Petit moins : la difficulté à le configurer
IPTABLES :
o Fonction Firewall intégrée à Linux
o On peut appliquer des règles très précises
Webmin :
o Interface graphique d’administration à distance
o La plus complète VS light pour Linux
o Admin IPTABLES, SQUID, SQUIDGUARD, File Manager, SSH,
Networking, etc.
SARG:
o Module consultation de LOG Internet
o Très complet et précis, notamment sites consultés, quel utilisateur (si
Squid est intégré à Active Directory), taille données du trafic (page, total
en fonction d’un utilisateur,etc.)
o Integration à Webmin aisée
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 4 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
2 Squid
Un serveur mandataire est un serveur informatique qui a pour fonction de relayer des
requêtes entre un poste client et un serveur. Les serveurs mandataires sont
notamment utilisés pour assurer les fonctions suivantes :
mémoire cache ;
la journalisation des requêtes (« logging ») ;
la sécurité du réseau local ;
le filtrage et l'anonymat.
Squid garde les meta-données et plus particulièrement les données les plus
fréquemment accédées en mémoire. Il conserve aussi en mémoire les requêtes
DNS, ainsi que les requêtes ayant échouées. Les requêtes DNS sont non
bloquantes.
2.1 Spécifications :
http://www.squid-cache.org/
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 5 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
Après avoir installé notre distribution de Linux (à savoir Ubuntu Server LAMP), nous
devons configurer les interfaces IP ainsi que le fichier de configuration de APT afin
de pouvoir récupérer les packages de SQUID au travers du Proxy de l’EXIA.
Ensuite, notre machine linux étant installée derrière le proxy de l’Exia, nous devons
configurer APT afin de pouvoir passer par le proxy et télécharger les paquets
souhaités pour installer SQUID. Il suffit d’éditer le fichier APT.CONF comme suit :
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 6 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
Il faut décommenter la ligne suivante sinon le Proxy nous mettra des timeouts sur
des fonctions recherches au niveau de Google, Yahoo, etc… (Fonction recherche).
En fait on oblige les clients à utiliser le Proxy pour tous les protocoles.
Never_direct allow all
L’étape suivante est le téléchargement des packages de Squid v3, et leur installation,
étape simple à réaliser grâce à la commande apt :
Remarque: Si vous voulez aller piocher directement dans les dépôts commentez les
lignes suivantes dans /etc/apt/sources.list
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 7 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
Tout ce qui nous reste à faire pour permettre au client XP d’accéder au net se fera
dans le fichier squid.conf (sudo nano /etc/squid/squid.conf).
Paramétrer squid pour utiliser le proxy exia comme proxy parent (chaînage) :
cache_peer 192.168.0.254 parent 8080 0 no-query default login=PASS
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 8 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
Nous créons ensuite une ACL concernant tout le trafic depuis notre LAN (10.0.0.0) :
acl exia src 10.0.0.0/24
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 9 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
3 SquidGuard
SquidGuard est un plugin pour Squid, qui permet de contrôler les accès sur le net :
nous pouvons restreindre l’accès à certains sites par le biais de blacklists sur des url,
des mots clés et expressions.
Webmin renvoi que l’installation est réussie. Aller ensuite dans Servers/SquidGuard/
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 10 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
Il faut aussi savoir sous quels UID/GID squidGuard doit tourner. Il constituera des
processus fils pour squid, c'est donc le même utilisateur que pour squid, "proxy" par
défaut pour Debian.
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 11 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
Editer ce groupe :
Ici on préférera ajouter un sous réseau, on aurait pu faire bien d’autres choses…
PS : conformément au schéma récapitulatif le bon réseau LAN serait 10.0.0.0/24
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 12 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
Url redirectrice :
http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u
Dans Squid il y a bien une redirection qui est apparue vers SquidGuard
3.2.1 Installation
L’étape suivante concerne l’installation des blacklists. Par commodité, nous avons
récupéré une archive de l’université de Toulouse qui maintient à jour des blacklists,
disponible ici :
ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz
/var/lib/squidGuard/db/
Pour cela nous utilisons Webmin et l’option qui permet d’uploader une archive vers
le serveur Squid ET de l’extraire :
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 13 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 14 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
/etc/squid/squidGuard.conf
Il faut en effet utiliser l’utilisateur « proxy » pour squid, ce même user déjà utilisé par
SquidGuard.
Compilation des Blacklists post installation ou après l’ajout d’une nouvelle Blacklist
dans SquidGuard.conf
Sudo squidGuard –C all
Attention des problèmes de droit et permissions sont possibles dans le dossier des
databases (/var/lib/squidguard/db). Il faut en effet rendre l’utilisateur Proxy du Groupe
Proxy PROPRIETAIRE des databases concernées et leur(s) sous dossier(s).
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 15 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
Pour toute Blacklist rajoutée au SquidGuard.conf (porn, cassis, OM, forums, etc.) il
vous faudra sûrement modifier les droits sur le dossier de la Blacklist concernée
(user proxy, group proxy).
Et plus précisement :
Sudo tail -20 /var/log/squid/squidGuard.log
Résolution du problème
En effet les .db crées n’appartiennent pas à l’utilisateur « Proxy » comme il devrait,
mais à « root ». Changeons donc les droits sur ce dossier :
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 16 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
/etc/squid/squidGuard.conf
# Blacklist « drogue » (/var/lib/squidguard/db/agressive)
destination drogue {
domainlist drogue/domains
urllist drogue/urls
# expressionlist drogue/expressions
redirect http://themixofthemonth.com // si on voulait personnaliser l’interdiction
}
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 17 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
squidGuard.conf
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 18 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
#-------------------------------SQUID.CONF---------------------------#
# Interface et port d’écoute de Squid
http_port 192.168.100.254:3128
#Pas de connexion directe vers l’extérieur, Squid est Proxy pour tout
never_direct allow all
# Couplage à SquidGuard
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
redirector_bypass on
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 19 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
4 IPTABLES
INPUT
Règle1 : Autoriser tout traffic depuis le lan vers SQUID sur le port 3128
Règle2 : Autoriser accès à webmin depuis le WAN seulement à 192.168.0.58
Règle3 : Autoriser tout trafic retour
Règle par défaut : tout « dropper »
FORWARD
Règle par défaut : tout « dropper »
OUTPUT
Règle par défaut : tout « ACCEPTER »
Notre trafic est maintenant contrôlé, mais il serait intéressant de pouvoir autoriser
les accès web seulement aux employés, et un accès total au directeur par
exemple.
Pour mettre ceci en place, nous allons configurer des ACL dans SQUID :
1) Les « acl safe_ports » indique les ports qui seront utilisable ou pas par un
utilisateur donné. Une ligne commentée interdit l’utilisation du port, une
ligne dé commentée en permet l’accès.
2) Nous créons une ACL pour chacun des utilisateurs
3) Nous appliquons les « acl safe_ports » au commercial : il ne pourra
accéder QUE http et https.
4) Nous donnons accès au réseau à M. le directeur et sa commerciale.
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 21 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
5 Webmin
Si vous voulez installer et metre à jour Webmin via APT-GET, éditez le fichier
« /etc/apt/sources.list » et ajoutez le dépôt suivant:
Accès à Webmin:
https://192.168.0.200:10000/
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 22 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
6 SARG
Une des exigences du directeur qui a fait appel à nos services, était de pouvoir
avoir un œil, en permanence, sur l’activité de son réseau d’entreprise.
Nous avons donc installé le module SARG (Squid Analysis Report Generator)
qui va nous permettre d’épier les moindres faits et gestes des employés. Vous allez
voir que nous sommes capables de générer des rapports d’analyses des pages les
plus visitées, des fichiers téléchargés, et ce pour chacun des postes du réseau, qui
seront bien sûr clairement identifiés.
Afin de rendre plus digeste l’exploitation de ce module, nous faisons une fois de plus
appel à webmin, qui nous permet de paramétrer SARG et de générer les rapports qui
nous intéressent.
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 23 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
Pour résumer, nous pouvons indiquer de générer des rapports concernant des hôtes
en particuliers, de générer des rapports par utilisateur, de résoudre ou non les
adresse ip, et diverses autres options pour personnaliser au maximum nos rapports.
Rentrons maintenant dans le vif du sujet, la création de rapports. Il suffit pour cela de
cliquer sur le bouton « generate report now » qui affichera par la suite l’invite
suivante :
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 24 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
Pour affiner les informations, et par exemple, adapter vos blacklists, vous pouvez
afficher une liste des sites les plus visités, ou encore afficher le bilan d’une semaine
complète ou des fichiers téléchargés :
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 25 / 26
Agence : Toulouse
Réf. : DC-10-TG v 1.0
WORKSHOP Ver. : 1 Edition : 0
Date : 25/03/2008
7 CONCLUSION
Il manque :
Il manque une intégration à Active Directory
Mise à jour automatique des Blacklists par Script
Test réel sur réseau de l’EXIA pour mesurer les performances d’une solution
paramétrée
Squid en Proxy transparent (assez facile à réaliser mais aujourd’hui problème
au niveau des règles firewall)
Malgré tout cela Squid reste une référence en matière de Proxy libre et gratuit
EXIA
Division : 4RIR Réf : DC-10-TG v 1.0 Page 26 / 26
Agence : Toulouse