SquidGuard : Différence entre versions

De Wiki NCad
Aller à : navigation, rechercher
(Page créée avec « __TOC__ = Présentation = SquidGuard est un module pour le serveur proxy Squid. Ce module ajoute des fonctionnalités avancées en matière de filtrage basé sur une l... »)
 
(Liste blanche)
 
(9 révisions intermédiaires par le même utilisateur non affichées)
Ligne 60 : Ligne 60 :
 
         domainlist adult/domains
 
         domainlist adult/domains
 
         urllist adult/urls
 
         urllist adult/urls
         redirect http ://error.ncad.fr/warning.php?reason=Site-pour-adulte
+
         redirect http://error.ncad.fr/warning.php?reason=Site-pour-adulte
 
  }
 
  }
 
  dest agressif {
 
  dest agressif {
 
         domainlist agressif/domains
 
         domainlist agressif/domains
 
         urllist agressif/urls
 
         urllist agressif/urls
         redirect http ://error.ncad.fr/warning.php?reason=Site-agressif
+
         redirect http://error.ncad.fr/warning.php?reason=Site-agressif
 
  }
 
  }
 
  dest astrology {
 
  dest astrology {
 
         domainlist astrology/domains
 
         domainlist astrology/domains
         redirect http ://error.ncad.fr/warning.php?reason=Site-astrologue
+
         redirect http://error.ncad.fr/warning.php?reason=Site-astrologue
 
  }
 
  }
 
  dest audio-video {
 
  dest audio-video {
 
         domainlist audio-video/domains
 
         domainlist audio-video/domains
 
         urllist audio-video/urls
 
         urllist audio-video/urls
         redirect http ://error.ncad.fr/warning.php?reason=Contenu-Multimedias
+
         redirect http://error.ncad.fr/warning.php?reason=Contenu-Multimedias
 
  }
 
  }
 
  dest blog {
 
  dest blog {
 
         domainlist blog/domains
 
         domainlist blog/domains
 
         urllist blog/urls
 
         urllist blog/urls
         redirect http ://error.ncad.fr/warning.php?reason=Blog-site-personnel
+
         redirect http://error.ncad.fr/warning.php?reason=Blog-site-personnel
 
  }
 
  }
 
  dest cleaning {
 
  dest cleaning {
 
         domainlist cleaning/domains
 
         domainlist cleaning/domains
 
         urllist cleaning/urls
 
         urllist cleaning/urls
         redirect http ://error.ncad.fr/warning.php?reason=Site-securite-informatique
+
         redirect http://error.ncad.fr/warning.php?reason=Site-securite-informatique
 
  }
 
  }
 
  dest dangerous_material {
 
  dest dangerous_material {
 
         domainlist dangerous_material/domains
 
         domainlist dangerous_material/domains
 
         urllist dangerous_material/urls
 
         urllist dangerous_material/urls
         redirect http ://error.ncad.fr/warning.php?reason=Site-armes
+
         redirect http://error.ncad.fr/warning.php?reason=Site-armes
 
  }
 
  }
 
  dest dating {
 
  dest dating {
 
         domainlist dating/domains
 
         domainlist dating/domains
 
         urllist dating/urls
 
         urllist dating/urls
         redirect http ://error.ncad.fr/warning.php?reason=Site-rencontre
+
         redirect http://error.ncad.fr/warning.php?reason=Site-rencontre
 
  }
 
  }
 
  dest drogue {
 
  dest drogue {
 
         domainlist drogue/domains
 
         domainlist drogue/domains
 
         urllist drogue/urls
 
         urllist drogue/urls
         redirect http ://error.ncad.fr/warning.php?reason=Drogue
+
         redirect http://error.ncad.fr/warning.php?reason=Drogue
 
  }
 
  }
 
  dest filehosting {
 
  dest filehosting {
 
         domainlist filehosting/domains
 
         domainlist filehosting/domains
 
         urllist filehosting/urls
 
         urllist filehosting/urls
         redirect http ://error.ncad.fr/warning.php?reason=Plateforme-multimedia
+
         redirect http://error.ncad.fr/warning.php?reason=Plateforme-multimedia
 
  }
 
  }
 
  dest financial {
 
  dest financial {
 
         domainlist financial/domains
 
         domainlist financial/domains
         redirect http ://error.ncad.fr/warning.php?reason=Finance
+
         redirect http://error.ncad.fr/warning.php?reason=Finance
 
  }
 
  }
 
  dest forums {
 
  dest forums {
 
         domainlist forums/domains
 
         domainlist forums/domains
 
         urllist forums/urls
 
         urllist forums/urls
         redirect http ://error.ncad.fr/warning.php?reason=Forums
+
         redirect http://error.ncad.fr/warning.php?reason=Forums
 
  }
 
  }
 
  dest gambling {
 
  dest gambling {
 
         domainlist gambling/domains
 
         domainlist gambling/domains
 
         urllist gambling/urls
 
         urllist gambling/urls
         redirect http ://error.ncad.fr/warning.php?reason=Jeux-hasard
+
         redirect http://error.ncad.fr/warning.php?reason=Jeux-hasard
 
  }
 
  }
 
  dest games {
 
  dest games {
 
         domainlist games/domains
 
         domainlist games/domains
 
         urllist games/urls
 
         urllist games/urls
         redirect http ://error.ncad.fr/warning.php?reason=Jeux-et-online
+
         redirect http://error.ncad.fr/warning.php?reason=Jeux-et-online
 
  }
 
  }
 
  dest hacking {
 
  dest hacking {
 
         domainlist hacking/domains
 
         domainlist hacking/domains
 
         urllist hacking/urls
 
         urllist hacking/urls
         redirect http ://error.ncad.fr/warning.php?reason=Hacking
+
         redirect http://error.ncad.fr/warning.php?reason=Hacking
 
  }
 
  }
 
  dest liste_bu {
 
  dest liste_bu {
 
         domainlist liste_bu/domains
 
         domainlist liste_bu/domains
 
         urllist liste_bu/urls
 
         urllist liste_bu/urls
         redirect http ://error.ncad.fr/warning.php?reason=Education-national
+
         redirect http://error.ncad.fr/warning.php?reason=Education-national
 
  }
 
  }
 
  dest malware {
 
  dest malware {
 
         domainlist malware/domains
 
         domainlist malware/domains
 
         urllist malware/urls
 
         urllist malware/urls
         redirect http ://error.ncad.fr/warning.php?reason=Malware
+
         redirect http://error.ncad.fr/warning.php?reason=Malware
 
  }
 
  }
 
  dest marketingware {
 
  dest marketingware {
 
         domainlist marketingware/domains
 
         domainlist marketingware/domains
         redirect http ://error.ncad.fr/warning.php?reason=Marketing-special
+
         redirect http://error.ncad.fr/warning.php?reason=Marketing-special
 
  }
 
  }
 
  dest mixed_adult {
 
  dest mixed_adult {
 
         domainlist mixed_adult/domains
 
         domainlist mixed_adult/domains
         redirect http ://error.ncad.fr/warning.php?reason=Contenu-reserve-adult
+
         redirect http://error.ncad.fr/warning.php?reason=Contenu-reserve-adult
 
  }
 
  }
 
  dest mobile-phone {
 
  dest mobile-phone {
 
         domainlist mobile-phone/domains
 
         domainlist mobile-phone/domains
         redirect http ://error.ncad.fr/warning.php?reason=Telephonie-Mobile
+
         redirect http://error.ncad.fr/warning.php?reason=Telephonie-Mobile
 
  }
 
  }
 
  dest phishing {
 
  dest phishing {
 
         domainlist phishing/domains
 
         domainlist phishing/domains
         redirect http ://error.ncad.fr/warning.php?reason=Phishing
+
         redirect http://error.ncad.fr/warning.php?reason=Phishing
 
  }
 
  }
 
  dest publicite {
 
  dest publicite {
 
         domainlist publicite/domains
 
         domainlist publicite/domains
 
         urllist publicite/urls
 
         urllist publicite/urls
         redirect http ://error.ncad.fr/warning.php?reason=Publicites
+
         redirect http://error.ncad.fr/warning.php?reason=Publicites
 
  }
 
  }
 
  dest radio {
 
  dest radio {
 
         domainlist radio/domains
 
         domainlist radio/domains
 
         urllist radio/urls
 
         urllist radio/urls
         redirect http ://error.ncad.fr/warning.php?reason=Media-Radio
+
         redirect http://error.ncad.fr/warning.php?reason=Media-Radio
 
  }
 
  }
 
  dest redirector {
 
  dest redirector {
 
         domainlist redirector/domains
 
         domainlist redirector/domains
 
         urllist redirector/urls
 
         urllist redirector/urls
         redirect http ://error.ncad.fr/warning.php?reason=Redirecteur
+
         redirect http://error.ncad.fr/warning.php?reason=Redirecteur
 
  }
 
  }
 
  dest sect {
 
  dest sect {
 
         domainlist sect/domains
 
         domainlist sect/domains
         redirect http ://error.ncad.fr/warning.php?reason=Sect
+
         redirect http://error.ncad.fr/warning.php?reason=Sect
 
  }
 
  }
 
  dest sexual_education {
 
  dest sexual_education {
 
         domainlist sexual_education/domains
 
         domainlist sexual_education/domains
 
         urllist sexual_education/urls
 
         urllist sexual_education/urls
         redirect http ://error.ncad.fr/warning.php?reason=Education-sexuel
+
         redirect http://error.ncad.fr/warning.php?reason=Education-sexuel
 
  }
 
  }
 
  dest shopping {
 
  dest shopping {
 
         domainlist shopping/domains
 
         domainlist shopping/domains
         redirect http ://error.ncad.fr/warning.php?reason=Shopping
+
         redirect http://error.ncad.fr/warning.php?reason=Shopping
 
  }
 
  }
 
  dest tricheur {
 
  dest tricheur {
 
         domainlist tricheur/domains
 
         domainlist tricheur/domains
 
         urllist tricheur/urls
 
         urllist tricheur/urls
         redirect http ://error.ncad.fr/warning.php?reason=Tricherie
+
         redirect http://error.ncad.fr/warning.php?reason=Tricherie
 
  }
 
  }
 
  dest warez {
 
  dest warez {
 
         domainlist warez/domains
 
         domainlist warez/domains
 
         urllist warez/urls
 
         urllist warez/urls
         redirect http ://error.ncad.fr/warning.php?reason=Warez
+
         redirect http://error.ncad.fr/warning.php?reason=Warez
 
  }
 
  }
 
  dest violence {
 
  dest violence {
 
         domainlist violence/domains
 
         domainlist violence/domains
 
         urllist violence/urls
 
         urllist violence/urls
         redirect http ://error.ncad.fr/warning.php?reason=Site-violent
+
         redirect http://error.ncad.fr/warning.php?reason=Site-violent
 
  }
 
  }
 
  dest webmail {
 
  dest webmail {
 
         domainlist webmail/domains
 
         domainlist webmail/domains
 
         urllist webmail/urls
 
         urllist webmail/urls
         redirect http ://error.ncad.fr/warning.php?reason=Webmail
+
         redirect http://error.ncad.fr/warning.php?reason=Webmail
 
  }
 
  }
  
Ligne 209 : Ligne 209 :
 
== Définition de groupes d'utilisateurs ==
 
== Définition de groupes d'utilisateurs ==
  
La création de groupes d'utilisateurs permet d'appliquer un ensemble de règles à l'ensemble d'un groupe de personnes. Ceci évite d'appliquer ces mêmes règles pour chaques utilisateurs.
+
La création de groupes d'utilisateurs permet d'appliquer un ensemble de règles à des utilisateurs appartenant à un même groupe. Ceci évite de définir manuellement les autorisations pour chacun des utilisateurs.
  
Ici seront utilisées les entrées '''src''' pour nommer la règle - et '''user''' pour énumérer le(s) utilisateur(s) appartenant au groupe ainsi définit.
+
Ici seront utilisées les entrées '''src''' pour nommer la règle - et '''user''' pour énumérer le(s) utilisateur(s) appartenant au groupe ainsi défini.
  
* '''<u>Exemple</u> :''' Nous créons trois groupes : '''enfant''', '''adolescent''' et '''adulte'''.
+
* '''<u>Exemple</u> :''' Nous voulons créer trois groupes utilisateurs : '''enfant''', '''adolescent''' et '''adulte'''.
  
 
  src adolescent {
 
  src adolescent {
Ligne 225 : Ligne 225 :
 
  }
 
  }
  
{{ Box Attention | objet=Ne fonctionne uniquement si Squid est configuré pour demander des logs d'authentification à ses utilisateurs. Sinon voir -> [[:Squid]]. }}
+
{{ Box Attention | objet=Ne fonctionne uniquement si Squid est configuré pour demander des logs d'authentification à ses utilisateurs. Sinon voir [[:Squid]]. }}
  
Dans le cas où Squid n'est pas configuré pour demander des identifiants de connexion lors de l'accès à Internet des usagers, il est possible de créer des groupes selon l'adresse IP du poste informatique client. La synthaxe des règles reste similaire.
+
Dans le cas où Squid n'est pas configuré pour demander des identifiants de connexion lors de l'accès à Internet des usagers, il est possible de créer des groupes selon l'adresse IP du poste informatique client. La syntaxe des règles reste similaire.
  
* '''<u>Exemple</u> :'''
+
* '''<u>Exemple</u> :''' Réseau composé de trois sous-réseaux, un pour les '''élèves''', le second pour la salle des '''professeurs''' et le troisième pour l''''administration''' de l'établissement.'''
  
 
  src eleve {
 
  src eleve {
Ligne 241 : Ligne 241 :
 
  }
 
  }
  
Dans l'exemple ci-dessus :
+
Note :
 
* le groupe '''élève''' est définis par toutes les machines dont l'adresse IP est comprise entre '''10.0.0.1''' et '''10.0.0.255'''.
 
* le groupe '''élève''' est définis par toutes les machines dont l'adresse IP est comprise entre '''10.0.0.1''' et '''10.0.0.255'''.
 
* le groupe '''professor''' est définis par toutes les machines dont l'adresse IP est comprise entre '''10.0.1.1''' et '''10.0.1.255'''
 
* le groupe '''professor''' est définis par toutes les machines dont l'adresse IP est comprise entre '''10.0.1.1''' et '''10.0.1.255'''
 
* le groupe '''admin''' est définis par toutes les machines dont l'adresse IP est comprise entre '''10.0.2.1''' et '''10.0.2.255'''.
 
* le groupe '''admin''' est définis par toutes les machines dont l'adresse IP est comprise entre '''10.0.2.1''' et '''10.0.2.255'''.
 +
 +
On peut aussi spécifier l'adresse IP de chacune des machines pour les réseaux de petite envergure :
 +
 +
src enfants {
 +
    ip 192.168.1.20 192.168.1.21 192.168.1.22
 +
}
 +
src parents {
 +
    ip 192.168.1.10 192.168.1.11
 +
}
  
 
== Définition des règles de filtrage ==
 
== Définition des règles de filtrage ==
Ligne 258 : Ligne 267 :
 
  }
 
  }
  
Pour appliquer une règle de filtrage il suffit de modifier la ligne contenant '''pass all'''. Ainsi, si l'on veut comparer le trafic internet et en particulier les sites consultées aux listes nommées ci-dessus ''adult'' et ''mixed-adult'', il suffit d'adapter la règle :
+
Pour appliquer une règle de filtrage il suffit de modifier la ligne contenant '''pass all'''. Ainsi, si l'on veut comparer le trafic internet et en particulier les sites consultées aux listes nommées plus haut ''adult'' et ''mixed-adult'', il suffit d'adapter la règle :
  
 
  acl {
 
  acl {
Ligne 266 : Ligne 275 :
 
  }
 
  }
  
Cette règle ci-dessus précise que tout utilisateur se connectant à internet et dont le site spécifié n'appartient pas à ceux spécifiés dans les listes nommées '''adult''' et '''mixed-adult''' seront autorisés à accédé au contenu. Le paramètre '''!in-addr''' spécifie qu'il est interdit d'accéder à un site à partir de l'adresse IP de l'hôte.
+
Cette règle ci-dessus précise que tout utilisateur se connectant à internet et dont le site spécifié n'appartient pas à ceux spécifiés dans les listes nommées '''adult''' et '''mixed-adult''' seront autorisés à accédé au contenu.
 +
 
 +
{{Box_Information | objet=Dans la synthaxe, le "!" précédant le nom de la liste se traduit par "exclut"}}
 +
<br />
 +
 
 +
Le paramètre ''!in-addr'' spécifie qu'il est interdit d'accéder à un site à partir de l'adresse IP de l'hôte :
 +
 
 +
acl {
 +
    default {
 +
        pass !in-addr !adult !mixed-adult all
 +
    }
 +
}
  
 
== Définition de règles de filtrage de groupe ==
 
== Définition de règles de filtrage de groupe ==
Ligne 274 : Ligne 294 :
 
* le groupe '''adulte''' qui peut accéder à tous les sites sauf : adult agressif astrology dangerous_material drogue gambling hacking malware marketingware phishing publicite sect tricheur warez violence.
 
* le groupe '''adulte''' qui peut accéder à tous les sites sauf : adult agressif astrology dangerous_material drogue gambling hacking malware marketingware phishing publicite sect tricheur warez violence.
 
* le groupe '''admin''' qui peut accéder à tous les sites sauf : adult agressif astrology dangerous_material drogue gambling hacking malware marketingware phishing publicite sect tricheur warez violence.
 
* le groupe '''admin''' qui peut accéder à tous les sites sauf : adult agressif astrology dangerous_material drogue gambling hacking malware marketingware phishing publicite sect tricheur warez violence.
 +
* Les utilisateurs ne disposant pas de groupe ne seront pas autorisés à surfer sur Internet.
  
 
* '''<u>Exemple</u> :'''
 
* '''<u>Exemple</u> :'''
Ligne 293 : Ligne 314 :
 
  }
 
  }
  
{{ Box Attention | objet=Ne fonctionne uniquement si Squid est configuré pour demander des logs d'authentification à ses utilisateurs. Sinon voir -> [[:Squid]]. }}
+
{{ Box Attention | objet=Ne fonctionne uniquement si Squid est configuré pour demander des logs d'authentification à ses utilisateurs. Sinon voir [[:Squid]]. }}
  
 
Dans le cas des groupes définis selont l'adresse IP de la machine cliente :
 
Dans le cas des groupes définis selont l'adresse IP de la machine cliente :
Ligne 325 : Ligne 346 :
 
=== Fichier de différence ===
 
=== Fichier de différence ===
  
Les fichiers de différences sont propre à chacune des listes chargés sur squidGuard. La synthaxe de ce fichier est semblable aux autres fichier de squidGuard à la diffèrence près ou chacun des sites répertorié devra comporter le signe '''+''' ou '''-''' selon qu'il faut le supprimer de la liste ou l'ajouter à la liste. Ce fichier doit être nommé '''domains.diff''' et placé dans le répertoire de la liste à mettre à jour.
+
Les fichiers de différences sont propres à chacune des listes chargés sur squidGuard. La synthaxe de ce fichier est semblable aux autres fichiers de squidGuard à la différence près ou chacun des sites répertorié devra comporter le signe '''+''' ou '''-''' selon qu'il faut le supprimer de la liste ou l'ajouter à la liste. Ce fichier doit être nommé '''domains.diff''' et placé dans le répertoire de la liste à mettre à jour.
  
* '''<u>Par exemple</u> :''' Nous avons le site bloquer.com répertorié dans la liste Malware. Nous souhaitons débloquer ce site et bloquer en revanche le site jesaispas.fr.
+
* '''<u>Par exemple</u> :''' Nous avons le site ''bloquer.com'' répertorié dans la liste ''Malware''. Nous souhaitons débloquer ce site et bloquer en revanche le site ''jesaispas.fr''.
  
 
Voici la synthaxe du fichier :
 
Voici la synthaxe du fichier :
Ligne 334 : Ligne 355 :
 
  + jesaispas.fr
 
  + jesaispas.fr
  
Le fichier doit être nommé '''domains.diff''' et placer dans la liste '''Malware'''. Pour prendre en compte les modifications il suffit de tapez les lignes de commandes suivantes :
+
Le fichier doit être nommé '''domains.diff''' et placer dans la liste '''Malware'''. Pour prendre en compte les modifications il suffit de tapez la ligne de commande suivante :
 
{{ Box Console | objet=sudo squidGuard -u<br />squid -k reconfigure }}
 
{{ Box Console | objet=sudo squidGuard -u<br />squid -k reconfigure }}
 
<br />
 
<br />
Ligne 341 : Ligne 362 :
 
=== Liste blanche ===
 
=== Liste blanche ===
  
Cette méthode consiste à créer une nouvelle liste dans le système. Cette liste comporte l'ensemble des sites à débloquer et sera charger en tant que liste blanche pour tous les groupes d'utilisateur.
+
Cette méthode consiste à créer une nouvelle liste dans le système. Cette liste comporte l'ensemble des sites à débloquer et sera chargée en tant que liste blanche pour les groupes utilisateurs souhaités.
 +
 
 +
* '''<u>Exemple</u> :''' En reprenant les exemples précédents, nous autorisons les accès aux sites contenus dans la liste ''withelist''.
 +
 
 +
acl {
 +
    default {
 +
        pass withelist !in-addr !adult !mixed-adult all
 +
    }
 +
}
  
{{ Box Information | objet=Les listes blanches sont prioritaires sur les listes noires. }}
+
{{Box_Information | objet=Le fait de déclarer en premier la liste blanche la rend prioritaire sur les autres listes.}}
  
 
= Exemple de fichier de configuration =
 
= Exemple de fichier de configuration =

Version actuelle en date du 22 février 2011 à 19:01

Présentation

SquidGuard est un module pour le serveur proxy Squid. Ce module ajoute des fonctionnalités avancées en matière de filtrage basé sur une liste noire de sites web à bloquer et une liste blanche de sites à ignorer.

Installation

Prérequis

Vous devez disposez du serveur proxy Squid installé - fonctionnel et mis à jour sur votre machine avant de pouvoir commencer l'installation. Le cas échéant reportez vous à l'article Squid.

Installation

SquidGuard

Depuis les dépôts synaptic ou dans une fenêtre de terminal tapez la commande suivante :

ICON Terminal.png

sudo apt-get install squidguard

Listes filtrage

Des listes comportant un grand nombre de catégories de sites web sont disponibles gratuitement et tenues à jour par l'université de l'académie de Toulouse.

Configuration

Le fichier de configuration est présent dans le dossier /etc/squid/squidguard.conf. Ce dernier permet de renseigner des règles de filtrage selon divers critères comme :

  • l'adresse ip de la machine cliente,
  • l'utilisateur exécutant la requête
  • l'heure d'exécution de la requête
  • le contenu consulté

Définition de quelques répertoires

Par défaut il faut préciser dans le fichier de configuration, les répertoires d'accès :

  • Aux logs de SquidGuard (logdir)
  • Aux bases de données des blacklistes (dbhome)
  • Exemple :
dbhome /var/lib/squidguard/db
logdir /var/log/squid

Définition des listes

Ensuite - dans le cadre de l'installation, au préalable, des listes - il faudra définir les règles de filtrage. Ces règles de filtrage sont définies à l'aide des entrées dest :

dest nom_de_la_liste {
     domainlist repertoire de la liste des domaines depuis /var/lib/squidguard/db.
     urllist repertoire de la liste des urls depuis /var/lib/squidguard/db.
     redirect adresse de redirection en cas de consultation d'un site présent dans les listes.
     log spcécifie un répertoire de log dans /var/log/squid enregistrant tous les sites de la catégorie qui ont été visités ou bloqués.
}
ICON Light.png
Ici, les listes n'ont aucune attribution particulière du type liste noire ou liste blanche. Elles sont simplement définies.
  • Exemple : voici les acls respectives aux listes noires de l'Universite de Toulouse :
dest adult {
       domainlist adult/domains
       urllist adult/urls
       redirect http://error.ncad.fr/warning.php?reason=Site-pour-adulte
}
dest agressif {
       domainlist agressif/domains
       urllist agressif/urls
       redirect http://error.ncad.fr/warning.php?reason=Site-agressif
}
dest astrology {
       domainlist astrology/domains
       redirect http://error.ncad.fr/warning.php?reason=Site-astrologue
}
dest audio-video {
       domainlist audio-video/domains
       urllist audio-video/urls
       redirect http://error.ncad.fr/warning.php?reason=Contenu-Multimedias
}
dest blog {
       domainlist blog/domains
       urllist blog/urls
       redirect http://error.ncad.fr/warning.php?reason=Blog-site-personnel
}
dest cleaning {
       domainlist cleaning/domains
       urllist cleaning/urls
       redirect http://error.ncad.fr/warning.php?reason=Site-securite-informatique
}
dest dangerous_material {
       domainlist dangerous_material/domains
       urllist dangerous_material/urls
       redirect http://error.ncad.fr/warning.php?reason=Site-armes
}
dest dating {
       domainlist dating/domains
       urllist dating/urls
       redirect http://error.ncad.fr/warning.php?reason=Site-rencontre
}
dest drogue {
       domainlist drogue/domains
       urllist drogue/urls
       redirect http://error.ncad.fr/warning.php?reason=Drogue
}
dest filehosting {
       domainlist filehosting/domains
       urllist filehosting/urls
       redirect http://error.ncad.fr/warning.php?reason=Plateforme-multimedia
}
dest financial {
       domainlist financial/domains
       redirect http://error.ncad.fr/warning.php?reason=Finance
}
dest forums {
       domainlist forums/domains
       urllist forums/urls
       redirect http://error.ncad.fr/warning.php?reason=Forums
}
dest gambling {
       domainlist gambling/domains
       urllist gambling/urls
       redirect http://error.ncad.fr/warning.php?reason=Jeux-hasard
}
dest games {
       domainlist games/domains
       urllist games/urls
       redirect http://error.ncad.fr/warning.php?reason=Jeux-et-online
}
dest hacking {
       domainlist hacking/domains
       urllist hacking/urls
       redirect http://error.ncad.fr/warning.php?reason=Hacking
}
dest liste_bu {
       domainlist liste_bu/domains
       urllist liste_bu/urls
       redirect http://error.ncad.fr/warning.php?reason=Education-national
}
dest malware {
       domainlist malware/domains
       urllist malware/urls
       redirect http://error.ncad.fr/warning.php?reason=Malware
}
dest marketingware {
       domainlist marketingware/domains
       redirect http://error.ncad.fr/warning.php?reason=Marketing-special
}
dest mixed_adult {
       domainlist mixed_adult/domains
       redirect http://error.ncad.fr/warning.php?reason=Contenu-reserve-adult
}
dest mobile-phone {
       domainlist mobile-phone/domains
       redirect http://error.ncad.fr/warning.php?reason=Telephonie-Mobile
}
dest phishing {
       domainlist phishing/domains
       redirect http://error.ncad.fr/warning.php?reason=Phishing
}
dest publicite {
       domainlist publicite/domains
       urllist publicite/urls
       redirect http://error.ncad.fr/warning.php?reason=Publicites
}
dest radio {
       domainlist radio/domains
       urllist radio/urls
       redirect http://error.ncad.fr/warning.php?reason=Media-Radio
}
dest redirector {
       domainlist redirector/domains
       urllist redirector/urls
       redirect http://error.ncad.fr/warning.php?reason=Redirecteur
}
dest sect {
       domainlist sect/domains
       redirect http://error.ncad.fr/warning.php?reason=Sect
}
dest sexual_education {
       domainlist sexual_education/domains
       urllist sexual_education/urls
       redirect http://error.ncad.fr/warning.php?reason=Education-sexuel
}
dest shopping {
       domainlist shopping/domains
       redirect http://error.ncad.fr/warning.php?reason=Shopping
}
dest tricheur {
       domainlist tricheur/domains
       urllist tricheur/urls
       redirect http://error.ncad.fr/warning.php?reason=Tricherie
}
dest warez {
       domainlist warez/domains
       urllist warez/urls
       redirect http://error.ncad.fr/warning.php?reason=Warez
}
dest violence {
       domainlist violence/domains
       urllist violence/urls
       redirect http://error.ncad.fr/warning.php?reason=Site-violent
}
dest webmail {
       domainlist webmail/domains
       urllist webmail/urls
       redirect http://error.ncad.fr/warning.php?reason=Webmail
}
ICON Information.png

Adaptez la variable redirect - ici elles redirigent vers les pages d'erreurs NCad Network dédiées pour SquidGuard.

Définition de groupes d'utilisateurs

La création de groupes d'utilisateurs permet d'appliquer un ensemble de règles à des utilisateurs appartenant à un même groupe. Ceci évite de définir manuellement les autorisations pour chacun des utilisateurs.

Ici seront utilisées les entrées src pour nommer la règle - et user pour énumérer le(s) utilisateur(s) appartenant au groupe ainsi défini.

  • Exemple : Nous voulons créer trois groupes utilisateurs : enfant, adolescent et adulte.
src adolescent {
  user benjamin cecile nicolas
}
src adulte {
  user pierre lucien said
}
src enfant {
  user maxime terence
}
ICON boxWarning.png

Ne fonctionne uniquement si Squid est configuré pour demander des logs d'authentification à ses utilisateurs. Sinon voir Squid.

Dans le cas où Squid n'est pas configuré pour demander des identifiants de connexion lors de l'accès à Internet des usagers, il est possible de créer des groupes selon l'adresse IP du poste informatique client. La syntaxe des règles reste similaire.

  • Exemple : Réseau composé de trois sous-réseaux, un pour les élèves, le second pour la salle des professeurs et le troisième pour l'administration de l'établissement.
src eleve {
   ip 10.0.0.0/24
}
src professor {
   ip 10.0.1.0/24
}
src admin {
   ip 10.0.2.0/24
}

Note :

  • le groupe élève est définis par toutes les machines dont l'adresse IP est comprise entre 10.0.0.1 et 10.0.0.255.
  • le groupe professor est définis par toutes les machines dont l'adresse IP est comprise entre 10.0.1.1 et 10.0.1.255
  • le groupe admin est définis par toutes les machines dont l'adresse IP est comprise entre 10.0.2.1 et 10.0.2.255.

On peut aussi spécifier l'adresse IP de chacune des machines pour les réseaux de petite envergure :

src enfants {
   ip 192.168.1.20 192.168.1.21 192.168.1.22
}
src parents {
   ip 192.168.1.10 192.168.1.11
}

Définition des règles de filtrage

Les règles de filtrage seront définies dans une acl globale. Cette dernière énumère les différentes règles de filtrage dont se sert le proxy pour autoriser ou non les utilisateurs à se connecter à Internet mais aussi pour définir le niveau de filtrage de ces derniers.

Par défaut l'acl permet à tous les utilisateurs de se connecter au proxy sans pour autant être filtré. Cette règle se présente comme ceci :

acl {
    default {
        pass all
    }
}

Pour appliquer une règle de filtrage il suffit de modifier la ligne contenant pass all. Ainsi, si l'on veut comparer le trafic internet et en particulier les sites consultées aux listes nommées plus haut adult et mixed-adult, il suffit d'adapter la règle :

acl {
    default {
        pass !adult !mixed-adult all
    }
}

Cette règle ci-dessus précise que tout utilisateur se connectant à internet et dont le site spécifié n'appartient pas à ceux spécifiés dans les listes nommées adult et mixed-adult seront autorisés à accédé au contenu.

ICON Information.png

Dans la synthaxe, le "!" précédant le nom de la liste se traduit par "exclut"


Le paramètre !in-addr spécifie qu'il est interdit d'accéder à un site à partir de l'adresse IP de l'hôte :

acl {
    default {
        pass !in-addr !adult !mixed-adult all
    }
}

Définition de règles de filtrage de groupe

A partir des groupes définis précédement, il est possible de créer des règles de filtrage propre à chacun de ces groupes. Dans notre exemple nous définirons :

  • le groupe adolescent qui peut accéder à tous les sites sauf : adult agressif astrology dangerous_material dating drogue forums gambling games hacking malware marketingware mixed_adult mobile-phone phishing publicite redirector sect tricheur warez violence.
  • le groupe adulte qui peut accéder à tous les sites sauf : adult agressif astrology dangerous_material drogue gambling hacking malware marketingware phishing publicite sect tricheur warez violence.
  • le groupe admin qui peut accéder à tous les sites sauf : adult agressif astrology dangerous_material drogue gambling hacking malware marketingware phishing publicite sect tricheur warez violence.
  • Les utilisateurs ne disposant pas de groupe ne seront pas autorisés à surfer sur Internet.
  • Exemple :
acl {
  default {
       pass none
       redirect http ://error.ncad.fr/disable.php?reason=Utilisateur-inconnu
  }
  adolescent {
       pass !adult !agressif !astrology !dangerous_material !dating !drogue !forums !gambling !games !hacking !malware !marketingware !mixed_adult !mobile-phone !phishing !publicite !redirector !sect !tricheur !warez !violence all
  }
  adult {
       pass !adult !agressif !astrology !dangerous_material !drogue !gambling !hacking !malware !marketingware !phishing !publicite !sect !tricheur !warez !violence all
  }
  admin {
       pass !adult !agressif !astrology !dangerous_material !drogue !gambling !hacking !malware !marketingware !phishing !publicite !sect !tricheur !warez !violence all
  }
}
ICON boxWarning.png

Ne fonctionne uniquement si Squid est configuré pour demander des logs d'authentification à ses utilisateurs. Sinon voir Squid.

Dans le cas des groupes définis selont l'adresse IP de la machine cliente :

  • le groupe eleve qui peut accéder à tous les sites sauf : adult agressif astrology dangerous_material dating drogue forums gambling games hacking malware marketingware mixed_adult mobile-phone phishing publicite redirector sect tricheur warez violence.
  • le groupe professor qui peut accéder à tous les sites sauf : adult agressif astrology dangerous_material drogue gambling hacking malware marketingware phishing publicite sect tricheur warez violence.
  • le groupe admin qui peut accéder à tous les sites sauf : adult agressif astrology dangerous_material drogue gambling hacking malware marketingware phishing publicite sect tricheur warez violence.
  • Exemple :
acl {
  default {
       pass none
       redirect http ://error.ncad.fr/disable.php?reason=Utilisateur-inconnu
   }
   eleve {
       pass !adult !agressif !astrology !dangerous_material !dating !drogue !forums !gambling !games !hacking !malware !marketingware !mixed_adult !mobile-phone !phishing !publicite !redirector !sect !tricheur !warez !violence all
   }
   professor {
       pass !adult !agressif !astrology !dangerous_material !drogue !gambling !hacking !malware !marketingware !phishing !publicite !sect !tricheur !warez !violence all
   }
   admin {
       pass !adult !agressif !astrology !dangerous_material !drogue !gambling !hacking !malware !marketingware !phishing !publicite !sect !tricheur !warez !violence all
   }
}

Débloquer un site

Il peut s'avérer nécessaire de débloquer un site web, dans la mesure ou ce dernier ne correspond pas ou plus au critère qui l'on conduit a être bloqué. pour cela il y a deux manière de débloquer un site web :

  • soit en créant un fichier de différence ou seront répertorié les domaines à bloquer/débloquer,
  • soit en créant une nouvelle liste de filtrage.

Fichier de différence

Les fichiers de différences sont propres à chacune des listes chargés sur squidGuard. La synthaxe de ce fichier est semblable aux autres fichiers de squidGuard à la différence près ou chacun des sites répertorié devra comporter le signe + ou - selon qu'il faut le supprimer de la liste ou l'ajouter à la liste. Ce fichier doit être nommé domains.diff et placé dans le répertoire de la liste à mettre à jour.

  • Par exemple : Nous avons le site bloquer.com répertorié dans la liste Malware. Nous souhaitons débloquer ce site et bloquer en revanche le site jesaispas.fr.

Voici la synthaxe du fichier :

- bloquer.com
+ jesaispas.fr

Le fichier doit être nommé domains.diff et placer dans la liste Malware. Pour prendre en compte les modifications il suffit de tapez la ligne de commande suivante :

ICON Terminal.png

sudo squidGuard -u
squid -k reconfigure


ICON boxWarning.png

Le fichier domains.diff sera effacé dès une mise à jour ultérieure des listes.

Liste blanche

Cette méthode consiste à créer une nouvelle liste dans le système. Cette liste comporte l'ensemble des sites à débloquer et sera chargée en tant que liste blanche pour les groupes utilisateurs souhaités.

  • Exemple : En reprenant les exemples précédents, nous autorisons les accès aux sites contenus dans la liste withelist.
acl {
    default {
        pass withelist !in-addr !adult !mixed-adult all
    }
}
ICON Information.png

Le fait de déclarer en premier la liste blanche la rend prioritaire sur les autres listes.

Exemple de fichier de configuration

Voici le fichier de configuration final :

#
# CONFIG FILE FOR SQUIDGUARD
#

dbhome /var/lib/squidguard/db
logdir /var/log/squid

# ------------------------------------------------------------
# Definition des listes
# ------------------------------------------------------------
dest adult {
       domainlist adult/domains
       urllist adult/urls
       redirect http ://error.ncad.fr/warning.php?reason=Site-pour-adulte
}
dest agressif {
       domainlist agressif/domains
       urllist agressif/urls
       redirect http ://error.ncad.fr/warning.php?reason=Site-agressif
}
dest astrology {
       domainlist astrology/domains
       redirect http ://error.ncad.fr/warning.php?reason=Site-astrologue
}
dest audio-video {
       domainlist audio-video/domains
       urllist audio-video/urls
       redirect http ://error.ncad.fr/warning.php?reason=Contenu-Multimedias
}
dest blog {
       domainlist blog/domains
       urllist blog/urls
       redirect http ://error.ncad.fr/warning.php?reason=Blog-site-personnel
}
dest cleaning {
       domainlist cleaning/domains
       urllist cleaning/urls
       redirect http ://error.ncad.fr/warning.php?reason=Site-securite-informatique
}
dest dangerous_material {
       domainlist dangerous_material/domains
       urllist dangerous_material/urls
       redirect http ://error.ncad.fr/warning.php?reason=Site-armes
}
dest dating {
       domainlist dating/domains
       urllist dating/urls
       redirect http ://error.ncad.fr/warning.php?reason=Site-rencontre
}
dest drogue {
       domainlist drogue/domains
       urllist drogue/urls
       redirect http ://error.ncad.fr/warning.php?reason=Drogue
}
dest filehosting {
       domainlist filehosting/domains
       urllist filehosting/urls
       redirect http ://error.ncad.fr/warning.php?reason=Plateforme-multimedia
}
dest financial {
       domainlist financial/domains
       redirect http ://error.ncad.fr/warning.php?reason=Finance
}
dest forums {
       domainlist forums/domains
       urllist forums/urls
       redirect http ://error.ncad.fr/warning.php?reason=Forums
}
dest gambling {
       domainlist gambling/domains
       urllist gambling/urls
       redirect http ://error.ncad.fr/warning.php?reason=Jeux-hasard
}
dest games {
       domainlist games/domains
       urllist games/urls
       redirect http ://error.ncad.fr/warning.php?reason=Jeux-et-online
}
dest hacking {
       domainlist hacking/domains
       urllist hacking/urls
       redirect http ://error.ncad.fr/warning.php?reason=Hacking
}
dest liste_bu {
       domainlist liste_bu/domains
       urllist liste_bu/urls
       redirect http ://error.ncad.fr/warning.php?reason=Education-national
}
dest malware {
       domainlist malware/domains
       urllist malware/urls
       redirect http ://error.ncad.fr/warning.php?reason=Malware
}
dest marketingware {
       domainlist marketingware/domains
       redirect http ://error.ncad.fr/warning.php?reason=Marketing-special
}
dest mixed_adult {
       domainlist mixed_adult/domains
       redirect http ://error.ncad.fr/warning.php?reason=Contenu-reserve-adult
}
dest mobile-phone {
       domainlist mobile-phone/domains
       redirect http ://error.ncad.fr/warning.php?reason=Telephonie-Mobile
}
dest phishing {
       domainlist phishing/domains
       redirect http ://error.ncad.fr/warning.php?reason=Phishing
}
dest publicite {
       domainlist publicite/domains
       urllist publicite/urls
       redirect http ://error.ncad.fr/warning.php?reason=Publicites
}
dest radio {
       domainlist radio/domains
       urllist radio/urls
       redirect http ://error.ncad.fr/warning.php?reason=Media-Radio
}
dest redirector {
       domainlist redirector/domains
       urllist redirector/urls
       redirect http ://error.ncad.fr/warning.php?reason=Redirecteur
}
dest sect {
       domainlist sect/domains
       redirect http ://error.ncad.fr/warning.php?reason=Sect
}
dest sexual_education {
       domainlist sexual_education/domains
       urllist sexual_education/urls
       redirect http ://error.ncad.fr/warning.php?reason=Education-sexuel
}
dest shopping {
       domainlist shopping/domains
       redirect http ://error.ncad.fr/warning.php?reason=Shopping
}
dest tricheur {
       domainlist tricheur/domains
       urllist tricheur/urls
       redirect http ://error.ncad.fr/warning.php?reason=Tricherie
}
dest warez {
       domainlist warez/domains
       urllist warez/urls
       redirect http ://error.ncad.fr/warning.php?reason=Warez
}
dest violence {
       domainlist violence/domains
       urllist violence/urls
       redirect http ://error.ncad.fr/warning.php?reason=Site-violent
}
dest webmail {
       domainlist webmail/domains
       urllist webmail/urls
       redirect http ://error.ncad.fr/warning.php?reason=Webmail
}

# ------------------------------------------------------------
# Liste blanche (prioritaire)
# ------------------------------------------------------------

dest localwhite {
       domainlist localwhite/domains
       urllist localwhite/urls
}

# ------------------------------------------------------------
# Restrictions horaires
# ------------------------------------------------------------
 
# ------------------------------------------------------------
# Définition des groupes
# ------------------------------------------------------------

src adolescent {
       user khermot dufossm
}

src adult {
       user cachelb picolod cachelp
}

src admin {
       user cacheln
}

# ------------------------------------------------------------
# Definition des règles de filtrage
# ------------------------------------------------------------

acl {
  default {
        pass none
        redirect http ://10.0.0.100/error/disable.php?reason=Utilisateur-inconnu
  }
  adolescent {
        pass !adult !agressif !astrology !dangerous_material !dating !drogue !forums !gambling !games !hacking localwhite !malware !marketingware !mixed_adult !mobile-phone !phishing !publicite !redirector !sect !tricheur !warez !violence all
  }
  adult {
        pass !adult !agressif !astrology !dangerous_material !drogue !gambling !hacking localwhite !malware !marketingware !phishing !publicite !sect !tricheur !warez !violence all
  }
  admin {
        pass !adult !agressif !astrology !dangerous_material !drogue !gambling !hacking localwhite !malware !marketingware !phishing !publicite !sect !tricheur !warez !violence all
  }
}