lundi 24 août 2015

Filtrage Web avec DansGuardian


Aujourd'hui, un nouveau billet qui n'est pas lui non plus en rapport avec Windows ! Nous avons vu dans le précédent article, comment mettre en place un serveur Proxy sous Linux. Nous avons vu notamment comment définir les ACL et les permissions. L'instruction acl permet la prise en compte de listes noires, mais je n'ai pas réussi à faire fonctionner cette liste comme j'en avais envie. Je me suis donc tourné vers un logiciel tiers, qui fonctionne de concert avec Squid. Il s'agit de DansGuardian. Et nous allons donc ci-dessous voir comment l'installer, et comment en faire la configuration basique. Tout se passe sous Debian Wheezy.



Comme souvent dans le monde Linux, il existe pléthore d'applications destinées à faire peu ou prou la même chose. Squid a un petit frère (TinyProxy), et DansGuardian est quant à lui en compétition avec SquidGuard. J'ai hésité entre les deux. Et je me suis rabattu sur DansGuardian pour plusieurs raisons :
  • Le logiciel est maintenu de manière très régulière et il est en développement actif ;
  • La configuration est - beaucoup ! - plus simple ;
  • Le filtrage proposé par DansGuardian est plus efficace (en plus d'utiliser les fameuses listes DansGuardian est capable d'analyse heuristique). Nous avons donc là un logiciel plus malléable et plus intelligent.
Je ne cache pas que c'est son apparente simplicité qui m'a tout d'abord attiré ! :)




Vous aurez probablement deviné que la première chose à faire avant de mettre les mains dans le cambouis est d'installer le logiciel. Cela se passe exactement de la même manière que pour Squid (le processus de configuration - basé sur des fichiers de paramètres remplis de commentaires ! - est lui aussi similaire). Pour disposer de DansGuardian sur son ordinateur, voici comment faire :
  • Ouvrir un Terminal administrateur (le mot de passe Administrateur sera demandé) ;
  • Taper apt-get install dansguardian puis valider.
L'édition du fichier de configuration requiert également les droits Administrateur. Dans la mesure où il est toujours parfaitement déconseillé de se logguer en tant qu'Administrateur en terme de sécurité, nous allons travailler sur le fichier à partir du compte utilisateur, et s'octroyer les droits Administrateur, comme nous l'avions fait pour l'édition de squid.conf.

Avant de plonger dans le grand bain, quelques considérations sur ce qui va être fait :
  • DansGuardian n'est pas immédiatement opérationnel après avoir été installé, et son fichier de configuration est estampillé comme fichier non configuré. Nous allons voir comment l'activer ;
  • Modifier la langue dans laquelle DansGuardian va afficher les pages en cas de blocage ;
  • Si Squid utilise pour sa part le port 3128, DansGuardian préfère lui écouter le port 8080. Nous allons donc également devoir intervenir sur ce point.
  • Il en découle naturellement que la modification des réglages de nos postes clients sera nécessaire. Nous aborderons donc aussi cette problématique ;
  • Nous l'avons vu, DansGuardian fait une analyse heuristique et peut faire de l'excès de zèle si l'on assouplit pas un peu son fonctionnement (il s'agit bien ici d'une utilisation dans le cadre domestique, plus à des fins pédagogiques qu'à des fins de filtrage et de contrôle).


Rendre DansGuardian opérationnel :

Le fichier /etc/dansguardian/dansguardian.conf, puisque c'est sur lui que nous allons majoritairement intervenir est par défaut inhibé. Nous allons l'ouvrir comme suit :
  • Se rendre dans le menu Debian, et cliquer sur Exécuter ;
  • Taper gksu gedit /etc/dansguardian/dansguardian.conf.
Nous allons commenter la ligne UNCONFIGURED - Please remove this line after configuration pour la désactiver en ajoutant le signe #. Ce qui donne :

# UNCONFIGURED - Please remove this line after configuration



Modification de la langue :

Par défaut, DG est configuré pour afficher les pages en anglais. En descendant un peu dans le fichier de configuration, on trouve une ligne languagedir et une autre nommée language. C'est cette dernière que l'on va modifier :
  • Remplacer language = 'ukenglish' par language = 'french'.
Si vous souhaitez voir les messages s'afficher dans une autre langue, vous pouvez adapter le paramètre en vous basant sur le nom des répertoires listés dans /etc/dansguardian/languages.



Vérifier les réglages concernant la redirection de ports :

Je l'indiquais un peu plus haut, DG fonctionne sur le port 8080, Squid sur le port 3128. Nous devons nous assurer que ces numéros de port sont bien présents et valides dans notre fichier de configuration. Nous allons donc rechercher les valeurs suivantes :
  • filterport : Nous devons avoir filterport = 8080 ;
  • proxyip : Nous devons avoir proxyip = 127.0.0.1 (normalement c'est l'adresse de la boucle locale) ;
  • proxyport : S'assurer que nous ayons bien proxyport = 3128.
Il est possible d'enregistrer et de quitter dansguardian.conf après cela, il n'y a en effet plus rien à y faire pour le moment.



Modifier les réglages sur les postes clients :

Nous avions vu qu'une petite modification des réglages était nécessaire sur les PC de notre réseau. Nous avions renseigné l'adresse et le port sur lesquels fonctionne Squid. Nous allons devoir ajuster les paramètres.

Voici comment faire avec Internet Explorer :
  • Se rendre dans les Options Internet, cliquer sur l'onglet Connexion puis sur le bouton Paramètres réseau ;
  • Dans la nouvelle fenêtre, décocher l'option Détecter automatiquement les paramètres de connexion, puis cocher Utiliser un serveur proxy pour votre réseau local (ces paramètres ne s'appliquent pas aux connexions d'accès à distance ou VPN) ;
  • Vérifier l'adresse IP (elle n'a théoriquement pas changé) ainsi que le port (c'est le 3128 qui est renseigné, et nous modifions cela par 8080) ;
  • Valider en cliquant sur OK, puis quitter les Options Internet en cliquant sur Appliquer puis sur OK.


Assouplir DansGuardian :

Nous abordons ici ce qui demandera le plus d'investissement, puisque DansGuardian devra certainement être adapté à l'usage que l'on souhaite en avoir, et les possibilités sont nombreuses. DG peut sans trop de souci être utilisé comme logiciel de contrôle parental (même si d'un point de vue personnel, j'estime que de jeunes enfants doivent toujours être accompagnés d'un adulte lorsqu'ils surfent sur le net). Par défaut son niveau de filtrage est assez élevé et son niveau de tolérance est bas. Un des réglages de DG est appelé Naughtyness limit, ce que l'on peut traduire par degré de méchanceté. Ce degré de méchanceté est défini par un nombre. Plus le nombre est bas, moins DG est permissif. Dans le répertoire d'installation du logiciel, nous avons de nombreuses listes (des phrases, des mots, des URL, des adresses, classés par thème - drogue, armes, publicités...). Un score est attribué à chaque mot ou phrase listés, en fonction de son niveau de dangerosité. Lorsque l'on se connecte à un site qui n'est pas explicitement bloqué, DansGuardian en analyse le contenu et fait le décompte des mots "interdits". Puis il additionne le score de chaque mot. Si le score est supérieur au Naughtyness limit fixé, alors le site est bloqué.

DansGuardian est configuré par défaut pour empêcher les jeunes enfants de se retrouver face à des contenus offensants, et le naughtyness limit est très bas (50). Nous allons ci-dessous voir comment le modifier :
  • Ouvrir le menu Debian, puis cliquer sur Exécuter ;
  • Taper gksu gedit /etc/dansguardian/dansguardianf1.conf ;
  • Rechercher l'expression naughtynesslimit et lui attribuer la valeur 180.
Lorsque DansGuardian bloque une page,  un message est affiché. Ce message peut d'ailleurs être modifié, puisqu'il s'agit d'une simple page codée en HTML. Il est donc possible de rajouter un lien sur cette page qui permet d'autoriser l'accès au site, malgré le blocage. Le réglage suivant va permettre de rendre le lien (s'il est présent), cliquable durant un temps déterminé. Il n'est en effet pas possible par défaut de passer outre le message d'avertissement :
  • Rechercher, dans dansguardianf1.conf, l'expression bypass = 0 ;
  • Nous allons nous laisser une minute pour cliquer sur un lien qui nous permettra d'accéder au site bloqué : Affecter la valeur 60 à l'option bypass (bypass = 60).
Si l'on tente de télécharger un fichier, on verra que DansGuardian bloque par défaut de nombreuses extensions. Il est bien entendu possible d'intervenir également à ce niveau :
  • Ouvrir le menu Debian, puis cliquer sur Exécuter ;
  • Taper gksu gedit /etc/dansguardian/lists/bannedextensionlist ;
  • Commenter (en ajoutant un # au début de la ligne) les lignes correspondant aux extensions que l'on souhaite ne pas voir bloquées ;
  • La même chose est possible dans le fichier /etc/dansguardian/lists/bannedmimetypelist.
En installant un Proxy (et DansGuardian par la même occasion), je souhaitais notamment avoir la possibilité de centraliser ma liste de sites indésirables, celle que je mettais dans les fichiers hosts de chaque machine de mon réseau. Il est tellement plus élégant et pratique de n'avoir qu'une seule liste qui s'applique pour toutes les machines. Moins de maintenance, moins de ralentissements (car un gros fichier hosts peut assez rapidement mettre à genoux un ordinateur et le rendre inutilisable), sans compter, je l'évoquais plus haut, l'aspect pédagogique (j'ai appris plein de choses en me penchant sur ces deux logiciels).

J'ai donc récupéré mon fichier hosts habituel, je l'ai expurgé de toutes les adresses 127.0.0.1 qu'il contenait (nous voulons ici simplement un liste de sites indésirables), et je l'ai intégrée au fichier /etc/dansguardian/lists/bannedsitelist (juste sous la ligne # List other sites to block :).

Tout comme Squid, DansGuardian réside en mémoire et se lance en tant que service. Il est donc nécessaire, suite à toutes les modifications que nous avons effectuées, de redémarrer ledit service. Suite à cela, DG sera pleinement fonctionnel :
  • Ouvrir un Terminal Aministrateur ;
  • Taper service dansguardian restart puis valider en appuyant sur Entrée.


Des ressources bien pratiques :

Bien que le billet soit long, vous aurez constaté que la configuration de base reste relativement simple. Ce qui fait selon moi la force de DansGuardian est qu'il est hautement paramétrable et modulable. Le site de l'éditeur lui-même contient de nombreuses ressources. N'hésitez pas à le consulter.

Aucun commentaire:

Enregistrer un commentaire