Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
applications:controle_parental [Le 04/12/2006, 13:01] ostaquet mise en page -> voir le modèle !!! |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>dapper edgy sécurité réseau tutoriel}} | ||
- | ====== Comment créer un contrôle parental ? ====== | ||
- | |||
- | Cette page vous explique comment mettre relativement simplement un controle parental pour les accès WEB pour un PC seul connecté à Internet (pas de réseau local) | ||
- | |||
- | ===== Objectifs ===== | ||
- | |||
- | * Restreindre l'accès au WEB pour certains thèmes | ||
- | |||
- | |||
- | ===== Prérequis ===== | ||
- | |||
- | Les logiciels utilisé pour mettre en oeuvre ce controle parental sont : | ||
- | |||
- | * squid | ||
- | * squidguard | ||
- | |||
- | Pour ce faire , il faut les installer avec la commande apt-get : | ||
- | <code> | ||
- | $ sudo apt-get install squid squidguard | ||
- | </code> | ||
- | |||
- | //**Attention : cette page explique la mise en place d'un controle parental sur un PC ubuntu directement raccordé sur le net sans reseau local.**// | ||
- | |||
- | ===== Configuration de Squid ===== | ||
- | |||
- | Le fichier de configuration est : **/etc/squid/squid.conf** | ||
- | |||
- | Tout d'abord sauvegardez ce fichier avec la commande : | ||
- | |||
- | <code> | ||
- | $ sudo mv /etc/squid/squid.conf /etc/squid/squid.conf.orig | ||
- | </code> | ||
- | |||
- | Maintenant éditez ce fichier avec l'éditeur de votre choix en ayant les droits administrateurs , par exemple : | ||
- | |||
- | <code> | ||
- | $ sudo nano /etc/squid/squid.conf | ||
- | </code> | ||
- | |||
- | Insérez-y les lignes suivantes : | ||
- | |||
- | <code> | ||
- | # ----------------------------------------------------------- | ||
- | http_port 127.0.0.1:3128 | ||
- | cache_effective_user proxy | ||
- | cache_effective_group proxy | ||
- | # ----------------------------------------------------------- | ||
- | visible_hostname none | ||
- | # ----------------------------------------------------------- | ||
- | |||
- | # ----------------------------------------------------------- | ||
- | acl all src 0.0.0.0/0.0.0.0 | ||
- | acl localhost src 127.0.0.1/255.255.255.255 | ||
- | acl manager proto cache_object | ||
- | acl serveur src 192.168.0.1 | ||
- | acl poste src 192.168.0.50 | ||
- | acl multipostes src 192.168.0.100-192.168.0.125 | ||
- | acl SSL_ports port 443 563 | ||
- | acl Safe_ports port 80 # http | ||
- | acl Safe_ports port 20 # ftp-data | ||
- | acl Safe_ports port 21 # ftp | ||
- | acl Safe_ports port 443 563 # ssl | ||
- | acl Safe_ports port 70 # gopher | ||
- | acl Safe_ports port 210 # wais | ||
- | acl Safe_ports port 1025-65535 # unregistered ports | ||
- | acl Safe_ports port 280 # http-mgmt | ||
- | acl Safe_ports port 488 # gss-http | ||
- | acl Safe_ports port 591 # filemaker | ||
- | acl Safe_ports port 777 # multiling http | ||
- | acl Safe_ports port 631 # cups | ||
- | acl Safe_ports port 873 # rsync | ||
- | acl Safe_ports port 901 # SWAT | ||
- | acl purge method PURGE | ||
- | acl CONNECT method CONNECT | ||
- | |||
- | http_access allow all | ||
- | |||
- | redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf | ||
- | redirect_children 10 | ||
- | |||
- | httpd_accel_host virtual | ||
- | httpd_accel_port 80 | ||
- | httpd_accel_with_proxy on | ||
- | httpd_accel_uses_host_header on | ||
- | </code> | ||
- | |||
- | |||
- | ===== Configuration de SquidGuard ===== | ||
- | |||
- | SquidGuard est une sorte de plugin a squid qui joue le role de redirecteur. En fait si une requête du navigateur n'est pas conforme à ce qui a été défini dans sa configuration il affiche une autre page web que celle demandée. | ||
- | |||
- | |||
- | |||
- | ==== Les listes noires ==== | ||
- | |||
- | Pour ce qui est du filtrage des sites, on ne vas bien sur pas entrer les adresses à la main, des listes noires existes sur le net. Voici une adresse de blacklist : ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz | ||
- | |||
- | Voici les commandes à faire pour les installer : | ||
- | |||
- | <code> | ||
- | wget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz | ||
- | sudo tar zxvf blacklists.tar.gz -C /var/lib/squidguard/db/ | ||
- | cd /var/lib/squidguard/db | ||
- | sudo mv blacklist/* . | ||
- | sudo rm -rf blacklist | ||
- | </code> | ||
- | |||
- | C'est à partir de cette liste noire que la base de données va être crée pour Squidguard. Si vous regarder le répertoire /var/lib/squidguard/db, vous verrez pleins de sous répertoires de thèmes pour les listes noires (gambling,radio,webmail,porn,adult, ...). Ce sont ces thèmes qu'il faudra définir dans le fichier de configuration de Squidguard (voir plus bas) | ||
- | |||
- | Maintenant il faut générer la base de données avec la commande suivante : | ||
- | |||
- | <code> | ||
- | sudo squidGuard -C all | ||
- | </code> | ||
- | |||
- | Patientez un peu car ca peu être long. | ||
- | |||
- | |||
- | ==== Le fichier de configuration ==== | ||
- | |||
- | |||
- | Le fichier de configuration est : **/etc/squid/squidGuard.conf** | ||
- | |||
- | De même sauvegardez ce fichier avec la commande : | ||
- | |||
- | <code> | ||
- | $ sudo mv /etc/squid/squidGuard.conf /etc/squid/squidGuard.conf.orig | ||
- | </code> | ||
- | |||
- | |||
- | Maintenant éditez ce fichier avec l'éditeur de votre choix en ayant les droits administrateurs , par exemple : | ||
- | |||
- | <code> | ||
- | $ sudo nano /etc/squid/squidGuard.conf | ||
- | </code> | ||
- | |||
- | Insérez-y les lignes suivantes : | ||
- | |||
- | <code> | ||
- | |||
- | # | ||
- | # CONFIG FILE FOR SQUIDGUARD | ||
- | # | ||
- | |||
- | dbhome /var/lib/squidguard/db | ||
- | logdir /var/log/squid | ||
- | |||
- | # ------------------------------------------------------------ | ||
- | # Definition de la base de données de filtrage utilisée | ||
- | # ------------------------------------------------------------ | ||
- | dest adult { | ||
- | domainlist adult/domains | ||
- | urllist adult/urls | ||
- | } | ||
- | |||
- | dest publicite { | ||
- | domainlist publicite/domains | ||
- | urllist publicite/urls | ||
- | } | ||
- | |||
- | dest warez { | ||
- | domainlist warez/domains | ||
- | urllist warez/urls | ||
- | } | ||
- | |||
- | dest porn { | ||
- | domainlist porn/domains | ||
- | urllist porn/urls | ||
- | } | ||
- | |||
- | dest violence { | ||
- | domainlist violence/domains | ||
- | urllist violence/urls | ||
- | } | ||
- | |||
- | # ------------------------------------------------------------ | ||
- | # Definition des ACL | ||
- | # ------------------------------------------------------------ | ||
- | acl { | ||
- | default { | ||
- | pass !porn !adult !publicite !warez !violence all | ||
- | redirect http://www.roozeec.fr/interdiction.html | ||
- | } | ||
- | } | ||
- | # ------------------------------------------------------------ | ||
- | </code> | ||
- | |||
- | Vous aurez compris ici que SquidGuard va rediriger toutes les pages qui sont non conformes à la règle **pass** vers la page web : http://www.roozeec.fr/interdiction.html | ||
- | |||
- | |||
- | ===== Configuration de IPTABLES ===== | ||
- | |||
- | Maintenant que tous est fait pour ce qui est du proxy, il faut aussi que les requêtes du navigateur soit redirigées vers le proxy squid que nous venons de configurer. Pour celà, il faut d'abord trouver l'identifiant de l'utilisateur proxy (UID) avec la commande : | ||
- | |||
- | <code> | ||
- | grep proxy /etc/passwd | ||
- | proxy:x:13:13:proxy:/bin:/bin/sh | ||
- | </code> | ||
- | |||
- | Ici la réponse est 13, donc nous allons créer la règle iptables suivante : | ||
- | |||
- | <code> | ||
- | sudo iptables -t nat -A OUTPUT -m owner ! --uid-owner **13** -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 | ||
- | </code> | ||
- | |||
- | De facon a lancer cette commande au démarrage du PC, il suffit de la mettre dans le fichier /etc/rc.local, juste avant la commande exit 0 : | ||
- | |||
- | <code> | ||
- | #!/bin/sh -e | ||
- | # | ||
- | # rc.local | ||
- | # | ||
- | # This script is executed at the end of each multiuser runlevel. | ||
- | # Make sure that the script will "exit 0" on success or any other | ||
- | # value on error. | ||
- | # | ||
- | # In order to enable or disable this script just change the execution | ||
- | # bits. | ||
- | # | ||
- | # By default this script does nothing. | ||
- | |||
- | iptables -t nat -A OUTPUT -m owner ! --uid-owner 13 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 | ||
- | |||
- | exit 0 | ||
- | |||
- | </code> | ||
- | |||
- | |||
- | ===== Démarrage de Squid ===== | ||
- | |||
- | Maintenant que tout est prêt, il suffit de lancer squid, mais avant tout il va falloir lancer quelques commandes pour bien définir les droits des fichiers : | ||
- | |||
- | <code> | ||
- | sudo chown -R proxy.proxy /etc/squid /var/log/squid /var/spool/squid /usr/lib/squid /usr/sbin/squid /var/lib/squidguard | ||
- | </code> | ||
- | |||
- | Maintenant le démmarrage proprement dit : | ||
- | |||
- | <code> | ||
- | sudo /etc/init.d/squid start | ||
- | </code> | ||
- | Et la réponse doit être : //Starting Squid HTTP proxy squid [ok]// | ||
- | |||
- | //Contributeurs : [[utilisateurs:roozeec|Roozeec]] // |