Installer un contrôle parental sur un réseau: Proxy avec IPFire

Maintenant que mes enfants ont leurs Hackintosh (ici et ), il est temps de leur donner un accès plus ou moins sécurisé à internet. Jusqu’à présent, le contrôle parental se résumait à un branchement (ou pas) du câble ethernet. La demande de la connexion internet était commandée par un « Papa! Tu peux brancher internet sur mon ordinateur? », et la réponse, pilotée par un puissant algorithme (« a-t’il ou elle fait ses devoirs? », « Quelle heure est-il? », « ne serait-il ou elle pas mieux à jouer à autre chose? »….) était suivi, dans le cas d’une connexion acceptée, d’un déplacement régulier dans la chambre pour contrôler les pages.

Je suis bien conscient qu’il n’y a pas de solution parfaite, que tout ne peut pas être filtré correctement, et que le contournement est aussi possible. Mais ce que j’ai mis en place permet de débuter et pourra être amélioré par la suite. La solution que j’ai choisi est l’installation d’une distribution Linux, IPFire, qui permet, entre autre, de « filtrer » tout ce qui passe entre des ordinateurs du réseau et internet, de régler des plages horaires et logger les connexions, afin de mieux paramétrer le système si besoin. 

ipfire_tux_512x512

Le matériel

Dans le cas d’une utilisation familiale, IPFire peut être  :

  • installé sur une petite machine qui lui sera entièrement dédiée. Dans ce cas, pas besoin d’énormément de puissance, comme on peut le voir sur cette page, mais l’obligation d’avoir 2 cartes réseau (alors que dans les 2 cas suivants, on peut s’en passer, même si ce n’est pas recommandé).
  • installé dans une VM sur une machine de bureau avec Parallels Desktop, VMWare Fusion ou Workstation ou bien VirtualBox. Dans ce cas, il faut une machine un peu plus puissante, et surtout qu’elle ne soit pas en veille lorsqu’elle devra être utilisée par les autres ordinateurs.
  • installé dans une VM sur un serveur de virtualisation, comme dans mon cas (la machine que j’appelle « serveur », n’est pas une grosse config, elle est basée sur cette carte mère avec 4Go). Pour info, j’utilise ProxMox, qui est gratuit mais qui surtout, contrairement à VMWare ESXi, est entièrement pilotable via une interface web et donc pleinement utilisable sur MacOS X (ESXi a besoin d’outils fonctionnement uniquement sous Windows).

Je n’entrerai pas dans les détails de configuration des VM, mais c’est un point qui peut poser problème pour un débutant, notamment en ce qui concerne le paramétrage des cartes réseau (il faut bien vérifier que les adresses qu’on donne soient bien accessibles à partir d’autres machines du réseau, ce qui dans le cas du NAT par exemple, ne sera pas le cas).

Installation et configuration réseau

Pour ceux qui utilisent la virtualisation, pensez à déclarer 2 cartes réseau, en mode bridge.

Une fois le CD ou la clé USB (voire l’image ISO) d’IPFire insérée, on démarre la machine (ou la VM) et on choisit ce périphérique pour booter. L’installeur est d’une autre époque, minimaliste, dont les plus anciens de Linux se souviendront (ou les fans de Debian ou de FreeBSD), mais étant donné le peu d’étapes, il n’y a aucune raison de se plaindre.

 

Installation

Première image de l’installer

Après avoir passé une dizaine d’écrans (partitionnement du disque, choix du type de filesystem, copie des fichiers, choix des préférences régionales et du clavier, choix du nom de la machine, du domaine et du mot de passe), on arrive à la première phase de configuration importante pour la suite: le réseau. Sous IPFire, il y a la possibilité de définir 4 réseaux, selon une couleur particulière:

Rouge WAN Réseau externe, connecté à Internet
Vert LAN Réseau interne/privé, connecté localement
Orange DMZ Réseau non protégé, zone démilitarisée
Bleu WLAN Réseau sans fil, Réseau séparé pour clients Wi-Fi

Dans notre cas, nous n’utiliserons que les réseau Rouge (accès vers Internet) et Vert (notre réseau local). Le bleu est utilisé pour le wifi (mais dans notre cas, le wifi passera de la box vers IPFire, donc sur le réseau vert) et l’orange est utilisé dans le cas où on veut pouvoir accéder à nos machines à partir de l’extérieur.

Le paramétrage, étape par étape:

Sélection config réseau

Choisir « Network configuration type », puis « OK ».

greenall

Choisir « GREEN + RED », puis « OK ».

Carte réseau

De retour sur le menu principal, choisir « Drivers and card assignments », puis « OK ».

Réseau green

On va commencer par paraméter le réseau local. Choisir « GREEN », puis « OK »

Choix carte réseau

Choisir la carte réseau qui sera utilisée pour le réseau local. (dans le cas où les 2 cartes n’ont pas les mêmes performances, choisir ici celle ayant les meilleurs débits, car 100mbits/s sont suffisants pour la connexion à internet), puis « OK ».

Recommencer les 3 étapes précédentes pour le réseau « RED ».

Adresse réseau

Choisir « Adress settings » puis « OK ».

Adresse réseau green

On a choisi la carte réseau pour le réseau vert, on va maintenant choisir l’adresse IP. Choisir « GREEN » puis « OK ».

Paramètres réseau

Dans le cas idéal, on devrait désactiver le mode routeur de la box et mettre les 2 cartes réseaux de notre machine sur 2 plages différentes. Ce sera sûrement le cas plus tard, mais pour l’instant, mes 2 cartes sont sur la même plage. Choisir une adresse IP (qui ne soit pas utilisé par le DHCP de la box) et le masque de sous-réseau, puis « OK ».

Réseau red

Choisir maintenant le réseau RED (vers internet) et cliquer sur OK.

Adresse réseau red

Si on a passé le modem en mode bridge, on utilise le DHCP (on récupèrera l’IP publique dans ce cas), sinon, on utilise Static et on paramètre comme avec le réseau Vert.

DSN & Gateway

On choisit ensuite « DNS and Gateway settings » puis OK.

gateway

Choisir les DNS et la passerelle (la box). Ces infos peuvent être obtenues simplement avec ipconfig /all et ifconfig -a (selon qu’on soit sous Linux/MacOS X ou sous Windows). Choisir OK.

Désactiver le serveur DHCP (ça pourrait être utile si on se passait du DHCP de la box avec le mode bridge par exemple) et cliquer OK.  Il suffit ensuite de laisser l’installation se terminer et d’attendre le redémarrage.

En cas de changement (ou d’erreur), il est possible une fois l’installation terminée, de modifier les paramètres précédent en utilisant la commande « setup », à partir de la ligne de commande.

Configuration du proxy

Une fois le redémarrage terminé, il faut se connecter à l’aide d’un navigateur sur la machine installée, en utilisant l’ip du réseau « vert ». Dans mon cas: https://192.168.0.101:444

Une fois login et mot de passe saisis, on arrive sur la page suivante:

img1

On voit la carte qui permet d’accéder à internet et celle au réseaul local (idéalement sur 2 réseaux distincts et dans ce cas, il faut paramétrer le dhcp, mais ce n’est pas le but de ce billet).

Par défaut, tout accès internet est bloqué sur IPFire. Si on veut par exemple mettre à jour la distrib, via l’onglet « ipfire », ça ne fonctionnera pas. Il faut donc passer par l’onglet « firewall » et choisir dans la partie droite « Outgoing Firewall », comme sur l’écran suivant:

img6

Il y a plusieurs fonctionnement possible du firewall:

  • on autorise tout le traffic, sauf celui précisémment interdit
  • on interdit tout le traffic, sauf celui précisémment autorisé
  • on autorise tout, sans aucune condition

J’ai choisi le Mode 0 (pour l’instant), car le filtrage se fera à l’aide du proxy.

Maintenant, allons configurer le proxy. Pour celà, il faut passer par  l’onglet « network » et le menu « Webproxy ». La page suivante s’affiche:

img2

Il y a 3 choses à paramétrer sur cette page. Tout d’abord, on active le proxy, en cochant la case « Enabled on Green », tout en haut. Ensuite, on coche la case « URL filter Enabled ». Un peu plus bas, on a la partie « Time restrictions », qui permet d’autoriser ou d’interdire des plages horaires pour la navigation web:

img3

Tout comme le firewall, on a le choix entre autoriser (allow) ou interdire (deny) les jours et heures indiqués. Une fois les paramètres sauvegardés, on clique sur le menu « Content Filter » (à droite), et on arrive sur la page qui permet le filtrage des sites. On se rend directement en bas pour choisir à un site une liste de sites interdits:

img5

Il existe plusieurs sites internet qui recensent une liste de sites par catégories (l’ensemble d’internet n’est pas référencé, mais une grande partie des sites non conseillés aux enfants et adolescents). J’ai choisi d’utiliser la liste mise à jour par l’université de Toulouse. J’ai aussi choisi la mise à jour automatique, une fois par fois. Une fois les paramètres enregistrés, on peut cliquer sur « Update now », qui va prendre un petit peu de temps. Une fois la mise à jour effectuée, la page est rechargée et de nouvelles catégories s’affichent:

img4

Il ne reste plus qu’à cocher les catégories à interdire, à enregister les données et relancer le proxy .

Configuration des ordinateurs des enfants

 La configuration sur les postes clients est très simple: il suffit de paramétrer le proxy web comme sur l’image ci-dessous, dans les préférences réseau sur MacOS X ou dans les navigateurs sur Windows.

img7

Une fois celà paramétré, il ne reste plus qu’à tester à partir du navigateur. En cas de site interdit, une belle page d’erreur s’affiche alors, indiquant que le site est interdit.

Comme je le disais, tout n’est pas parfait (il suffit d’aller voir sur Google Images), mais c’est un premier pas, au moins pour éviter les erreurs « accidentelles », mais davantage de paramétrage est nécessaire afin de ne pas pouvoir contourner cette installation. Je parlerai peut-être de celà dans un prochain article.

Laisser un commentaire