{{tag>netadmin sysadmin proxy web squid squidguard todo}} ====== Filtrage du web avec SquidGuard ====== Squidguard est un plugin de filtrage d'URL à associer au programme squid. Il faut installer et paramétrer le proxy squid en premier lieu. La procédure est détaillé dans le wiki [[netadmin:proxy:squid:installer-squid3]]. ===== Filtrage ===== Le module squidguard permet de filtrer l’accès au contenu web. $ sudo apt-get install squidguard A l'installation le fichier de configuration consulte le dossier /var/lib/squidguard/db Modifier la configuration de squid pour qu'il utilise squidguard: url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf url_rewrite_children 10 startup=0 idle=1 concurrency=0 Modifier le fichier de configuration **/etc/squidguard/squidGuard.conf**. Indiquer le répertoire conteneur des listes: Déclarer les sources Déclarer les destinations Déclarer les ACL mettant en relation les sources et des destinations autorisées: Lorsque une ressource destination non autorisée est demandée, la directive **redirect** est utilisée par squiGuard. On peut alors rediriger la requête vers une page statique ou dynamique en spécifiant des variables. Des fichiers cgi d'exemples sont disponibles sous **/usr/share/doc/squidguard/examples**. Pour servir ces fichiers cgi, un serveur web doit être installé/fonctionnel. Pour ces modestes besoins lighttpd a été installé. Ci dessous les variables disponibles lors de la redirection: ^ %a | Adresse IP du client. | ^ %i | Identifiant utilsateur (RFC931, LDAP or mySQL) ou "unknown" | ^ %n | nom de domaine du client ou "unknown" | ^ %p | URI de la requête | ^ %s | source group du client ou "unknown" | ^ %t | target group: la destination évaluée or "unknown". | ^ %u | URL | ===== Script de mise à jour des listes ===== Le script: * Récupère les liste maintenues par l'académie sous forme d'archive. * Décompresse l'archive et donne les droit a l'utilisateur proxy. * Lance la construction des bases Berkeley DB ===== Configuration des clients ===== Les fichiers pac, à placer sur un serveur web permettent de configurer automatiquement le proxy sur le navigateur demandant l'URL (javascript). function FindProxyForURL(url, host) { if ( isInNet(myIpAddress(), "127.0.0.0", "255.0.0.0") || isInNet(myIpAddress(), "192.168.0.0", "255.255.255.0")) { return "DIRECT"; } else { if (shExpMatch(url, "http:*")) return "PROXY 192.168.1.28:3128" ; if (shExpMatch(url, "https:*")) return "PROXY 192.168.1.28:3128" ; return "DIRECT"; } } Le mime-type associé au fichiers .pac doit être modifié si nécessaire dans la configuration du serveur web: application/x-ns-proxy-autoconfig .pac; ===== Références ===== * https://www.mighty-studio.net/mes-tuto/squid-et-squidguard-filtre-les-acces-au-net/ * https://doc.ubuntu-fr.org/squid * https://doc.ubuntu-fr.org/squid#configuration * http://irp.nain-t.net/doku.php/220squid:060_squidguard * http://stackoverflow.com/questions/2601400/squidiptables-how-do-i-allow-https-to-pass-through-and-bypassing-squid * http://www.pihomeserver.fr/2015/09/01/un-controle-parental-grace-au-raspberry-pi-squid-et-squidguard/ * http://squidguard.org/Doc/redirect.html * https://dsi.ut-capitole.fr/documentations/cache/squidguard.html * https://memo-linux.com/installer-un-proxy-squid-et-un-filtrage-avec-squidguard-sous-debian/