You are on page 1of 6

Installer un proxy Squid et un filtrage 

avec SquidGuard sous Debian
Posted on 28/10/2014 by fred 
Cet article est avant tout un mémo pour mes besoins sur comment installer et mettre en place un proxy 
Squid et un contrôl parental avec SquidGuard sur un serveur dédié distant sous Debian.
Le fait de mettre en place un proxy sur un serveur dédié distant a pour bénéfice de outrepasser les 
bridages/censures, que peut mettre en place un FAI (exemple youtube et free). De plus, ici l’idée est 
d’essayer d’éviter au mieux, que des enfants surfant sur la toile tombent sur du contenu non 
recommandé. Evidemment, aucune protection ne peut égaler l’accompagnement d’un parent sur les 
risques, qu’on peut rencontrer en naviguant sur le web.
Pour ajouter une couche de filtrage, j’ai mon propre serveur DNS local configuré sur les serveurs 
DNS d’OpenDNS.
Pour le filtrage, j’aurais pu choisir DansGuardian car il est beaucoup plus performant lors de l’analyse
des requettes mais il prend beacoup de ressources matériels.
Un petit comparatif entre SquidGuard et DansGuardian:

+ DansGuardian : vrai filtrage de contenu sur toute la page et sur l’URL.

+ SquidGuard : facile à mettre en place et plûtot léger en utilisation cpu/RAM.

­ DansGuardian : demande énormément de ressource cpu/RAM.

­ SquidGuard : filtrage par domaines.

nb : Toutes les commandes dans le tuto sont éxécutées en tant que root.

Proxy Squid3
Installer Squid3

Mettre à jour la distribution Debian :
apt­get update && apt­get upgrade

Installation du proxy Squid3 :
apt­get install squid3

Configuration de squid3 :

C.X.D/32 W.conf  Autorisation des/ou du réseau à se connecter au serveur proxy : acl memolinux src A.log  Intégration du module de SquidGuard url_rewrite_program /usr/bin/squidGuard ­c  /etc/squid3/squidGuard.back  Edition du fichier de configuration pour ajouter les modifications : nano /etc/squid3/squid.conf  Modification du port d’écoute  : http_port 3128 SquidGuard Installer SquidGuard apt­get install squidguard .Z http_access allow memolinux  Masquer notre adresse IP dans le header HTTP (X­Forwarded­For: unknown) forwarded_for off  Log d’erreur en français : error_directory /usr/share/squid3/errors/French  Rejet de tous les ports différents de ceux déclarés dans les acls http_access deny !Safe_ports  Empêcher les personnes extérieures au réseau de passer par le proxy : http_access deny all  Emplacement des fichiers de logs cache_access_log /var/log/squid/access.conf /etc/squid3/squid. Sauvegarde du fichier de configuration par défaut : cp /etc/squid3/squid.B.log cache_store_log /var/log/squid/store.Y.log cache_log /var/log/squid/cache.

*)@ &adlt=strict@i  s@(.*)@ &safe=active@i   s@(google.*)@ &safe=active@i  s@(google.*q=.*/search?.live.*q=.back  Modification de SquidGuard : nano etc/squidguard/squidGuard.tar.gz  Extraction du fichier : tar ­xzf blacklists.*q=.*)@ &fyandex=1@i   s@(search.*/.*/news.conf /etc/squidguard/squidGuard.*/groups..yahoo...*)@ &adlt=strict@i ..tar.*/.Configurer SquidGuard  Téléchargement de la blacklist : wget http://dsi.ut­capitole.*)@ &vm=r&v=1@i  s@(search.*q=..bing..*)@ &adlt=strict@i   s@(search.*q=.*/yandsearch?.*/search.*/.*text=.*)@ &safe=active@i   s@(google..*/images.conf # # CONFIG FILE FOR SQUIDGUARD #   dbhome /var/lib/squidguard/db logdir /var/log/squid3   # les règles de filtrage dest adult {         domainlist adult/domains         urllist adult/urls         expressionlist adult/very_restrictive_expression } dest publicite {         domainlist publicite/domains         urllist publicite/urls } dest aggressive {         domainlist aggressive/domains         urllist aggressive/urls }   ###Forcer la réécriture de https vers http pour les moteurs de  recherche et pouvoir analyser les mots rew safesearch {  s@(google.msn.gz  Copie du dossier Blacklist dans le répertoire de squidguard : cp ­R blacklists/* /var/lib/squidguard/db/  Faire une copie du fichier de configuration de SquidGuard : cp /etc/squidguard/squidGuard.*)@ &safe=active@i  s@(yandex.*q=.*p=.*q=.fr/blacklists/download/blacklists...

fr ##tout ce qui est inderdit est  rediriger vers google   } }  Création d’un lien symbolique du fichier de configuration squidGuard.log  Ajout de mot interdit : nano /var/lib/squidguard/db/adult/very_restrictive_expression Et ajouter des mots entre pipes « | »  Regénérer la base après modifications : squidGuard ­C all  Et pour finir.log  } #La règle avec les interdictions: !porn !adult !publicite !violence ! agressif !aggressive acl {   default {         pass !adult !publicite  !agressif  all         redirect  http://google.conf dans /etc/squid3/ : ln ­s /etc/squidguard/squidGuard. paramétrer le navigateur internet pour utiliser le proxy Squid : .  log block.conf /etc/squid3/ Configuration générale  Application des droits : chown ­R proxy:proxy  /var/log/squid3 /var/lib/squidguard  Génération de la base de données : squidGuard ­C all  Vérification de la configuration de Squid3 : squid3 ­z  Lancer Squid3 : service squid3 start  Vérifier que tout est ok : /var/log/squid3/squidGuard.

ut­capitole.gz tar ­xzf blacklists.fr/blacklists/download/blacklists.gz cp ­rf blacklists/* /var/lib/squidguard/db/ rm ­Rf blacklists* squidGuard ­C all service squid3 restart  Rendre le script éxécutable : chmod +x updateblacklist  Ajouter le script dans cron.weekly : mv updateblacklist /etc/cron.weekly/ Conclusion .Mettre en place une tache planifiée pour la mise à jour de la blacklist  Créer un script : nano updateblacklist #!/bin/bash cd /tmp wget http://dsi.tar.tar.

 qu’il faut tout de même expliquer aux enfants. Je pense. qu’ils peuvent tomber sur du « mauvais » contenu et dans ce cas prévenir un adulte ou tout simplement fermer la page en question. .Avec un peu d’effort pour la mise en place. on peut être débarrassé de certains contenus sur la toile  MAIS ce n’est pas 100% fiable.