Ce serveur Proxy permettra de filtrer le trafic réseau et de garder en cache les pages internet
visitées par les utilisateurs dans le but de rendre la navigation internet plus rapide.
Software N/A
Prerequisites
Système d’exploitation:
Mageia 5 - 64bits - Interface Graphique KDE
ou
Mandriva 64bits
>WAN: l’interface eth1 est configurée pour accéder à internet, ici en IP fixe :
172.16.122.144/16 (IP Test) sur un DHCP statique et un DNS :
Préparation
- Depuis le centre de contrôle de Mageia ou de Mandriva, activez le « partage de connexion
internet avec d’autre machines locales », ce qui va vous installer Bind (DNS), un DHCP et
Squid.
- Dans sécurité, désactivez le pare-feu sur l’interface LAN (ici eth0) et laissez accessible les
serveurs web et ssh sur l’interface WAN (eth1)
- Modifiez le fichier /etc/shorewall/rules.drakx en désactivant les 2 et 3emes lignes comme
indiqué ci-dessous afin d’empêcher la redirection du firewall.
Vérifiez que vos services dns, dhcp, squid sont actifs en allant dans « gérer les services
systèmes » depuis le centre de contrôle ou en tapant dans la console « service «
nom_du_service status » . Sinon démarrez-les.
SQUID
– Squid est à présent installé, nous allons devoir éditer son fichier de configuration.
squid.conf
Pour la configuration avec notre réseau la ligne qui nous intéresse est:
« acl mynetwork src 192.168.0.0 »
/!\ Note pour Mandriva2010 : si le service squid ne se lance pas remplacez dans le fichier
squid.conf la ligne ERR_CUSTOM_ACCES DENIED par ERR_ACCES DENIED
Test :
1) Avant de tester le proxy, il convient de vérifier si notre serveur web fonctionne correctement,
tapez l’IP du serveur (192.168.0.1) ou l’IP localhost (127.0.0.1) dans le navigateur, sinon
vérifiez que le serveur apache est bien installé.
2) Entrez ensuite les paramètres de connexion comme indiqué ci-dessus, relancez le
navigateur et testez si l’accès internet est possible.
Nous disposons à présent d’un proxy pour notre réseau local mais qui ne filtre pas grand-
chose pour l’instant d’où l’utilité de lui ajouter un module qui va contrôler les accès.
La mise en place du service squid étant relativement simple il n’en n’est pas de même pour
squidGuard qui nécessite un peu plus de rigueur.
Pour installer une version de squidGuard compatible avec notre système, nous avons dû faire
quelques recherches. En effet la version téléchargée depuis le gestionnaire de logiciel
semblait poser des problèmes de compatibilité, par exemple il nous a été impossible de
compiler les bases en gardant la version proposée.
L’installation se fera donc après téléchargement du paquet sur internet. Vous la trouverez sur
ftp.free.fr ou sur rpmfind.net,
Sur notre configuration et après quelques essais la version suivante est passée correctement:
squidguard-1.4-6mdv2010.0.x86_64.rpm
Dans ce dossier « db » nous trouvons donc les sous-répertoires regroupant les catégories de
sites sensibles que nous appellerons les destinations (dest), nous verrons pourquoi plus tard
lors de l’édition du fichier de configuration de squidGuard.
Ces sous répertoires contiennent les fichiers suivants :
– domains ; dans lesquels sont inscrits les noms de domaines des sites à bloquer
– urls ; contenant les adresses
squidGuard.conf
Nous allons à présent nous intéresser au fichier de configuration de squidGuard:
/etc/squid/squidGuard.conf
Dans lequel nous trouvons divers paramètres comme la définition de l’accès horaire :
« time workhours » mais plus particulièrement les src, dest et acl
src :
ce sont les sources d’adresses qui serviront à définir un utilisateur ou un groupe ainsi qu’une
IP ou plage d’IP
acl:
autorise ou non à nos sources (src) les accès aux destinations (dest)
any > « tronqué » sur l’image il vient clôturer la liste des interdictions, il
indique que tous les autres sites seront acceptés)
redirect > redirige les pages bloquées vers l’url contenant le scriptcgi suivant :
http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u
> Les bases ne sont toujours pas générées, effectuez la commande suivante :
# squidGuard -C all
Cette commande servira à la compilation et devra être exécutée à chaque changement
relatif aux
bases (modification du squidGuard.conf)
> suivi de :
# chown -R squid:squid db
qui remet les bons droits propriétaires sur les fichiers
# service squid reload
pour relancer le service
La compilation se bloque :
Si la compilation se bloque, ceci est sûrement dû à une faute de caractère dans votre
fichier squidGuard.conf qui ne correspond pas avec le nom de vos catégories, vous
avez sûrement fait une faute de frappe, pour savoir quelle opération vous bloque
consultez les logs dans : /var/log/squidguard/squidguard.log
Nous pouvons dès à présent effectuer un test sur un poste client en dhcp sur le réseau
192.168.0.0.
Pour une configuration en statique veillez à ce que l’IP corresponde à votre plage d’adresses
inscrites dans squidGuard.conf, la passerelle et le DNS du poste client doivent être l’IP de
l’interface locale du serveur proxy, à savoir 192.168.0.1
A retenir :
Il est important que la liste de nos ACL (acl) soit en relation avec nos destinations (dest)
ainsi qu’avec la liste des catégories dans le répertoire « blacklist »
Notre fichier squidGuard.conf ne devra comporter aucune erreur, une faute de
caractère et cela ne pardonne pas, la base ne se compilera pas.
Lors de l’ajout de données il est conseillé de compiler la base et de tester au fur et à
mesure en n’oubliant pas de relancer le service.
Si erreur il y a lors de la compilation, le fichier : /var/log/squidGuard/squidGuard.log
nous en indiquera la cause.
Sur cette image, l’interface locale était configurée sur le réseau 192.168.10.0 et l’IP du client
était 192.16.10.21 , on peut constater les sites visités par l’utilisateur de ce poste.
Problème rencontre:
Si Sarg ne génère pas de rapport allez dans /etc/sarg/sarg.conf et modifiez la ligne :
« resolve_ip yes » par « resolve_ip no »
Vie privée ?
Attention toutefois à la forme. Le contrôle des connexions peut entraîner l’invocation
d’atteinte à la vie privée dans certains litiges. En contrepartie, un employé qui consulte,
par l’intermédiaire de son poste de travail, des sites interdits par les lois françaises,
demeure sous la responsabilité de l’entité qui lui a fourni la possibilité d’accéder à ceux-
ci, c’est-à-dire l’entreprise qui l’emploie ou qui l’héberge.