Aller au contenu

Installer un proxy Squid et un filtrage avec SquidGuard sous Debian


Ldfa

Messages recommandés

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 outre passer 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 contenus non recommandés. Evidemment, aucune protection ne peut égaler l’accompagnement d’un parent sur les risques, qu’on peut rencontrer en navigant 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 pû choisir DansGuardian car il est beaucoup plus performant lors de l’analyse des requettes mais il prend beacoup de ressources matériels.

Un petit conparatif entre SquidGuard et DansGuardian:

  • + DansGuardian : vrai filtrage de contenu sur toute la page et sur l’URL.
  • + SquidGuard : facile a mettre en place et plutot leger 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.

Installer Squid3

  • Mettre à jour la distribution Debian :
apt-get update && apt-get upgrade
Installation du proxy Squid3 :
apt-get install squid3

Configuration de squid3 :

  • Sauvegarde du fichier de configuration par défaut :
cp /etc/squid3/squid.conf /etc/squid3/squid.back
Edition du fichier de configuration pour ajouter les modifications :
nano /etc/squid3/squid.conf
Autorisation des/ou du réseau à se connecter au serveur proxy :
acl memolinux src A.B.C.D/32 W.X.Y.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 allow !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.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
Intégration du module de SquidGuard
redirect_program /usr/bin/squidGuard -c /etc/squid3/squidGuard.conf
url_rewrite_program /usr/bin/squidGuard -c /etc/squid3/squidGuard.conf
redirect_children 10
Modification du port d’écoute et ajout du mode proxy « transparent » :
http_port 3128 transparent

Installer SquidGuard

apt-get install squidguard

Configurer SquidGuard

  • Téléchargement de la blacklist :
wget http://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz
Extraction du fichier :
tar -xzf blacklists.tar.gz
Copie du dossier Blacklist dans le répertoire de squid3 :
cp -R blacklists/* /var/lib/squidguard/db/
Faire une copie du fichier de configuration de SquidGuard :
mv /etc/squidguard/squidGuard.conf /etc/squidguard/squidGuard.back
Modificationde SquidGuard :
nano etc/squidguard/squidGuard.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 porn {
        domainlist porn/domains
        urllist porn/urls
        expressionlist porn/very_restrictive_expression
}
dest violence {
        domainlist violence/domains
        urllist violence/urls
}
dest aggressive {
        domainlist aggressive/domains
        urllist aggressive/urls
}
dest agressif {
        domainlist agressif/domains
        urllist agressif/urls
}
###Forcer la réécriture de https vers http pour les moteurs de recherche et pouvoir analyser les mots
rew safesearch {
 s@(google..*/search?.*q=.*)@ &safe=active@i
  s@(google..*/images.*q=.*)@ &safe=active@i
 s@(google..*/groups.*q=.*)@ &safe=active@i
  s@(google..*/news.*q=.*)@ &safe=active@i
 s@(yandex..*/yandsearch?.*text=.*)@ &fyandex=1@i
  s@(search.yahoo..*/search.*p=.*)@ &vm=r&v=1@i
 s@(search.live..*/.*q=.*)@ &adlt=strict@i
  s@(search.msn..*/.*q=.*)@ &adlt=strict@i
 s@(.bing..*/.*q=.*)@ &adlt=strict@i
  log block.log
 }
#La règle avec les interdictions: !porn !adult !publicite !violence !agressif !aggressive
acl {
  default {
        pass !porn !adult !publicite !violence !agressif !aggressive all
        redirect  http://google.fr ##tout ce qui est inderdit est rediriger vers google
  }
}
Création d’un lien symbolique du fichier de configuration squidGuard.conf dans /etc/squid3/ :
ln -s /etc/squidguard/squidGuard.conf /etc/squid3/
  • Application des droits :
chown -R proxy:proxy /etc/squid3 /var/log/squid3 /var/spool/squid3 /usr/lib/squid3 /usr/sbin/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.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, paramétrer le navigateur internet pour utiliser le proxy Squid :

prxysquid3

  • Créer un script :
nano updateblacklist
#!/bin/bash
cd /tmp
wget http://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz
tar -xzf blacklists.tar.gz
cp -R 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

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. Je pense, qu’il faut tout de même expliquer aux enfants, qu’ils peuvent tomber sur du « mauvais » contenus et dans ce cas prévenir un adulte ou tout simplement fermer la page en question.


Afficher l’article complet

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.