{{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/