Plate-forme d'accès Protégé à l'internet sous linux ****** PAPINUX ******



Documents pareils
Proxy SQUID sous Debian

MISE EN PLACE D UN FIREWALL ET D UN SERVEUR PROXY SOUS LINUX MANDRIVA.

MISE EN PLACE DU FIREWALL SHOREWALL

Linux sécurité des réseaux

Installation et Configuration de Squid et SquidGuard sous Debian 7

Serveur proxy Squid3 et SquidGuard

FreeNAS Shere. Par THOREZ Nicolas

Proxy et reverse proxy. Serveurs mandataires et relais inverses

Serveur Mandataire SQUID

Mise en place d un serveur Proxy sous Ubuntu / Debian

But de cette présentation. Proxy filtrant avec Squid et SquidGuard. Serveur proxy. Serveur proxy. Hainaut P

PROXY SQUID-SQARD. procédure

Les réseaux des EPLEFPA. Guide «PfSense»

SQUID Configuration et administration d un proxy

Installation d un serveur AmonEcole

Comment surfer tranquille au bureau

MANUEL D INSTALLATION D UN PROXY

Zemma Mery BTS SIO SISR. Session Projets Personnels Encadrés

Procédure d utilisation et de paramétrage (filtrage) avec IPFIRE

Debian Lenny - Virtualisation avec Libvirt/KVM Debian GNU/Linux

But de cette présentation

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

OpenMediaVault installation

L exemple d un serveur Proxy sous Windows NT 4 SERVER MICROSOFT PROXY SERVER 2 Installation et configuration Auteur : Eliane Bouillaux SERIA5

PROCÉDURE D'INSTALLATION

GUIDE D INSTALLATION DE FIREWALL OPEN SOURCE

ALOHA Load Balancer 2.5. Guide de démarrage rapide. EXCELIANCE ALOHA 2.5 Guide de démarrage rapide 30/01/2008 1/17

ACTION PROFESSIONNELLE N 4. Fabien SALAMONE BTS INFORMATIQUE DE GESTION. Option Administrateur de Réseaux. Session Sécurité du réseau

INSTALLATION DEBIAN 7 (NETINSTALL) SUR VM

Configurer Squid comme serveur proxy

Assistance à distance sous Windows

Installation d'un service mandataire (Proxy SQUID) 1

Administration de Parc Informatique TP07 : Installation de Linux Debian

Configuration réseau Basique

TAGREROUT Seyf Allah TMRIM

(1) Network Camera

Serveur de messagerie sous Debian 5.0

Installation de Windows 2003 Serveur

Les différentes méthodes pour se connecter

Projet Semestre2-1SISR

CONFIGURATION IP. HESTIA FRANCE S.A.S 2, rue du Zécart TEMPLEUVE +33 (0) (0) Site internet:

Mise en place d un firewall d entreprise avec PfSense

LINUX REMPLAÇANT WINDOWS NT

1 INTRODUCTION 2 2 PRE-REQUIS Export du certificat du serveur Date et heure du système Téléchargement du logiciel du terminal 2

Installation de Windows 2000 Serveur

Installation d'un FreeNAS (v0.684b du 30/03/2007) pour sauvegarder les données d'un ZEServer

ASR4 Réseaux Département Informatique, IUT Bordeaux 1. DHCP Prénom : Nom : Groupe :

Configurez votre Neufbox Evolution

Un peu de vocabulaire

Sécurité du Système d Information. Authentification centralisée et SSO

Pour configurer le Hitachi Tecom AH4021 afin d'ouvrir les ports pour "chatserv.exe", vous devez suivre la proc

Augmenter la portée de votre WiFi avec un répéteur

Créer son réseau personnel

Les possibilités de paramétrage réseau des logiciels de virtualisation sont les suivantes quant à la connexion réseau :

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Documentation technique OpenVPN

Configurer ma Livebox Pro pour utiliser un serveur VPN

Virtualisation d un proxy Squid gérant l authentification depuis Active Directory. EPI - Stagiaire2007 Vivien DIDELOT

pfsense Manuel d Installation et d Utilisation du Logiciel

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Installation du client Cisco VPN 5 (Windows)

COMMENT INSTALLER LE SERVEUR QIPAIE

CONFIGURATION DE BASE. 6, Rue de l'industrie BP130 SOULTZ GUEBWILLER Cedex. Fax.: Tel.:

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Le filtrage de niveau IP

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Movie Cube. Manuel utilisateur pour la fonction sans fil WiFi

Configuration de routeur D-Link Par G225

Configuration de SquidGuard sous Fedora Core 4-1 / 6 -

Installation du client Cisco VPN 5 (Windows)

A5.2.3, Repérage des compléments de formation ou d'autoformation

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Installation du client Cisco VPN 5 (Windows)

CAMERA DOME AMELIORÉE DE SURVEILLANCE EN RÉSEAU GUIDE D INSTALLATION

ETI/Domo. Français. ETI-Domo Config FR

acpro SEN TR firewall IPTABLES

STATISTICA Version 12 : Instructions d'installation

Tous les logiciels cités dans ce document sont des marques déposées de leurs propriétaires respectifs

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP réseau firewall

Projet serveur OwnCloud

TP Linux : Firewall. Conditions de réalisation : travail en binôme. Fonctionnement du parefeu Netfilter. I Qu est ce qu'un firewall?

Contrôle de la DreamBox à travers un canal SSH

Installation et paramétrage de Fedora dans VirtualBox.

Les systèmes pare-feu (firewall)

Documentation FOG. 3. Choisir le nom de la machine, le nom d utilisateur et le mot de passe correspondant (par exemple : fog, password)

Installation et configuration du CWAS dans une architecture à 2 pare-feux

TP N 1 : Installer un serveur trixbox.

TP PLACO. Journées Mathrice d'amiens Mars 2010

Manuel d'installation du logiciel

SÉCURITÉ DU SI. Authentification centralisée et SSO. Denoun Jérémy De Daniloff Cyril Bettan Michael SUJET (2): Version : 1.0

Mise en place d un proxy Squid avec authentification Active Directory

DHCPD v3 Installation et configuration

Tutoriel Création d une source Cydia et compilation des packages sous Linux

MANUEL D INSTALLATION

Installation du SLIS 4.1

Sauvegardes par Internet avec Rsync

Installation. du serveur SCRIBE virtuel d'amonecole

Live box et Nas Synology

Transcription:

Plate-forme d'accès Protégé à l'internet sous linux ****** PAPINUX ****** INSTALLATION D'UN CONTRÔLE PARENTAL DANS UN RÉSEAU FAMILIAL Table des matières 1-Introduction......4 1.1-Présentation......4 1.2-Requis......4 1.2.1-Ce que n'est pas ce document:....5 1.2.2-Ce qu'est ce document:.....5 1.3-Conventions utilisées dans ce document......6 1.4-Statut de ce document...6 2-Présentation de la configuration......7 3-Principe du filtrage......9 3.1-Présentation......9 3.2-Rôle de chacun des logiciels......10 3.2.1-Shorewall......10 3.2.2-Squid....10 3.2.3-DansGuardian......11 3.2.4-Autres logiciels......11 3.2.4.1-DNSMasq......11 3.2.4.2-Resolvconf......11 4-Installation......12 4.1-Introduction....12 1/45

4.2-Installer Debian Sarge......12 4.2.1-Au démarrage......12 4.2.2-Partitionnement......12 4.2.3-Sélection des logiciels Debian......13 4.2.4-Suite de l'installation......14 5-Configuration du réseau......15 5.1.1-Lister les interfaces......15 5.1.2-Problème......18 6-Configuration du parefeu......20 6.1-Installation de Shorewall......20 6.2-Configuration......20 6.2.1-Configurer Shorewall......20 6.2.2-Les règles......21 6.2.3-Configuration générale de ShoreWall......22 6.2.4-Test de la configuration de ShoreWall......22 7-Installation d'un proxy DNS / serveur DHCP......23 7.1-Configurer dnsmasq......23 7.2-Quelques explications......23 8-Installation du contrôle parental....25 8.1-Installation......25 8.2-Configurer Dansguardian......25 8.3-Configurer Squid......27 8.3.1-Quelques explications:......28 8.4-Authentification......29 8.4.1-Installation de htpasswd......29 8.4.2-Création d'un utilisateur :......29 8.4.3-Modification des règles du parefeu......29 8.4.4-Vérification......30 8.4.4.1-Firefox sous Linux......30 8.4.4.2-Konqueror......31 8.4.4.3-Opera......31 8.4.4.4-Autres navigateurs.....31 8.4.5-Problèmes......31 8.5-Mise en place du proxy transparent...32 8.5.1-A quoi ça sert?......32 8.5.2-Configuration......32 2/45

8.5.3-Les clients......33 9-STATISTIQUES ET CONTRÔLES......34 9.1-Webalizer......34 9.1.1-Installation......34 9.1.2-Configuration......34 9.1.3-Visualisation des statistiques......35 9.2-Dglog......35 10-Extension......36 10.1-Modification...36 10.2-Modification du parefeu Shorewall...37 10.2.1-Ajout de la zone Wifi......37 10.2.2-Ajout de l'interface Wifi......37 10.2.3-Modification des règles de Shorewall...37 11-Sécurisation......40 11.1-Le mot de passe.....40 11.2-Désinstaller les logiciels qui ne sont pas utilisés......41 11.3-Installer et configurer bastille......41 11.4-Restreindre les droits des partitions......43 12-TABLEAU DE VOS PARAMÈTRES......44 13-LICENCE.....45 3/45

1-Introduction 1- INTRODUCTION Depuis la sortie de la version Etch (Debian 4.0), une partie de ce document est obsolète, notamment celle qui concerne Udev. Une version de papinux basée sur Etch est prévue. 1.1- Présentation Ce document présente la manière de filtrer les accès internet dans un environnement familial. La solution technique repose sur un (petit) serveur Linux dont la distribution est Debian/Sarge. Pour effectuer un filtrage efficace, nous avons besoin d'un ordinateur (pas besoin qu'il soit récent) qui s'intercalera entre le réseau local et le modem/routeur ADSL. Il est nécessaire que la machine assurera la fonction de filtrage ait au moins deux cartes réseau. La solution de filtrage que je vous propose est basée sur la distribution Linux Debian Sarge 3.1. Il sera administrable par ssh (donc pas besoin d'écran, de clavier ou de souris). Une fois installée, la maintenance sera minimale puisqu'elle consiste à mettre à jour les logiciels installés. 1.2- Requis Un minimum de connaissance est requis pour exploiter ce document. Si vous ne savez pas ce qu'est une adresse IP, une partition (de disque dur), ce document n'est pas fait pour vous pour l'instant. Il me semble nécessaire: de savoir configurer une carte réseau; d'éditer un fichier texte (avec vi, emacs, nano, pico, mc, etc). Pour ma part, j'utilise soit vi soit l'éditeur intégré à mc (Midnight Commander). de connaître l'arborescence d'un système Linux; de savoir se connecter avec ssh, copier des fichiers avec scp ou monter une clé usb. 4/45

1-Introduction 1.2.1- Ce que n'est pas ce document: un tutoriel d'installation de la distribution Debian. Il existe d'excellents sites pour effectuer cette opération; un guide pour l'utilisation ou l'administration de Debian. 1.2.2- Ce qu'est ce document: un guide mise en oeuvre rapide relativement détaillé; même les moins expérimentés devraient y arriver sous réserve des conditions évoquées précédemment. une présentation d'une solution mais cette solution n'est pas unique. J'ai fait des choix que j'assume. Par exemple, à la place de Dansguardian, il est possible d'utiliser SquidGuard. A la place de Shorewall, on peut écrire ses propres règles iptables, etc. Mes choix se sont portés aussi sur l'authentification des utilisateurs, sur leur pistage, etc. Évidemment, si cela ne correspond pas à votre objectif, il vous est loisible d'ignorer ces passages. Les logiciels sélectionnés sont suffisamment souples pour s'adapter à votre utilisation. Il est évident que je n'ai rien inventé. Au début, j'ai installé ma passerelle en m'aidant de la documentation jointe aux logiciels, des différents sites internet des éditeurs, des forums, des listes de discussions, etc. L'information existe mais elle est éparse. Le but de ce document est de synthétiser ces différentes sources d'information et d'en faire un véritable guide de mise en oeuvre accessible par tous. J'espère avoir rempli mon objectif et que ce document vous rendra service. Il va de soi que si vous rencontrez des erreurs ou que vous souhaitez ajouter des précisions ou rendre ce document plus limpide, vous pouvez me faire parvenir vos remarques. 1.3- Conventions utilisées dans ce document Afin de suivre parfaitement ce guide, ce paragraphe regroupe les conventions que j'ai prises. L'installation concerne un ordinateur appelé indifféremment : machine, machine de contrôle parental, passerelle, gateway. j'évite de le désigner par parefeu ou firewall car ces termes désignent le logiciel éponyme. Son nom est : papinux. Il possède deux interfaces (cartes) réseau dont les noms logiques sont eth0 relié à l'internet et eth1 relié au réseau local. Le réseau local est appelé lan et le réseau côté internet net. 1.4- Statut de ce document Ce document est distribué selon les termes de la licence GPL. Vous pouvez y apporter toutes les modifications souhaitées à la condition expresse que l'auteur original soit mentionné. 5/45

2-Présentation de la configuration 2- PRÉSENTATION DE LA CONFIGURATION Pour un réseau personnel ou domestique ou comprenant quelques ordinateurs, il n'est pas nécessaire d'avoir une machine récente. La machine utilisée dans ce document a les caractéristiques suivantes : Compaq Presario Pentium 266 Mhz Mémoire (RAM) : 96 MB Disque dur : WD200 20 GB un lecteur CDRom 2 Cartes réseau : 1 carte avec un circuit (chipset) RTL8139 (100 Mb) et 1 carte réseau avec un circuit W89C840F qui possède 4 ports 100 Mb (trouvée sur une étagère chez un revendeur de matériel obsolète). Il est conseillé d'avoir 2 cartes différentes, c'est plus facile pour les repérer (veuillez noter qu'il ne s'agit pas d'une obligation). Un moniteur 14'' 1 clavier, pas de souris En ce qui concerne le matériel ADSL, je préconise l'utilisation d'un modem/routeur, tellement plus facile à installer et à administrer. Comme je ne dispose que d'un modem/routeur, l'installation de la solution de filtrage est basée sur ce type d'installation. Si votre modem ne dispose pas de la fonction «routeur», ce n'est pas très primordial, les différentes documentations détaillant la méthode de connexion via le protocole PPPOE. La distribution Debian est disponible à l'adresse www.debian.org. Il existe une version minimale (env. 120 MB) appelée netinstall. L'installation se fait par le réseau internet. A privilégier si vous avez une connexion ADSL. Le cas échéant, il vous faudra télécharger au moins les 3 premiers CD. Pour la partie logicielle, nous avons besoin: d'une distribution Linux. Celle que je vous propose est Debian. Cette distribution que j'utilise depuis plusieurs années est parfaitement adaptée à ce que je vous propose. Parefeu (firewall) : Shorewall (qui est un firewall basé sur Netfilter/Iptables); d'un serveur mandataire (proxy) squid d'un logiciel de filtrage : Dansguardian; d'un serveur cache (proxy) DNS et qui fait aussi office de serveur DHCP : DNSmasq Évidemment, les logiciels font partie de la distribution Debian/Sarge. Vous n'aurez nul besoin d'aller chercher ailleurs d'autres logiciels, ni même besoin de compiler quoique ce soit. L'installation d'un logiciel se résume à taper une commande puis, éventuellement, de répondre à quelques questions. L'ensemble, une fois installé et configuré, est cohérent et facilement maintenable. En général, en deux commandes, une fois par semaine, votre système est à jour. Nous limiterons volontairement les logiciels installés et désinstallerons ceux qui nous sont inutiles. Ainsi, notre passerelle sera moins impacté par des problèmes de failles logicielles qui peuvent créer des 6/45

2-Présentation de la configuration trous de sécurité. Vous pouvez rajouter un antivirus qui analysera le contenu des pages Web. La version de squid utilisée dans Sarge ne prend pas en charge ce type de d'analyse. La prochaine version Debian (Etch) aura une version compatible avec un antivirus. Ce document n'aborde pas, pour le moment, ce point. 7/45

3-Principe du filtrage 3- PRINCIPE DU FILTRAGE 3.1- Présentation Rien ne vaut un schéma pour expliquer la chaîne du filtrage: Les différents logiciels communiquent entre eux via des ports. Le client adresse sa requête via l'interface eth1 à papinux. La requête est ensuite traitée par le contrôle parental puis par le serveur mandataire (Squid). Je me suis fixé un cahier des charges pour que le système soit le plus souple possible: les clients (parents, enfants) doivent s'authentifier; Tous les clients passent par la chaîne d'authentification et de filtrage*. toutes les requêtes sont enregistrées et peuvent être analysées; il doit y avoir deux profils : enfants avec filtrage obligatoire et très restrictif, et parents avec ou sans filtrage (au choix); gestion des blacklists de SquidGuard; mise en place d'un parefeu basique mais suffisant; étendre facilement le réseau avec un borne d'accès Wifi (de type Ethernet) sur papinux; proposer des fonctionnalités annexes: serveur cache DNS, serveur DHCP; limiter le nombre de logiciels installés. * Le passage par le serveur proxy se paramètre dans le navigateur. Les enfants comprennent très vite comment 8/45

3-Principe du filtrage s'affranchir du proxy (aucun navigateur ne protège par un mot de passe le paramétrage du proxy dans les options ou les préférences). Il faut donc obliger, grâce à une règle du parefeu, les requêtes HTTP à passer par la chaîne de filtrage. Toutefois, il est possible de déroger à cette règle selon l'adresse IP (par exemple, l'ordinateur des parents n'est jamais utilisé par les enfants n'a pas besoin de passer par chaîne de filtrage. Il est possible de faire du filtrage via l'adresse IP (cela est d'ailleurs proposé dans ce document) mais si l'ordinateur est unique et que toute la famille l'utilise, il devient très difficile de gérer différents profils réseau sur l'ordinateur (une solution est donnée pour Linux avec ifscheme). L'authentification demeure une solution pratique et utilisable sur un même ordinateur. On veillera simplement à bien fermer le navigateur à la fin de sa session de navigation. Une autre solution était de mettre un serveur proxy transparent (pas besoin de paramétrer les navigateurs, les requêtes sont obligatoirement diriger vers le proxy). Néanmoins, cette solution est incompatible avec l'authentification des utilisateurs. Cette solution est envisageable si chacun a son ordinateur: le filtrage s'effectue via l'adresse IP. Il existe donc plusieurs moyens pour arriver au résultat. Après lecture de ce document, vous serez à même de décider ce dont vous avez besoin. En ce qui me concerne, l'authentification (chaque utilisateur du réseau a un nom de connexion et un mot de passe) n'est pas très difficile à mettre en oeuvre et permet de contrôler exactement ce que font nos très chers enfants! Il suffit de leur montrer une fois ce qui est enregistré (c'est-à-dire toutes les requêtes qu'ils ont effectuées, les urls, etc.). 3.2- Rôle de chacun des logiciels 3.2.1- Shorewall Parefeu. Par défaut interdit toute connexion venant de l'extérieur (via l'interface eth0), contrôle les flux réseau. Redirige les requêtes HTTP (web) vers la chaîne de filtrage. Interdit de ce fait de contourner («bypass») la chaîne de filtrage (par exemple en désactivant les propriétés du proxy dans les paramètres du navigateur). 3.2.2- Squid Serveur mandataire appelé proxy. Il est utilisé en tant que serveur cache et d'authentification. La partie cache est paramétrable. 3.2.3- DansGuardian Effectue le filtrage des pages Web selon des critères déterminés. L'interdiction peut être basée selon le contenu des pages Web (analyse sémantique par rapport à un dictionnaire d'expressions, de mots), selon l'url ou le nom de domaine, selon 9/45

3-Principe du filtrage des expressions régulières. La liste noire (blacklist) utilisée est celle diffusée par l'université de Toulouse. Cette liste est mise à jour régulièrement. Il faudra donc veiller à mettre à niveau celle que vous utilisez (cette procédure sera bientôt automatique). 3.2.4- Autres logiciels 3.2.4.1- DNSMasq DnsMasq est un serveur de cache DNS comportant aussi un serveur DHCP, ce qui le rend parfaitement adapté pour un réseau de type familial. *FAI = Fournisseur d'accès à Internet 3.2.4.2- Resolvconf L'association Dnsmasq + Resolvconf est pertinente, En effet, Resolvconf ne fournira à Dnsmasq que les adresses IP des serveurs DNS externes (ceux de notre FAI*). 10 /45

4-Installation Il vous faut au minimum une partition principale (/) et une partition d'échange appelée «swap» (environ 2 fois la mémoire vive installée). Le disque dur utilisé fait 20 Go, ce qui est largement suffisant. Pour information, une fois l'installation terminée et le système opérationnel, environ 520 Mo sont utilisés. Toutefois, le découpage proposé permet de renforcer la sécurité. Le tableau cicontre vous indique la capacité utilisée après installation. A vous d'adapter à la capacité de votre disque dur en prenant une marge de sécurité. Il est souhaitable de n'utiliser qu'une partition à 50% de capacité. 4- INSTALLATION 4.1- Introduction Dans ce document, les conventions suivantes sont prises: eth0 : nom de l'interface logique reliée à l'internet; le net représente Internet; eth1 : nom de l'interface logique reliée au réseau local; le lan ou loc représente le réseau local; l'ordinateur concerné par ce document peut être désigné par les termes suivants: passerelle (gateway), parefeu (firewall), serveur DHCP, serveur de contrôle parental. Son nom de réseau (hostname) est papinux. 4.2- Installer Debian Sarge Il existe de nombreuses documentations sur Internet qui indiquent comment installer cette distribution. Le but de ce document n'est pas de proposer une énième installation. Toutefois, compte tenu des nombreuses possibilités d'installation, je vous donne quelques indications sur des phases clés de la procédure. En cas de doute, vous pouvez faire l'installation avec un seule carte réseau, celle qui sera reliée à Internet. Vous installerez la seconde carte à l'issue de l'installation. 4.2.1- Au démarrage Démarrer sur le CD à l'invite taper linux26 Choose language : Français 4.2.2- Partitionnement Le disque a une capacité de 20 GB qui sera partitionné comme suit: 11 /45

4-Installation Les partitions sont de deux types : primaire ou logique. Il ne peut y avoir au plus 4 partitions primaires. Si on veut avoir plus de 4 partitions, il faut donc créer une partition étendue qui contiendra les partitions logiques. L'outil de partitionnement de Debian partman créera la partition étendue dès lors que vous créez une partition logique. Les partitions primaires vont de hda1 à hda4, les partitions logiques sont numérotées à partir de HDA5. Type Nom Point montage Capacité Système de fichier Primaire hda1 /boot 256 MB EXT2 11 MB Logique hda5 / 5 GB EXT3 88 MB Logique hda6 swap 256 MB SWAP NC Logique hda7 /home 1 GB EXT3 8,1 MB Logique hda8 /usr 6 GB EXT3 305 MB logique hda9 /var 5 GB EXT3 96 MB logique hda10 /tmp 2,5 GB EXT3 33 MB Capacité utilisée après installation Le disque étant surdimensionné par rapport à nos besoins réels, le choix s'est porté sur un partitionnement basé sur la sécurité (Cf. chapitre 10 sur la sécurisation). Ainsi, la partition racine / et la partition /usr sont séparées: ceci nous permettra de monter la partition /usr en lecture seule (ro) au démarrage, ce qui ne sera pas le cas de la partition /. Sur les serveurs, il est habituel de créer une partition /var: sur cette partition, seront mis, notamment, les caches des différents logiciels dont Squid. S'il advenait que cette partition soit remplie à 100%, cela ne bloquera pas le système; Il en est ainsi pour la partition /tmp. La future version de papinux, basée sur Etch, sera installé sur une carte CompactFlash (CF) de 512Mo ou 1 Go (il y aura juste un disque dur 2,5'' de portable d'environ 500Mo pour le cache de Squid). 4.2.3- Sélection des logiciels Debian Debian propose par défaut plusieurs modèles d'installation. Veillez à ce qu'aucun modèle ne soit sélectionné: ne rien cocher et valider <Ok>. L'installateur télécharge les paquets de base nécessaires au fonctionnement de la machine. Une fois que tout est installé, l'installateur vous redonne la main. Nous avons donc une machine avec le minimum vital pour fonctionner. Nous allons donc installer les logiciels (appelés ici paquets) nécessaires à notre passerelle. 12 /45

4-Installation 4.2.4- Suite de l'installation Nous allons installer quelques outils supplémentaires, notamment MC (Midnight Commander qui est un peu le couteau suisse de Linux car il permet de faire beaucoup de choses assez facilement). Se connecter en tant que root puis taper: # apt-get install mc localeconf 13 /45

5-Configuration du réseau La machine a deux cartes réseau: si l'installateur détecte les deux cartes, il vous demandera laquelle des deux cartes servira d'accès principale. Ce sera d'autant plus facile si les deux cartes ne sont pas identiques. 5- CONFIGURATION DU RÉSEAU La passerelle comporte deux cartes réseau qu'il convient de configurer par l'intermédiaire d'un unique fichier. Si, lors de l'installation, vous n'aviez placé qu'une seule carte réseau, il faut mettre la seconde carte réseau. Arrêter l'ordinateur: # halt Installer la seconde carte. Auparavant, essayez de déterminer le «chipset» de cette carte. Il arrive même que l'adresse MAC soit inscrite dessus. Dans ce cas, notez-la. Redémarrer l'ordinateur. 5.1.1- Lister les interfaces La passerelle possède deux interfaces réseaux eth0 et eth1. IL est préférable d'avoir deux modèles différents pour ces cartes: c'est plus facile de les paramétrer sans risque de confusion. La commande lspci permet de connaître les cartes PCI de notre machine: # lspci vous donne la liste des cartes PCI et des jeux de circuits (chipset) gérant ces cartes. papinux:/home/admin# lspci grep Ethernet 0000:00:03.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 0000:00:04.0 Ethernet controller: Winbond Electronics Corp W89C840 Une autre commande, lshw, vous donnera une information très précise et complète sur le matériel de votre passerelle. Installons cette commande : # apt-get install lshw Puis testons, dans un premier temps, sans arguments: # lshw S'affiche alors une longue liste de matériels installés sur la passerelle. Demandons à lshw de n'afficher que le matériel en rapport avec le réseau («network»): # lshw -C network vous fournira une information complète sur vos deux cartes réseau. Notamment, vous devrez vous intéresser à la ligne 14 /45

5-Configuration du réseau Product, logical name (eth1 ou eth0), et à la ligne configuration dont le pilote (driver) utilisé est spécifié. Voici un exemple pour une carte réseau (les informations importantes sont en gras): *-network:0 description: Ethernet interface product: RTL-8139/8139C/8139C+ vendor: Realtek Semiconductor Co., Ltd. physical id: 3 bus info: pci@00:03.0 logical name: eth0 version: 10 serial: ff:f8:54:1f:2f:f2 size: 100MB/s capacity: 100MB/s width: 32 bits clock: 33MHz capabilities: bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegociation configuration: autonegociation=on broadcast=yes driver=8139too driverversion=0.9.27 duplex=full ip=192.168.2.100 link=yes multicast=yes port=mii speed=100mb/s resources: ioport:2400-24ff iomemory:41100000-411000ff irq:11 *-network:1 description: Ethernet interface product: W89C840 vendor: Winbond Electronics Corp physical id: 4 bus info: pci@00:04.0 logical name: eth1 version: 00 serial: ff:ff:f8:f2:f0:f0 size: 100MB/s capacity: 100MB/s width: 32 bits clock: 33MHz capabilities: bus_master ethernet physical tp mii 10bt 10bt-fd 100bt 100bt- 15 /45

5-Configuration du réseau fd autonegociation configuration: autonegociation=on broadcast=yes driver=winbond-840 driverversion=1.01-d duplex=full ip=172.16.1.100 link=yes multicast=yes port=mii speed=100mb/s resources: ioport:2080-20ff iomemory:41200000-4120007f irq:11 L'information «serial» est l'adresse MAC de la carte. Noter ces numéros selon le nom de l'interface logique. L'option «short» permet d'avoir une sortie plus facilement compréhensible car plus courte: # lshw -C network -short qui doit retourner quelque chose comme : H/W path Device Class Description ====================================================== /0/50000000/3 eth0 network RTL-8139/8139C/8139C+ /0/50000000/4 eth1 network W89C840 Nous avons dans le cas présent deux cartes réseau parfaitement identifiées par Linux sous les noms logiques de eth0 et eth1. Éditer le fichier /etc/network/interface Il devrait y avoir au moins une interface de configurer (soit par dhcp soit en statique): celle qui donne accès à Internet (ici, eth0) et utilisée pour l'installation. Saisir les informations suivantes (à adapter selon votre choix): auto eth0 iface eth0 inet static address 192.168.2.100 netmask 255.255.255.0 broadcast 192.168.2.255 network 192.168.2.0 gateway 192.168.2.1 dns-nameservers 192.168.2.1 auto eth1 iface eth1 inet static address 172.16.1.100 netmask 255.255.255.0 16 /45

5-Configuration du réseau broadcast 172.16.1.255 network 172.16.1.0 dns-nameservers 192.168.2.1 Le manuel de référence utilisé pour ce chapitre est disponible à l'adresse suivante: http://www.debian.org/doc/man uals/securing-debianhowto/index.fr.html Quelques explications auto eth0 : configure l'interface physique eth0 lorsque la commande ifup (commande qui configure les interfaces) est lancée avec l'option -a. iface eth1 inet static : l'interface eth1 est appartient à la famille des interfaces IPV4 (elle aura donc une adresse de type xxx.xxx.xxx.xxx avec xxx de 0 à 255), static est le mode d'attribution de l'adresse IP. Dans ce mode, il faut impérativement spécifier une adresse IP ci-après. Ensuite, en dessous, on spécifie les valeurs pour chaque interface: address est une adresse IP, le masque du réseau (netmask), l'adresse de diffusion (broadcast), l'adresse de la passerelle (gateway) uniquement pour l'interface reliée au modem. Une autre option est dns-nameservers. Il s'agit de l'adresse IP du serveur effectuant les requêtes DNS. Si vous avez un modem/routeur (cas le plus simple), il fait sans doute office cache DNS car c'est lui qui possède les adresses IP (en général 2) que votre fournisseur d'accès donne au modem lors de la connexion. Ce point est abordé dans la partie «Proxy DNS». 5.1.2- Problème Si vous avez deux cartes réseau identiques ou si vous souhaitez inverser le nom logique des deux interfaces (eth0 et eth1), vous pouvez résoudre ce problème avec udev. Installer udev: # apt-get install udev Repérer les adresses mac des cartes réseau installées. Pour la carte eth0, taper # udevinfo -a -p /sys/class/net/eth0 Vous devez obtenir quelque chose comme: KERNEL="eth0" SUBSYSTEM="net" SYSFS{weight}="16" SYSFS{tx_queue_len}="1000" SYSFS{flags}="0x1003" SYSFS{mtu}="1500" 17 /45

5-Configuration du réseau SYSFS{carrier}="1" SYSFS{broadcast}="ff:ff:ff:ff:ff:ff" SYSFS{address}="0f:fc:ff:df:df:3d" SYSFS{type}="1" SYSFS{features}="0x0" SYSFS{ifindex}="2" SYSFS{iflink}="2" SYSFS{addr_len}="6" [...] Note importante: dans la version Udev (0.056) de Sarge, les informations sont présentées avec le signe «=» (KERNEL="eth0"). Dans les versions plus récentes, notamment la version 0.092 (à la date de rédaction de ce document) de SID, les informations sont présentées avec un double signe «==» (ex.: KERNEL=="eth0"). La carte qui a pour nom logique eth0 est identifiée selon ces informations. Parmi elles, seule l'adresse Mac ( 0f:fc:ff:df:df:3d ) est unique. On se servira donc de cette adresse pour identifier à coup sûr notre carte et lui attribuer la bonne interface logique. Il suffit de le dire à Udev qui utilise des règles situées dans le répertoire /etc/udev. Créer un fichier ethernet.rules dans ce répertoire: # touch /etc /udev/udev.d/00ethernet.rules Puis mettre les règles suivantes dans ce fichier : #echo KERNEL=\"eth*\", SYSFS{address}=\"0f:fc:ff:df:df:3d\", NAME="eth0" >> /etc/udev/ethernet.rules Et pour la carte eth1 : #echo KERNEL=\"eth*\", SYSFS{address}=\"af:f5:f8:df:8f:3d\", NAME="eth1" >> /etc/udev/ethernet.rules Pour voir le contenu du fichier : #cat /etc/udev/udev.d/ethernet.rules qui renvoie le contenu de ce fichier. Créer un lien vers ce fichier # ln -sf /etc/udev/ethernet.rules /etc/udev/udev.d/00ethernet.rules Si les informations sont correctes (vérifier qu'il n'y a aucune erreur dans les adresses Mac),vous pouvez redémarrer le serveur : 18 /45

5-Configuration du réseau # reboot Une fois le serveur redémarre, vérifier que les interfaces logiques eth0 et eth1 ont bien été attribuées aux bonnes cartes réseau. 19 /45

6-Configuration du parefeu 6- CONFIGURATION DU PAREFEU 6.1- Installation de Shorewall Installer Shorewall: # apt-get install shorewall Éditer le fichier /etc/default/shorewall Remplacer startup=0 par startup=1 Copier les fichiers d'exemples de configurations : # cp /usr/share/doc/shorewall/default-config/* /etc/shorewall/ 6.2- Configuration les fichiers copiés sont : zones : définit des zones : locale, internet, dmz; interfaces : attribue à caque interface (eth0, eth1, etc) une zone; rules: contient la liste des exceptions; policy: politique par défaut des zones; masq: translation d'adresses pour tout un réseau; nat : translation d'adresse pour un hôte particulier; blacklist : pour bloquer certaines adresses IP ou MAC ou des sous-réseaux tunnels : créer des tunnels (Gre, IpSec) dont l'une des extrémités est le firewall maclist : liste des adresses MAC du réseau 6.2.1- Configurer Shorewall Éditer le fichier /etc/shorewall/zones Nous allons créer deux zones: une par carte réseau : locale (loc) et internet (net). Sous la ligne 24 : #ZONE DISPLAY COMMENTS 20 /45

6-Configuration du parefeu ajouter : net Internet Internet loc Local Réseau Local Enregistrer les modifications et fermer le fichier. Maintenant, il faut attribuer chaque carte à une zone. Pour cela, éditer le fichier /etc/shorewall/interfaces Sous la ligne #ZONE INTERFACE BROADCAST OPTIONS, ajouter ces deux lignes: net eth0 detect routefilter,tcpflags,nobogons loc eth1 detect Si vous avez affecté l'interface eth0 à l'accès internet et eth1 au réseau local, le cas échéant, il faudra inverser. Ensuite, il faut indiquer au parefeu que nous voulons faire du Nat (Network address Translation): le trafic local (eth1) sera translaté au travers de l'interface eth0 Ouvrir le ficher /etc/shorewall/masq Aller à la fin du fichier, en dessous de la ligne 199 qui commence par #INTERFACESUBNET ADDRESS PROTO... Ajouter la ligne (Cf. exemple 1 du fichier) eth0 eth1 - Enregistrer le fichier. 6.2.2- Les règles Éditer le fichier /etc/shorewall/policy A la fin du fichier, juste au dessus de la dernière ligne qui commence par #LAST LINE, insérer les lignes suivantes: loc all ACCEPT $FW all ACCEPT net all DROP all all REJECT 21 /45

6-Configuration du parefeu Première ligne : le trafic local est accepté. Deuxième ligne : le trafic qui passe par le firewall est accepté (pour y être analysé). Troisième ligne : le trafic internet (qui ne passerait pas par le firewall) est ignoré. Quatrième ligne : tout le reste est rejeté. 6.2.3- Configuration générale de ShoreWall Éditer le fichier /etc/shorewall/shorewall.conf Rechercher la ligne (vers la ligne 353) qui commence par IP_FORWADING=Keep Mettre: IP_FORWADING=On Rechercher la ligne (vers la ligne 733) qui commence par DROPINVALID=No Mettre : DROPINVALID=Yes Enregistrer puis fermer le fichier. 6.2.4- Test de la configuration de ShoreWall Taper sur la console : # shorewall check ShoreWall effectue la validation de votre configuration. A la fin du test, devrait s'afficher «Configuration Validated». Ensuite, il faut démarrer effectivement le parefeu. Sur la console taper : # shorewall start On peut vérifier que notre firewall est actif en listant les règles appliquées actuellement: # iptables -L Une longue liste de règles devrait apparaître. 22 /45

7-Installation d'un proxy DNS / serveur DHCP 7- INSTALLATION D'UN PROXY DNS / SERVEUR DHCP Le logiciel Dnsmasq est un serveur cache DNS. Il possède une fonctionnalité supplémentaire: il intègre un serveur DHCP. Il existe un logiciel spécifique pour faire serveur DHCP mais dans le cas d'un petit réseau, Dnsmasq suffit amplement. # apt-get install dnsmasq 7.1- Configurer dnsmasq Éditer le fichier /etc/dnsmasq faire les modifications suivantes : domain-needed bogus-priv interface=eth1 expand-hosts domain=local.home dhcp-range=172.16.1.200,172.16.1.220,255.255.255.0,24h dhcp-host=00:11:22:33:44:55,toto,172.16.1.20 cache-size=256 D'après la documentation de dnsmasq, il n'est pas besoin de spécifier l'adresse IP du routeur, dnsmasq considérant qu'il est installé sur le routeur: il donnera l'adresse de la machine sur laquelle il est installé. 7.2- Quelques explications interface=eth1 : interface sur laquelle le serveur Dhcp sera en écoute (réseau local) on a créé un domaine local, local.home. ce domaine est uniquement valide sur notre réseau local: on veillera à ne pas prendre un domaine valide (comme google.fr ou autre). On peut prendre ce que l'on veut mais, pour éviter tout problème, on rajoutera à la fin une extension non valide (.home ici). dhcp-range : étendue de l'adresse sous la forme: dhcp-range=adressedebut,adressefin,netmask,dureebail dhcp-host: permet d'attribuer une adresse IP à un hôte spécifique selon son adresse MAC. Remplacer l'exemple par vos valeurs. 23 /45

7-Installation d'un proxy DNS / serveur DHCP # apt-get install resolvconf 24 /45

8-Installation du contrôle parental 8- INSTALLATION DU CONTRÔLE PARENTAL La solution de filtrage est basée sur deux logiciels: squid et dansguardian. Il existe un autre logiciel qui peut remplacer DansGuardian: SquidGuard. Mais celui-ci n'est pas très souple et la configuration moins facile. De plus, DansGuardian me paraît plus efficace car il analyse le contenu des pages ce que ne fait pas SquidGuard dont le filtrage est plutôt basé sur une liste noire (blacklist). Toutefois, DansGuardian peut utiliser la liste noire établie pour SquidGuard. Ce chapitre explique : l'installation de Squid et DansGuardian; le paramétrage de ces logiciels; l'authentification des utilisateurs par squid; l'utilisation de la liste noire utilisée par l'éducation nationale. 8.1- Installation # apt-get install dansguardian squid squid-common Squid est un serveur proxy. Il va aussi servir à authentifier les utilisateurs du réseau local qui se connectent à internet. Au moment de la connexion, ils devront saisir un nom d'utilisateur et un mot de passe. Dansguardian assure quant à lui le filtrage des pages visitées et des urls. 8.2- Configurer Dansguardian Éditer le fichier /etc /dansguardian/dansguardian.conf Mettre ou modifier les options suivantes: reportinglevel = 3 languagedir = '/etc/dansguardian/languages' 25 /45

8-Installation du contrôle parental language = 'french' loglevel = 2 logexceptionhits = on logfileformat = 1 #filterip = filterport = 8080 proxyip = 127.0.0.1 proxyport = 3128 accessdeniedaddress = 'http://localhost/cgi-bin/dansguardian.pl' nonstandarddelimiter = on usecustombannedimage = 1 custombannedimagefile = '/etc/dansguardian/transparent1x1.gif' filtergroups = 1 filtergroupslist = '/etc/dansguardian/filtergroupslist' bannediplist = '/etc/dansguardian/bannediplist' exceptioniplist = '/etc/dansguardian/exceptioniplist' banneduserlist = '/etc/dansguardian/banneduserlist' exceptionuserlist = '/etc/dansguardian/exceptionuserlist' showweightedfound = on weightedphrasemode = 2 urlcachenumber = 1000 urlcacheage = 900 phrasefiltermode = 2 preservecase = 0 hexdecodecontent = 0 forcequicksearch = 0 reverseaddresslookups = off reverseclientiplookups = off createlistcachefiles = on maxuploadsize = -1 maxcontentfiltersize = 256 usernameidmethodproxyauth = on usernameidmethodntlm = off # **NOT IMPLEMENTED** usernameidmethodident = off preemptivebanning = on forwardedfor = off 26 /45

8-Installation du contrôle parental Note importante Les mises à jour des logiciels peuvent être impactées par le mise en place d'un proxy. Il conviendra au cas par cas de fournir l'adresse du proxy et le port. Ainsi pour les distributions Debian ou Ubuntu (et dérivées), il suffit de renseigner le fichier /etc/apt/apt.conf (sur 1 seule ligne): Acquire::http::Proxy "http://user:pass@10.0.0.100:80 80"; en remplaçant le couple user et pass par celui que vous utilisez dans squid. usexforwardedfor = off logconnectionhandlingerrors = on maxchildren = 120 minchildren = 8 minsparechildren = 4 preforkchildren = 6 maxsparechildren = 32 maxagechildren = 500 ipcfilename = '/tmp/.dguardianipc' urlipcfilename = '/tmp/.dguardianurlipc' nodaemon = off nologger = off softrestart = off 8.3- Configurer Squid Éditer le fichier /etc/squid/squid.conf Modifier ou décommenter les paramètres suivants: visible_hostname papinux http_port 3128 cache_effective_user proxy cache_effective_group proxy cache_mem 8 MB maximum_object_size 4096 KB cache_dir ufs /var/spool/squid 500 32 256 cache_access_log /var/log/squid/access.log cache_store_log none hierarchy_stoplist cgi-bin? acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY hosts_file /etc/hosts refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern. 0 20% 4320 auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/users/passwd auth_param basic children 5 27 /45

8-Installation du contrôle parental auth_param basic realm Squid Proxy-Caching Web Server auth_param basic credentialsttl 2 hours acl password proxy_auth REQUIRED http_access allow password acl all src 0.0.0.0/0.0.0.0 acl lan src 192.168.2.0/255.255.255.0 acl localhost src 127.0.0.1/255.255.255.255 acl SSL_ports port 443 445 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 70 # gopher acl Safe_ports port 443 445 # https acl CONNECT method CONNECT http_access deny!safe_ports http_access deny CONNECT!SSL_ports http_access allow localhost http_access allow lan http_access deny all acl Safe_ports port 631 # cups acl purge method PURGE acl CONNECT method CONNECT http_access allow purge localhost http_access deny purge http_reply_access allow all icp_access allow all coredump_dir /var/spool/squid redémarrer Squid: # /etc/init.d/squid restart 8.3.1- Quelques explications: cache_mem 8 Mb : taille du cache mémoire; Vous pouvez l'augmenter. maximum_object_size 4096 KB : taille d'un unique objet; par exemple, si une page contient un fichier image dont le poids est inférieur à 4096 KB (soit 4 MB), alors ce fichier sera mis en cache; le cas échéant, il ne sera pas mis en 28 /45

8-Installation du contrôle parental cache. cache_dir ufs /var/spool/squid 250 16 256: 250 (MB) la taille du cache disque; 16 : nombre de sous répertoires 1er niveau; 256 : nombre de sous-répertoires niveaux suivants. Vérifiez bien que vous avez l'espace nécessaire sur votre partition! cache_access_log /var/log/squid/access.log : adresse du fichier de journalisation; cache_store_log none : pas de fichier de journalisation pour les objets. 8.4- Authentification 8.4.1- Installation de htpasswd Nous avons besoin du programme htpasswd pour crypter les mots de passe. Ce programme fait partie du paquet apachecommon : # apt-get install apache-common 8.4.2- Création d'un utilisateur : Création du répertoire où sera stocké le fichier passwd: # mkdir -p /etc/pwd_files # cd /etc/pwd_files Créer un utilisateur (par exemple chaque enfant aura son login et son mot de passe) # htpasswd -c passwd victor On vous demandera de saisir un mot de passe puis de le confirmer. L'option -c passwd crée un fichier passwd dans le répertoire courant. Par la suite, si vous souhaitez rajouter un ou plusieurs utilisateurs, il suffira de taper les commandes suivantes: # cd /etc/pwd_files # htpasswd passwd pierre Fournir un mot de passe puis confirmer. 29 /45

8-Installation du contrôle parental 8.4.3- Modification des règles du parefeu Éditer le fichier /etc/shorewall/rules et y inscrire les règles suivantes: ACCEPT loc $FW tcp 8080 ACCEPT $FW loc tcp 80,443 REJECT loc net tcp 80,443 ACCEPT loc net udp 53 8.4.4- Vérification Maintenant, il faut vérifier que tout fonctionne parfaitement. A partir d'un ordinateur du réseau, lancer un navigateur. Rechercher l'endroit où l'on configure le proxy: 8.4.4.1- Firefox sous Linux Aller dans le menu Édition -> Préférences -> Onglet général -> Paramètres de connexion : Cocher Configuration manuelle du proxy Dans la zone Proxy HTTP saisir l'adresse IP du proxy soit 172.16.1.100 et le numéro du port soit 8080; Cocher Utiliser ce proxy pour tous les protocoles Valider par Ok puis fermer la fenêtre des préférences. 30 /45

8-Installation du contrôle parental 8.4.4.2- Konqueror Aller dans le menu Configuration -> Configurer Konqueror -> Dans la partie gauche chercher l'option Serveur Mandataire (Proxy)-> Cocher Spécifier à la main la configuration du serveur mandataire (proxy) -> Cliquer sur le bouton Configuration -> Cocher Utiliser le même serveur mandataire (proxy) pour tous les protocoles. dans la zone HTTP saisir l'adresse IP du proxy soit 172.16.1.100 et le port qui doit être à 8080. 31 /45

8-Installation du contrôle parental 8.4.4.3- Opera Menu Outils -> Préférences -> Onglet Avancés -> Réseau -> Serveurs proxy 8.4.4.4- Autres navigateurs Internet Explorer: Menu Outils -> Options Internet. 8.4.5- Problèmes les enfants comprennent vite, surtout s'ils vous ont vu faire, comment enlever le proxy. Il est dommage qu'aucun des navigateurs n'ait un mot de passe pour empêcher la modification du proxy. Si vous avez plusieurs machines, il vous faudra les configurer une à une ainsi que tous les navigateurs installés dessus. Il existe plusieurs possibilités pour régler ces problèmes: rediriger, grâce au firewall ShoreWall, toutes les requêtes HTTP, HTTPS vers le proxy sans avoir à modifier les paramètres des navigateurs: il s'agit du proxy transparent. Toutefois, dans cette configuration, nous perdons l'authentification (d'après la Faq de Squid, ce n'est pas possible) interdire au niveau du parefeu Shorewall les connexions vers les ports 80 (http) et 443 (https). Il faudra néanmoins toujours modifier les paramètres de connexion du ou des navigateur(s). Mais si les paramètres du proxy sont 32 /45