Vous êtes sur la page 1sur 45

ECOLE SUPERIEURE POLYTECHNIQUE

DEPARTEMENT GENIE INFORMATIQUE

ECOLE SUPERIEURE MULTINATIONALE DES TELECOMMUNICATIONS

MEMOIRE DE FIN DE CYCLE Pour lobtention du : DIPLOME DE TECHNICIEN SUPERIEUR EN TELEINFORMATIQUE (DTST) Thme:

MISE EN PLACE D'UN PROXY SQUID SECURISE AVEC AUTHENTIFICATION LDAP


Lieu de stage :

Ecole Suprieure Polytechnique de Dakar

Prsent par :

Encadr par :

Djiby Thiaw

M. Abdoulaye Sall

Anne universitaire : 2009 2010

Mmoire de fin de cycle

Promotion

2008-2010

Table des matires

Table des matires ..................................................................................................................... 1 Table des figures ........................................................................................................................ 3 Avant-propos .............................................................................................................................. 4 Introduction ............................................................................................................................... 5 CHAPITRE I : PRESENTATION GENERALE ..................................................................... 6 I.1. I.1.1. I.1.2. I.1.3. I.2. PRESENTATION DE LESP ........................................................................................... 6 HISTORIQUE ............................................................................................................. 6 ORGANISATION ......................................................................................................... 6 OBJECTIFS ET MISSIONS ........................................................................................... 8 PRESENTATION DE LESMT ....................................................................................... 9 Historique ............................................................................................................ 9 Formations........................................................................................................... 9 Organigramme................................................................................................... 10

I.2.1. I.2.2. I.2.3.

CHAPITRE II : PRESENTATION DES OUTILS NECESSAIRES ................................... 11 II.1. LE PROXY SQUID ..................................................................................................... 11

II.1.1. Dfinition ........................................................................................................... 11 II.1.2. Fonctionnement et Rles................................................................................... 11 II.1.2.1. II.1.2.2. II.2. Fonctionnement ......................................................................................... 11 Rle ............................................................................................................. 12

LANNUAIRE LDAP .................................................................................................. 13

II.2.1. Dfinition ........................................................................................................... 13 II.2.2. Fonctions ........................................................................................................... 13 II.2.3. Structure ............................................................................................................ 14 CHAPITRE III : MISE EN UVRE .................................................................................... 16 III.1. MISE EN PLACE DU PROXY SQUID ......................................................................... 16 Configuration matrielle et logicielle ........................................................... 16 Installation ..................................................................................................... 17

III.1.1. III.1.2.

III.1.2.1. Installation manuelle ................................................................................ 17 III.1.2.2. Installation automatique ........................................................................... 18 III.1.3. Configuration ................................................................................................. 18

Prsent et soutenu par Djiby Thiaw

Mmoire de fin de cycle

Promotion

2008-2010

III.1.3.1. Configuration de la section rseau ........................................................... 19 III.1.3.2. Configuration de la taille du cache .......................................................... 19 III.1.3.3. Chemin daccs aux fichiers de SQUID .................................................. 20 III.1.3.4. Comportement avec les applications externes .......................................... 21 III.1.3.5. Les temps dattente .................................................................................... 22 III.1.4. III.1.5. III.1.6. III.2. Contrle des accs.......................................................................................... 22 Configuration manuelle des clients et test de fonctionnalit ....................... 24 Forcer le passage par SQUID : proxy transparent ..................................... 27

AUTHENTIFICATION AVEC LDAP ........................................................................... 28 Installation de LDAP ..................................................................................... 29 Configuration de LDAP ................................................................................ 29 Ajout dentres dans lannuaire LDAP ........................................................ 30 Configuration de SQUID pour lauthentification ........................................ 32

III.2.1. III.2.2. III.2.3. III.2.4. III.3.

SQUID AVEC SQUIDGUARD ................................................................................... 33 Dfinition ....................................................................................................... 33 Installation et Configuration ......................................................................... 34

III.3.1. III.3.2. III.4.

SECURISATION DU PROXY ....................................................................................... 38 Association avec SSL ..................................................................................... 38

III.4.1.

III.4.1.1. SSL avec OpenLDAP ................................................................................ 38 III.4.1.2. SSL avec SQUID ....................................................................................... 39 III.4.2. Association avec un antivirus ........................................................................ 40

Conclusion ............................................................................................................................... 42 Glossaire .................................................................................................................................. 43 Bibliographie / Wbographie ............................................................................................ 44

Prsent et soutenu par Djiby Thiaw

Mmoire de fin de cycle

Promotion

2008-2010

Table des figures

Figures :
Figure 1: Organigramme de lESMT ....................................................................................... 10 Figure 2: Principe de fonctionnement ...................................................................................... 12 Figure 3: Exemple de DIT ........................................................................................................ 15 Figure 4: Configuration manuelle dInternet Explorer ............................................................ 25 Figure 5: Accs Internet interdit au client ............................................................................. 25 Figure 6: Premier tlchargement du fichier ............................................................................ 26 Figure 7: Deuxime tlchargement du fichier ........................................................................ 27 Figure 8: Installation annuaire LDAP ...................................................................................... 29 Figure 9: Fichier ldif des entres .............................................................................................. 31 Figure 10: Ajout des entres dans lannuaire ........................................................................... 31 Figure 11: Authentification requise par le proxy ..................................................................... 33 Figure 12: Configuration minimum de SquidGuard ................................................................ 34 Figure 13: Blocage Internet des clients par SquidGuard .......................................................... 35 Figure14: Les listes de destination de SquidGuard .................................................................. 36 Figure 15: Exemple de configuration de SquidGuard .............................................................. 37 Figure 16: Installation de Clamav ............................................................................................ 40

Prsent et soutenu par Djiby Thiaw

Mmoire de fin de cycle

Promotion

2008-2010

Avant-propos

Lcole suprieure polytechnique (E.S.P) forme en deux annes dtudes des techniciens suprieurs, et en cinq ans des ingnieurs dans plusieurs spcialits. Dans le cadre de leur formation les tudiants de fin de chaque cycle sont tenus deffectuer un stage pratique au sein dune entreprise ou dun service informatique. Ce stage est effectu dans le but : De fournir aux tudiants la possibilit de mettre en uvre les connaissances thoriques acquises tout au long de leur formation. Dinitier les futurs techniciens suprieurs aux ralits du milieu professionnel et de leur permettre de se faire la main sur des projets denvergures. Au terme de ce stage un mmoire doit tre rdig sur un problme qui a t tudi durant ce stage.

Prsent et soutenu par Djiby Thiaw

Mmoire de fin de cycle

Promotion

2008-2010

INTRODUCTION

Linformatique est aujourd'hui devenue trs ouverte au monde extrieur du fait de la dmocratisation de l'ordinateur personnel et l'avnement de l'Internet. Ce dernier est un outil incontournable et il runit plein dutilisateurs de part le monde. On compte environ 1,73 milliards dutilisateurs (septembre 2009) et daprs Netcraft, socit anglaise spcialise dans la scurit internet, il y aurait en janvier 2010 plus de 207 millions de sites web dans le monde. L'internet est alors de plus en plus accessible, mais il recle de nombreux dangers, souvent ignors par beaucoup dutilisateurs do se pose un problme de scurit. Les rseaux locaux sont frquemment relis Internet via des passerelles ou routeurs, ils utilisent le plus souvent le protocole TCP/IP. Dans notre tude, nous allons utiliser un proxy pour relier notre rseau local lInternet. Tous nos utilisateurs vont alors passer par notre proxy pour lobtention de pages Web. Notre choix de proxy sest port sur SQUID qui , en plus dtre libre, est trs souple, lger et facile mettre en place. Le rle initial du serveur proxy ou serveur mandataire est de relayer des requtes HTTP entre un poste client et un serveur. En plus de ce rle, il peut jouer une fonction de scurit en constituant une barrire entre Internet et notre rseau local. Notre serveur proxy SQUID va aussi tre coupl un annuaire LDAP pour lauthentification des utilisateurs de notre rseau. Nous allons y intgrer un antivirus et aussi scuriser lauthentification des utilisateurs avec SSL pour plus de scurit. Pour mener bien ce travail, nous allons dans un premier temps faire une prsentation des deux grandes coles lESP et lESMT, ensuite nous prsenterons les diffrentes technologies et outils ncessaires pour ce travail et nous terminerons par la mise en place dun proxy SQUID scuris avec une authentification via LDAP.

Prsent et soutenu par Djiby Thiaw

Mmoire de fin de cycle

Promotion

2008-2010

CHAPITRE I Chapitre I : Prsentation gnrale


I.1. Prsentation de lESP

I.1.1. Historique
LEcole Suprieure Polytechnique de Dakar (ESP) est un tablissement public caractre administratif dot de la personnalit juridique et de lautonomie financire. Lcole Suprieure Polytechnique fait partie intgrante de luniversit Cheikh Anta DIOP de Dakar. Elle a t cre par la loi n 94-78 du 24 novembre 1994. A lorigine, lESP regroupait en son sein : La division industrielle de lEcole Nationale Suprieure Universitaire de Technologie (ENSUT) LEcole Polytechnique de This (EPT) La section technique industrielle de lEcole Normale Suprieure dEnseignement Technique et Professionnel (ENSETP) A la suite de diverses rformes intervenues, notamment la revitalisation de lENSETP, la cration de lUniversit de This et le rattachement de lInstitut Suprieure de Gestion lESP, lEcole Suprieure Polytechnique est seulement compose prsentement de la division tertiaire de lex ENSUT.

I.1.2. Organisation
Etablissement public vocation rgionale, sous la tutelle du Ministre de lEducation, LEcole Suprieure Polytechnique est rattache lUniversit Cheikh Anta DIOP de Dakar. Elle assure des formations dans six dpartements qui la composent. Ces formations se font en cours du soir comme en cours du jour, aussi bien en formation initiale quen formation continue pour le compte des entreprises, socits et particuliers. Ces six dpartements sont : Prsent et soutenu par Djiby Thiaw

Mmoire de fin de cycle

Promotion

2008-2010

Le dpartement Gnie Informatique : Ce dpartement forme des Techniciens suprieurs, Assistants ingnieurs, des Ingnieurs en Informatique, TlInformatique et en Tlcommunication. Les tudiants y mnent des activits de recherche dans les domaines mentionns ci-dessous visant au perfectionnement permanent, l'adaptation et la participation l'volution scientifique et technologique. On y procde des expertises dans le cadre de la formation l'intention des entreprises publiques et prives. Le dpartement gnie informatique offre les formations suivantes :

DUT (Diplme Universitaire de Technologie)


Informatique Tlcoms et rseaux

DIC (Diplme d'Ingnieur de Conception)

Informatique

DST (Diplme Suprieur de Technologie)


Informatique Tlinformatique en partenariat avec lcole Suprieure Multinationale de Tlcommunication (ESMT)

DIT (Diplme d'Ingnieur Technologue)

Informatique

MP (Master Professionnel) Tlinformatique (en partenariat avec lESMT)

Formation la carte

Logiciels libres Gnie logiciel

Le dpartement gnie Mcanique

Prsent et soutenu par Djiby Thiaw

Mmoire de fin de cycle

Promotion

2008-2010

Le dpartement Gnie Civil Le dpartement Gnie Electrique Le dpartement Gnie Chimique et Biologie Applique Le dpartement Gestion

I.1.3. Objectifs et missions


LESP a pour objectif et missions de : Former tant sur le plan thorique que pratique des : Techniciens Suprieurs Ingnieurs Technologues Ingnieurs de Conception Managers en Gestion dEntreprises Docteurs Dispenser un enseignement suprieur en vue de prparer aux fonctions d'encadrement dans : la Production la Recherche Applique les Services Organiser des enseignements et des activits de recherche visant : au perfectionnement permanent l'adaptation et la participation l'volution scientifique et technologique lvolution conomique et managriale Procder des expertises l'intention des entreprises publiques et prives Pour plus de dtails, on peut se rfrer au site officiel de lESP (wbographie n1).

Prsent et soutenu par Djiby Thiaw

Mmoire de fin de cycle

Promotion

2008-2010

I.2.

Prsentation de lESMT

I.2.1. Historique
L'Ecole Suprieure Multinationale des Tlcommunications (ESMT) de Dakar a t cre en 1981 l'initiative de 7 pays d'Afrique de l'Ouest qui sont le Bnin, le Burkina Faso, le Mali, la Mauritanie, le Niger, le Sngal et le Togo avec le concours de la coopration internationale. Cette gense s'est faite dans le cadre d'un projet de programmes des nations unies pour le dveloppement (PNUD). Depuis 1986, l'cole dispose d'un statut diplomatique. En 1998, la Guine Conakry s'ajoutait comme pays fondateur.

I.2.2. Formations
LESMT dispose des cours en formation initiale ou continue. En formation initiale, nous avons plusieurs domaines dtudes qui sont : Le Cycle Prparatoire Intgr (CPI) Le Diplme de Technicien Suprieur (DTS) : avec quatre spcialisations qui sont : Technique Tlcom, Technico-commercial, Rseau et Donnes, Tlinformatique ( en partenariat avec LESP) La Licence Professionnelle (LP) : avec deux spcialisations qui sont la Licence Professionnelle en TIC et la Licence Gnrale en Science de lIngnieur Le Diplme dIngnieur : avec trois spcialisations : Ingnieur des Travaux Tlcoms (IGTT), Ingnieur de Conception (INGC), Ingnieur en Tlinformatique (en partenariat avec lESP) Le Mastre Spcialis : en Gestion des Tlcoms, Rseaux Tlcoms et Tlinformatique (en partenariat avec lESP) Le Mastre Professionnel : en Politique et Rgulation des TIC et Rseaux et Services TIC

Prsent et soutenu par Djiby Thiaw

Mmoire de fin de cycle

Promotion

2008-2010

L'ESMT dveloppe aussi des sessions de formation continue. Sous forme de sminaires et d'ateliers, elles participent au perfectionnement des techniciens, ingnieurs et cadres des entreprises et institutions africaines.

I.2.3. Organigramme
Le schma ci-dessous, tir du site officiel de LESMT (wbographie n2), illustre lorganisation et la structure de LESMT.

Figure 1: Organigramme de lESMT

Prsent et soutenu par Djiby Thiaw

10

Mmoire de fin de cycle

Promotion

2008-2010

CHAPITRE II

CHAPITRE II : Prsentation des outils ncessaires


II.1. Le proxy SQUID
II.1.1. Dfinition

Un serveur proxy aussi appel serveur mandataire est l'origine une machine faisant fonction d'intermdiaire entre les ordinateurs d'un rseau local et internet. La plupart du temps le serveur proxy est utilis pour le web, il s'agit alors d'un proxy HTTP. Il nous permettra ainsi de grer laccs internet aux utilisateurs de notre rseau local en fonction des heures daccs, des ports de destination dun service, dIP sources, etc. Il permet aussi de mettre en cache les sites les plus visits afin dacclrer le trafic. Comme serveur proxy, nous allons utiliser le serveur SQUID qui est un logiciel libre distribu selon les termes de la licence GNU GPL. Son rle initial est de relayer des requtes HTTP entre un poste client de notre rseau local et un serveur web se trouvant sur Internet. Il peut aussi assurer dautres fonctions essentielles.

II.1.2.

Fonctionnement et Rles

II.1.2.1. Fonctionnement
Le principe de fonctionnement basique d'un serveur proxy est assez simple : il s'agit d'un serveur "mandat" par une application pour effectuer une requte sur Internet sa place. Ainsi, lorsqu'un utilisateur se connecte internet l'aide d'une application cliente configure pour utiliser un serveur proxy, celle-ci va se connecter en premier lieu au serveur proxy et lui donner sa requte. Le serveur proxy va alors se connecter au serveur que l'application cliente cherche joindre et lui transmettre la requte. Le serveur va ensuite donner sa rponse au proxy, qui va son tour la transmettre l'application cliente. Les objets consults par les clients sur internet, sont stocks en cache disque par le serveur. partir du deuxime accs, la

Prsent et soutenu par Djiby Thiaw

11

Mmoire de fin de cycle

Promotion

2008-2010

lecture se fera en cache, au lieu d'tre ralise sur le serveur d'origine. De ce fait il permet d'acclrer nos connexions l'internet en plaant en cache les documents les plus consults.

Figure 2: Principe de fonctionnement

II.1.2.2. Rle
Le serveur proxy SQUID peut assurer plusieurs rles parmi lesquels : Le rle de cache : En jargon informatique, une mmoire cache sert conserver localement des informations qui ont une certaine probabilit de servir nouveau court terme. Un serveur proxy stocke provisoirement les pages web que les utilisateurs vont chercher sur Internet. Si un internaute requiert une information qui se trouve dj dans le cache, il sera servi plus rapidement. Le rle denregistrement : Comme tout serveur qui se respecte, un proxy gnre un fichier journal (log file). On y trouve la trace de toutes les requtes effectues par tous les postes clients dpendant du serveur en question. Le rle de filtre : On peut configurer un serveur proxy de telle sorte qu'il examine le contenu des paquets qu'il reoit pour le compte des clients, et qu'il refuse de transmettre ceux qui ne rpondent pas certains critres. Le rle de scurit : En y ajoutant certains logiciels de scurit, le serveur proxy assure ainsi des fonctions de scurit pour le rseau local.

Prsent et soutenu par Djiby Thiaw

12

Mmoire de fin de cycle

Promotion

2008-2010

Lauthentification : SQUID permet d'authentifier les clients avant qu'ils accdent la ressource qu'ils demandent. Nous utiliserons un serveur LDAP pour authentifier nos utilisateurs.

II.2. Lannuaire LDAP


II.2.1. Dfinition

Un annuaire est un recueil de donnes dont le but est de pouvoir retrouver facilement des ressources (gnralement des personnes ou des organisations) l'aide d'un nombre limit de critres. Cette srie d'articles s'intresse tout particulirement un type spcifique d'annuaires: les annuaires lectroniques. L'implmentation dun annuaire lectronique peut tre totalement diffrente d'un serveur un autre, c'est pourquoi il a t ncessaire de dfinir une interface normalise permettant d'accder de faon standard aux diffrents services de l'annuaire. C'est le rle du protocole LDAP (Lightweight Directory Access Protocol), dont le rle est uniquement de fournir un moyen unique (standard ouvert) d'effectuer des requtes sur un annuaire (compatible LDAP). LDAP est un protocole bas sur TCP/IP qui permet de partager des bases de donnes sur un rseau interne ou externe. Elles peuvent contenir tout type dinformations, des informations sur les personnes, sur des ressources. Dans notre cas, nous utilisons lannuaire Open Source appel OpenLDAP qui est dvelopp sous licence GNU GPL. Il nous est possible de faire des recherches dans la base en employant plusieurs critres et aussi de faire des modifications et suppressions. Mais contrairement un SGBD, un annuaire est prvu pour tre plus sollicit en lecture qu'en criture. Cela signifie qu'un annuaire est conu pour tre plus souvent consult que mis jour. En effet, comme un annuaire est beaucoup plus lu que modifier, il a t optimis en lecture et ne possde pas les mcanismes de transaction complexe que les SGBD possdent pour traiter de gros volumes de donnes.

II.2.2.

Fonctions

Comme l'annuaire tlphonique, la premire fonction de l'annuaire LDAP est de retrouver facilement les coordonnes d'une personne : son adresse lectronique, son adresse professionnelle, son tlphone professionnel en fonction de diffrents critres de recherche. Prsent et soutenu par Djiby Thiaw

13

Mmoire de fin de cycle

Promotion

2008-2010

De nombreuses applications ncessitant une authentification sont aujourdhui capables dinterroger un annuaire LDAP pour vrifier lidentit dun utilisateur grce un couple login et mot de passe. Cest cette fonction qui va le plus nous intresser dans notre tude. Grce cet annuaire, notre proxy SQUID va pouvoir authentifier ses utilisateurs.

II.2.3.

Structure

Les donnes LDAP sont structures dans une arborescence hirarchique qu'on peut comparer au systme de fichier Unix. Chaque nud de l'arbre correspond une entre de l'annuaire ou Directory Service Entry (DSE) et au sommet de cette arbre, appel Directory Information Tree (DIT), se trouve la racine ou suffixe. Ce modle est en fait repris de X500, mais contrairement ce dernier, conu pour rendre un service d'annuaire mondial (ce que le DNS fait par exemple pour les noms de machines de l'Internet), l'espace de nommage d'un annuaire LDAP n'est pas inscrit dans un contexte global. Les entres correspondent des objets abstraits ou issus du monde rel, comme une personne, une imprimante, ou des paramtres de configuration. Elles contiennent un certain nombre de champs appels attributs dans lesquelles sont stockes des valeurs. Chaque serveur possde une entre spciale, appele root Directory Specific Entry (rootDSE) qui contient la description de l'arbre et de son contenu. Un objet est constitu d'un ensemble de paires cls/valeurs appeles attributs permettant de dfinir de faon unique les caractristiques de l'objet stocker. Par analogie avec la terminologie objet on parle ainsi de classe d'objet pour dsigner la structure d'un objet, c'est--dire l'ensemble des attributs qu'il doit comporter. De cette faon un objet est un ensemble d'attributs avec des valeurs particulires. LDAP utilise le format LDAP Data Interchange Format (LDIF) qui permet de reprsenter les donnes LDAP sous format texte standardis, il est utilis pour afficher ou modifier les donnes de la base.

Prsent et soutenu par Djiby Thiaw

14

Mmoire de fin de cycle

Promotion

2008-2010

dc=esp, dc=sn

ou=profs

ou=etudiants

cn=sall uid=100
Dc : domain component Ou : organizational units Cn : common name Uid : user identifier

cn=ouya uid=101

cn=djiby uid=200

cn=fatou uid=201

Figure 3: Exemple de DIT

Prsent et soutenu par Djiby Thiaw

15

Mmoire de fin de cycle

Promotion

2008-2010

CHAPITRE III

Chapitre III : Mise en uvre


III.1. Mise en place du proxy SQUID
III.1.1. Configuration matrielle et logicielle

Avant dinstaller et dutiliser SQUID, il est recommand de bien choisir son matriel et le systme dexploitation du serveur. Durant son lancement, SQUID a besoin de faire beaucoup dactions, notamment en rapport avec les caches, qui seront consommateurs de CPU. Ainsi, le matriel minimum recommand est un Pentium III 550MHz, la RAM est un composant vital pour SQUID car il rside en mmoire RAM et y stocke ses composants et les objets les plus demands par les clients. Lorsque le cache est activ, il faut compter 10Mb de RAM par GIGA de donnes en cache. On doit alors prvoir de l'espace disque suffisante pour le stockage des donnes manipules par SQUID notamment le cache disque, les logs etc.. Il faut ainsi noter que le choix de la configuration matrielle du serveur est important. Le choix dune bonne carte rseau est ncessaire parce quune carte rseau sous dimensionne par rapport au rseau sur lequel est branch le Proxy provoquerait trs rapidement un engorgement important et ralentira les demandes des clients. Il est donc conseil l dutiliser au minimum une carte rseau 100Mbps. Il faut aussi bien vrifier auparavant que la machine redmarre bien toute seule s'il y a coupure d'lectricit en vrifiant dans le BIOS si il y a une option pour mettre en route la machine au rtablissement du courant, si ce n'est pas le cas l'utilisation d'une telle machine est proscrire. Concernant les systmes dexploitation, SQUID est disponible sur beaucoup darchitectures et systmes, en particulier les diffrentes distributions Linux. Il est pr frable d'utiliser une version de Linux rcente et stable. Dans notre tude, nous installerons SQUID sur la dernire version de Ubuntu actuellement disponible qui est la 10.04. Notre rseau local est le 192.168.2.0 et notre proxy va sappeler firewall_esp.

Prsent et soutenu par Djiby Thiaw

16

Mmoire de fin de cycle

Promotion

2008-2010

III.1.2.

Installation

III.1.2.1. Installation manuelle


Avant de commencer, il faut au pralable tlcharger la dernire version stable de SQUID. On peut l'acqurir sur le site officiel de SQUID qui est http://www.squid-cache.org. La dernire version actuelle stable est la version 2.7.STABLE7. Une fois le logiciel au format tar.gz (c'est dire compress sous ce format) tlcharg, on pourra alors l'installer et on suppose que le fichier dcompress sera plac dans le rpertoire /usr/local/src. On le dcompresse via la commande : #tar -zxvf squid-2.7.STABLE7.tar.gz --directory=/usr/local/src On doit obtenir ce rpertoire : /usr/local/src/squid-2.7.STABLE7. Il convient maintenant de compiler SQUID. On se place dans le rpertoire de SQUID : #cd /usr/local/src/squid On passe ensuite la configuration des options de compilation. Squid sera par dfaut install dans le rpertoire /usr/local/squid mais on peut utiliser un autre rpertoire via l'option --prefix. Si on souhaite avoir les messages d'erreurs en franais, on ajoute loption --enable-err-language=French mais on peut aussi faire cela au niveau de la configuration de SQUID. La commande pour la compilation est alors : #./configure --prefix=/usr/local/squid --enable-errlanguage=French Si tout c'est bien pass, il ne reste plus qu' compiler avec la commande : #make all Puis procder linstallation avec la commande : #make install Le fichier INSTALL situ dans la racine du rpertoire /usr/local/src/squid2.7.STABLE7 reprend en partie ce qui vient d'tre expliqu. A la fin de l'installation, les rpertoires suivants seront crs :

Prsent et soutenu par Djiby Thiaw

17

Mmoire de fin de cycle

Promotion

2008-2010

/usr/local/squid : rpertoire de base de SQUID /usr/local/squid/etc : rpertoire contenant la configuration de SQUID /usr/local/squid/bin : rpertoire contenant les binaires et les scripts /usr/local/squid/logs : rpertoire contenant les logs

III.1.2.2. Installation automatique


L'installation automatique de SQUID est relativement facile. Il suffit juste de disposer dune connexion internet, de se connecter en tant que root sur le terminal de la machine et de taper la commande : #apt-get install squid De cette manire, c'est le systme qui se charge de tlcharger tous les fichiers ncessaires c'est dire la dernire version stable disponible dans les dpts et ventuellement les dpendances s'il y en a. L'installation automatique est ainsi recommande car cette dernire se charge d'acqurir notre place tous les fichiers ncessaires et aussi de les placer l'endroit qu'il faut. Le fichier de configuration de SQUID se trouvera dans le rpertoire /etc/squid et portera le nom de squid.conf. Les logs se trouveront dans le rpertoire /var/log/squid et le dmon dans le rpertoire /etc/init.d/ sous le nom de squid.

III.1.3.
SQUID se

Configuration
configure via un unique fichier de configuration qui

/etc/squid/squid.conf. Celui-ci est charg au lancement de SQUID qui s'efforcera alors de reflter ce dernier. Chaque ligne du fichier est de la forme suivante : option paramtre [paramtre ...] Les lignes dbutant par un '#' sont des commentaires. Les options non dfinies auront toujours une valeur par dfaut. Toutes les options de ce fichier sont disperses dans plusieurs parties distinctes. Nous dtaillerons les options les plus intressantes de ces parties. Notons que le fichier de base fourni avec les sources est trs largement comment et contient par dfaut 4963 lignes. Pour plus de renseignement et des paramtres plus pousss, il est donc prfrable de consulter la documentation officielle. Prsent et soutenu par Djiby Thiaw

18

Mmoire de fin de cycle

Promotion

2008-2010

III.1.3.1. Configuration de la section rseau


Cette section concerne toutes les configurations rseau de SQUID ayant trait aux adresses IP et ports de communication. Ces configurations rseau concernent les communications entre SQUID et les serveurs distants, les clients et les caches distants. http_port : dfinit le port d'coute de Squid pour les requtes HTTP. Par dfaut, le port sera 3128. Pour plus de scurit, nous changeons ce port par dfaut et nous prenons par exemple le port 8080. http_port 8080 icp_port : dfinit le port d'mission et d'coute des requtes ICP. Par dfaut, le port est 3130. Ceci nous permet de communiquer avec des proxy parents ou voisins. La valeur 0 permet de ne pas utiliser ce service visible_hostname : Nous indiquons ici le nom de notre serveur proxy. Nous lappelons firewall_esp error_directory : Nous indiquins via cette option le rpertoire o se trouvent les messages d'erreurs destins l'utilisateur. Par dfaut, on a:

/usr/share/squid/errors/en et pour avoir ces messages en franais, on met le rpertoire /usr/share/squid/errors/fr la place. Les messages d'erreurs qui apparaitront sur le navigateur du client seront ainsi en franais.

III.1.3.2. Configuration de la taille du cache


cache_mem : correspond au cache mmoire, la valeur dpend de votre systme. Par dfaut SQUID utilise 8 Mo. Cette taille doit tre la plus grande possible afin d'amliorer les performances. Nous dcidons d'utiliser 100MB. cache_mem 100 MB maximum_object_size: permet de spcifier la taille maximale des objets qui seront stocks dans le cache. La taille par dfaut est de 20480 KB.

Prsent et soutenu par Djiby Thiaw

19

Mmoire de fin de cycle

Promotion

2008-2010

minimum_object_size: permet de spcifier la taille minimale des objets qui seront stocks dans le cache. La taille par dfaut est de 0 KB ce qui signifie quil ny a pas de minimum pour les objets. ipcache_size: permet de spcifier le nombre d'adresses IP qui seront enregistres. Sa valeur par dfaut est de 1024

III.1.3.3. Chemin daccs aux fichiers de SQUID


Cache_dir Type RpertoireSource MOctets Level1 Level2 :

permet de dfinir un cache. il est possible de dfinir plusieurs fois cette option afin de multiplier le nombre de cache. Dtaillons les options de ce paramtre : Type : le type de stockage qui sera utilis par Squid pour crire ses donnes. Ce paramtre modifie le comportement de SQUID lors de l'criture sur le disque, ses accs au disque, sa rpartition de donnes sur l'espace qui lui est consacre, etc.. Une liste des types supports est dtaille dans le fichier de configuration de SQUID. Le type utilis par dfaut est ufs RpertoireSource : le rpertoire source de l'arborescence du cache. Le cache de SQUID se prsente sous forme d'une arborescence dans laquelle les objets sont rpartis MOctets : la taille en Mo rserver sur le disque pour ce cache ; Level1 : le nombre de rpertoire de niveau 1 dans l'arborescence du cache. Level2 : le nombre de rpertoire de niveau 2 dans l'arborescence du cache. Par dfaut, on a un cache de 100 MB se trouvant dans le rpertoire /var/spool/squid. On peut ajouter si on veut un autre cache avec le rpertoire de son choix avec la taille que l'on veut. cache_dir ufs /var/spool/squid2 1000 16 256

Prsent et soutenu par Djiby Thiaw

20

Mmoire de fin de cycle

Promotion

2008-2010

access_log DirectoryPath/filename : cest le chemin vers le fichier de access.log qui contient tous les accs au cache. Par dfaut c'est le fichier /var/log/squid/access.log cache_log DirectoryPath/filename : idem que pour access_log avec le fichier /var/log/squid/cache.log qui contient toutes les informations des activits de SQUID. cache_store_log DirectoryPath/filename : idem que pour access_log avec le fichier /var/log/squid/store.log qui contient toutes les entres et sorties des objets dans le cache Pour ces trois options prcdentes, si on ne souhaite pas avoir de log, on met le paramtre none la place du nom de fichier. debug_options : c'est le niveau de debug. Indiquer 9 pour avoir toutes les traces la place de 1 utilis par dfaut. Attention cela donne de gros fichiers.

III.1.3.4. Comportement avec les applications externes


Cette section dfinit certains paramtres qui modifieront le comportement de SQUID envers les applications qui lui sont extrieurs comme les serveurs distant ou ses applications dlgues. ftp_user : permet de spcifier quel sera le nom d'utilisateur envoy un serveur FTP par SQUID lors d'une connexion en anonymous ftp_list_width : permet de dfinir la longueur maximale des noms de fichier dans une liste. Une fois cette taille dpasse, le nom sera tronqu et des points de suspensions ajouts ftp_passive on|off : permet de spcifier le mode de connexion FTP utilis dns_children : le nombre de processus de demande de DNS rsidant en mmoire. Plus le serveur sera sollicit, plus ce nombre devra tre grand dns_timeout : permet de spcifier un timeout partir duquel SQUID considrera le serveur DNS distant comme tant indisponible

Prsent et soutenu par Djiby Thiaw

21

Mmoire de fin de cycle

Promotion

2008-2010

dns_nameservers : permet de dfinir une liste d'adresse IP de serveur DNS qui remplacera celle lue par dfaut dans le fichier de configuration /etc/resolv.conf sous Linux authenticate_program : permet de spcifier le chemin vers le programme charg de l'authentification des utilisateurs. En fonction du type d'authentification, un chemin vers le fichier de profil peut tre ncessaire en deuxime option authenticate_children : le nombre de processus d'authentification conserver en mmoire RAM.

III.1.3.5. Les temps dattente


Cette section permet de configurer les diffrents timeouts de SQUID connect_timeout : le temps d'attente d'une rponse du serveur distant avant de retourner une page d'erreur de type "connection timeout" au client ; request_timeout : le temps d'attente de Squid entre deux requtes HTTP avant de fermer la connexion ; client_lifetime : le temps maximum qu'un client a le droit de rester connecter SQUID pconn_timeout : le temps d'attente de SQUID avant de fermer une connexion de type persistante ; ident_timeout : le temps maximum d'attente d'une authentification.

III.1.4.

Contrle des accs

Il sagit des options concernant les restrictions daccs aux ressources. Pour contrler tout ce qui passe par votre serveur proxy, vous pouvez utiliser ce que l'on appelle les ACL (Access Control List). Les ACL sont des rgles que le serveur applique. Cela permet par exemple d'autoriser ou d'interdire certaines transactions. On peut autoriser ou interdire en

Prsent et soutenu par Djiby Thiaw

22

Mmoire de fin de cycle

Promotion

2008-2010

fonction du domaine, du protocole, de l'adresse IP, du numro de port, d'un mot et aussi limiter laccs sur des plages horaires. La syntaxe d'une ACL est la suivante : acl aclname acltype string[string2] http_access allow|deny aclname aclname : peut tre n'importe quel nom attribu par l'utilisateur un lment ACL acltype peut prendre comme valeur : src (pour la source) : indication de l'adresse IP du client sous la forme adresse/masque. On peut aussi donner une plage d'adresse sous la forme adresse_IP_debutadresse_IP_fin dst (pour la destination) : idem que pour src, mais on vise l'adresse IP de l'ordinateur cible. srcdomain : Le domaine du client dstdomain : Le domaine de destination time : heure du jour et jour de la semaine url_regex : Une chane contenue dans l'URL urlpath_regex : Une chane compare avec le chemin de l'URL proto : Pour le protocole proxy_auth : Procd externe d'authentification d'un utilisateur maxconn : Nombre maximum de connexions pour une adresse IP cliente string[string2]: paramtres de lACL Exemple 1: Interdire l'accs un domaine : supposons que nous souhaitions interdire l'accs un domaine (par exemple le domaine pas_beau.fr). On a donc acl domaine_bloqu dstdomain pas_beau.fr http_access deny domaine_bloqu

Exemple 2: interdire l'accs aux pages contenant le mot jeu. acl bloqu_jeu url_regex jeu http_access deny bloqu_jeu

Prsent et soutenu par Djiby Thiaw

23

Mmoire de fin de cycle

Promotion

2008-2010

Attention url_regex est sensible aux majuscules/minuscules. Pour interdire JEU, il faut aussi ajouter JEU dans votre ACL. Il n'est pas besoin de rcrire toute l'ACL. On peut ajouter JEU derrire jeu en laissant un blanc comme sparation (cela correspondant l'oprateur logique OU). Exemple 3: Interdire les accs pendant les plages horaires 8h12h et 14h18h en semaine. S Sunday M Monday T Tuesday W Wednesday H Thursday F Friday A Saturday acl matin time MTWH 08:0012:00 acl soir time MTWH 14:0018:00 http_access deny matin reseau_esp http_access deny soir reseau_esp

III.1.5.

Configuration manuelle des clients et test de fonctionnalit

Nous allons procder une configuration manuelle des clients c'est--dire des utilisateurs de notre proxy. Pour ce faire, il faut indiquer au navigateur du client de passer par notre proxy pour pouvoir accder linternet. Nous allons faire la configuration sur les deux navigateurs les plus utiliss au monde qui sont Mozilla Firefox et Internet Explorer Mozilla Firefox 1. 2. 3. 4. 5. Au niveau du menu navigateur, allez dans Outils => Options Cliquez sur longlet Avanc Slectionner le sous-onglet Rseau Cliquer sur le bouton Paramtres Et enfin slectionner Configuration manuelle du proxy puis remplir les champs en donnant ladresse IP du proxy et le port

Internet Explorer 1. 2. 3. 4. Au niveau du menu navigateur, allez dans Outils => Options Internet Cliquez sur longlet Connexions Cliquez sur Paramtres Rseau Et enfin slectionner Utilisez un serveur proxy puis remplir les champs en donnant ladresse IP du proxy et le port

Prsent et soutenu par Djiby Thiaw

24

Mmoire de fin de cycle

Promotion

2008-2010

Figure 4: Configuration manuelle dInternet Explorer

De cette manire, nos clients sont configurs pour passer par notre proxy avant de pouvoir accder internet. Mais par dfaut, SQUID bloque toute les connexions vers internet et limage ci-dessous nous le dmontre.

Figure 5: Accs Internet interdit au client

Prsent et soutenu par Djiby Thiaw

25

Mmoire de fin de cycle

Promotion

2008-2010

Pour que nos clients puissent bnficier dune connexion Internet, nous devons diter le fichier squid.conf en dclarant notre rseau local et permettre la connexion internet. On y ajoute ces lignes : acl reseau_esp src 192.168.2.0/255.255.255.0 http_access allow reseau_esp reseau_esp est le nom ACL et la ligne suivante est la rgle qui s'applique. 192.168.2.0 dsigne l'adresse rseau dont le masque correspond 255.255.255.0. La ligne suivante autorise laccs internet lacl du nom de reseau_esp c'est--dire la ligne prcdente. On quitte le fichier en enregistrant les modifications apportes puis on redmarre le serveur via la commande : #/etc/init.d/squid restart Notre serveur est alors oprationnel pour notre rseau local et joue bien son rle. Pour en avoir la preuve, on dcide de tlcharger deux fois de suite un mme fichier sur le mme site et aussi on supprime compltement ce fichier de notre disque dur avant de le retlcharger.

Figure 6: Premier tlchargement du fichier

Prsent et soutenu par Djiby Thiaw

26

Mmoire de fin de cycle

Promotion

2008-2010

Figure 7: Deuxime tlchargement du fichier

On remarque que le tlchargement du fichier de 18,5 Mo a dur pour la premire fois 3min43s et que la vitesse de tlchargement a t en moyenne de 85,2 Ko/s. Pour le second tlchargement, ce temps a beaucoup baiss et est de 1min2s avec une augmentation de la vitesse moyenne de tlchargement qui est pour cette fois ci de 306 Ko/s. On en dduit alors que notre proxy fonctionne bien et joue son rle de cache car pour le second tlchargement le temps a fortement diminu et la vitesse moyenne qui est de 306 Ko/s nous montre que le tlchargement sest effectu depuis notre serveur proxy qui a mis en cache ce fichier lors du 1er tlchargement.

III.1.6.

Forcer le passage par SQUID : proxy transparent

Utiliser un proxy ncessite normalement quon configure manuellement les navigateurs de tous nos utilisateurs de manire ce qu'ils interrogent toujours le proxy, quelle que soit la cible. Cette tche savre alors difficile si nous avons un trs grand nombre dutilisateurs et aussi nos utilisateurs ont la main sur ce paramtrage, et pourront probablement passer outre le proxy, s'ils le dcident, contournant par le fait toutes vos stratgies. Il existe cependant un moyen d'viter ceci en rendant le proxy transparent, ce qui

Prsent et soutenu par Djiby Thiaw

27

Mmoire de fin de cycle

Promotion

2008-2010

veut dire que configurs ou non, les requtes http passeront quand mme par le proxy. Pour arriver ce rsultat, il faut raliser deux oprations : Rediriger en PREROUTING les ports 80 et 43 vers le port proxy sur son port 8080 et ceci se fait sans problmes sur notre routeur NAT avec IPtables Configurer correctement SQUID pour qu'il interprte convenablement les requtes HTTP qu'il reoit Voici la rgle ajouter sur notre passerelle, en admettant que notre rseau est dans 192.168.2.0 et que notre proxy possde l'adresse 192.168.2.3. Nous supposons que le proxy est install sur la machine qui assure galement le rle de passerelle : #iptables -t nat -A PREROUTING -s 192.168.2.0/255.255.255.0 -p tcp m multiport --dport 80,43 -j REDIRECT --to-ports 8080 Le client HTTP n'agit pas de la mme manire suivant qu'il a affaire un proxy ou non. Ici, le client ne sait pas qu'il y a un proxy, il agit donc comme s'il interrogeait directement le serveur cible, alors que ce n'est pas le cas. Ca ne fonctionnera bien entendu pas, si SQUID n'est pas inform de cette situation. Mais Squid sait contourner la difficult, de faon trs simple depuis la version 2.6 au moins, en ajoutant simplement le mot transparent sur la ligne de dfinition du port utilis : http_port 8080 transparent

III.2. Authentification avec LDAP


Dans la mise en uvre jusqu'ici, nous ne faisions pas de contrle sur les utilisateurs, seulement sur les IPs des machines clientes. Nous pouvons identifier nos utilisateurs lorsqu'ils vont surfer sur le Net. Dans ce cas, il nous faudra mettre en place un systme d'identification. Il y a plusieurs mthodes disponibles pour authentifier nos utilisateurs du proxy. Elles font toutes appel un programme extrieur, diffrent suivant le moyen choisi. Nous allons utiliser lannuaire LDAP pour cette authentification.

Prsent et soutenu par Djiby Thiaw

28

Mmoire de fin de cycle

Promotion

2008-2010

III.2.1.

Installation de LDAP

Comme annuaire LDAP, nous allons utiliser le logiciel OpenLDAP qui est un logiciel libre bas sous la licence GNU GPL. La dernire version actuelle stable est le 2.4.23. Nous allons procder une installation automatique afin dobtenir toutes les dpendances ncessaires. Linstallation se fait via la commande : #apt-get install slapd

Figure 8: Installation annuaire LDAP

On remarque ainsi que le paquet slapd est install avec quatre autres paquets supplmentaires qui participent au bon fonctionnement de lannuaire.

III.2.2.

Configuration de LDAP

Il faut tout dabord indiquer dans le fichier /etc/default/slapd la localisation du fichier de configuration de OpenLdap qui est /etc/ldap/slapd.conf. Pour le faire, on doit ajouter cette ligne dans ce fichier : SLAPD_CONF="/etc/ldap/slapd.conf" Il faut par la suite modifier le fichier /etc/ldap/slapd.conf. Il faut autoriser les clients qui utilisent le protocole LDAPv2 (par dfaut seuls ceux utilisant LDAPv3 sont autoriss). En effet, SQUID peut utiliser LDAPv2, donc dans ce cas il faut dcommenter cette ligne qui devient indispensable : allow bind_v2 On ajoute aussi ces lignes suivantes :

Prsent et soutenu par Djiby Thiaw

29

Mmoire de fin de cycle

Promotion

2008-2010

suffix "dc=esp,dc=sn" rootdn "cn=admin,dc=esp,dc=sn" directory "/var/lib/ldap" rootpw secret Pour la dernire ligne, il faut remplacer secret par un vrai mot de passe qui apparait alors en clair ce qui est dconseill. On peut crypter ce mot de passe via la commande : #slappasswd Puis on copie le rsultat de cette commande la place de secret. On modifie enfin le fichier /etc/ldap/ldap.conf et on ajoute ces deux lignes : BASE dc=esp,dc=sn URI ldap://127.0.0.1:389 Pour terminer, on redmarre le serveur : /etc/init.d/slapd restart

III.2.3.

Ajout dentres dans lannuaire LDAP

Ensuite, on peut consulter l'annuaire, ajouter, modifier, ou retirer des entres au moyen des commandes ldapsearch, ldapadd, ldapmodify, ldapdelete (fournis avec OpenLDAP ) et de fichiers LDIF (LDAP Data Interchange Format) ou bien l'aide d'outils graphiques comme l'interface php phpLDAPadmin. On dfinit par exemple lannuaire cidessous avec ce fichier ldif :

Prsent et soutenu par Djiby Thiaw

30

Mmoire de fin de cycle

Promotion

2008-2010

Figure 9: Fichier ldif des entres

Puis on ajoute ces informations dans lannuaire de la manire ci-dessous :

Figure 10: Ajout des entres dans lannuaire

On peut aussi ajouter dautres utilisateurs grce aux fichiers ldif ou bien laide doutils graphiques tel que phpLDAPadmin.

Prsent et soutenu par Djiby Thiaw

31

Mmoire de fin de cycle

Promotion

2008-2010

III.2.4.

Configuration de SQUID pour lauthentification

Pour la configuration de SQUID, on utilise loption squid_ldap_auth qui est ce qu'on appelle un authentication helper , c'est--dire un petit programme qui dtermine si un couple login/pass est correct : dans ce cas-ci, il communique avec un annuaire LDAP afin de voir s'il existe une entre dans l'annuaire ayant le login indiqu dans un champ uid (ou cn ou autre si on le prcise), et le pass correspondant dans un champ userPassword. Ce programme doit renvoyer la chane de caractres "OK" en cas de succs et "ERR" en cas d'chec. On ajoute dans squid.conf les lignes suivantes : auth_param basic program /usr/lib/squid/ldap_auth -b ou=profs,dc=esp,dc=sn -u cn h 127.0.0.1 auth_param basic children 5 auth_param basic realm Identification requise par firewall_esp auth_param basic credentialsttl 2 hours Les paramtres utiliss pour squid_ldap_auth sont : -b ou=profs,dc=esp,dc=sn : indique la base de l'arborescence de l'annuaire partir de laquelle on recherche l'utilisateur qui essaie de s'authentifier -u cn : indique le type du login que l'on tape pour s'authentifier (par exemple cn, uid...) -h 127.0.0.1 : adresse du serveur LDAP, il est ici sur la mme machine que le proxy Les trois dernires lignes servent : auth_param basic children 5 : le nombre de processus d'authentification qui seront lancs en permanence sur le serveur, chacun ne pouvant servir qu'une demande la fois auth_param basic realm Identification requise par

firewall_esp : la chane de caractres qui suit realm sera affiche par le navigateur utilis lors de la demande d'authentification, elle permet donc d'indiquer l'utilisateur que c'est au proxy qu'il essaie de se connecter auth_param basic credentialsttl 2 hours : la dure au bout de laquelle lauthentication helper sera relanc. Cela ne veut pas dire que la fentre demandant le login/pass va se rafficher (cela ne dpend pas de SQUID, mais du navigateur utilis). Concrtement, au bout du temps indiqu, il y aura de nouveau un Prsent et soutenu par Djiby Thiaw

32

Mmoire de fin de cycle

Promotion

2008-2010

change de paquets LDAP entre Squid et le serveur LDAP pour authentifier l'utilisateur, et ventuellement lui interdire l'accs. Pour terminer on ajoute ces deux rgles acl et on redmarre le serveur : acl password proxy_auth REQUIRED http_access allow password Cette rgle indique que tous les utilisateurs authentifis auront un accs http mais suivant sa position par rapport d'autres rgles d'accs, cet accs sera peut-tre restreint. La capture ci-dessous illustre bien cette authentification.

Figure 11: Authentification requise par le proxy

III.3. SQUID avec SquidGuard


III.3.1. Dfinition

SquidGuard est un module pour le serveur proxy SQUID. Ce module ajoute des fonctionnalits plus avances en matire de filtrage bas sur une liste noire de sites web bloquer et une liste blanche de sites ignorer. SquidGuard est ainsi un programme redirecteur distribu sous licence GPL, cest--dire que toutes les trames HTTP seront rediriges vers SquidGuard pour tre analyses puis filtres. Il est ncessaire pour cela dindiquer Squid que les trames devront transites par SquidGuard avant de passer dans le cache du Proxy. La fonction de filtre de SQUID est alors optimise dans le programme SquidGuard ce qui lui permet danalyser des listes dURLS en un temps record. Une fois lanc, SquidGuard apparatra comme un processus fils de SQUID. Prsent et soutenu par Djiby Thiaw

33

Mmoire de fin de cycle

Promotion

2008-2010

III.3.2.

Installation et Configuration

Linstallation se fait de manire automatique et simple avec la commande : #apt-get install squidguard L'installation a cr un rpertoire /var/lib/squidguard/db, mais il est vide. Il est destin contenir nos listes noires et blanches et deux scripts cgi dont nous verrons l'utilit plus tard. Elle cre aussi le fichier de configuration /etc/squid/squidGuard.conf. Nous n'avons pas encore les moyens de travailler efficacement, nous n'avons pas encore de base de donnes de destinations, mais nous pouvons dj crire un fichier de configuration pour SquidGuard, pour nous mettre un peu dans le bain.

Figure 12: Configuration minimum de SquidGuard

Les deux premires lignes indiquent SquidGuard o trouver la base de donnes des listes (que nous navons pas encore) ainsi que lendroit o lon dsire rcuprer les logs. Les sources sont l pour dfinir des groupes de clients. On les emploie avec des adresses IP de notre rseau et lorsque lidentification du client est requise, on peut alors dfinir des noms dutilisateurs dans les sources.

Prsent et soutenu par Djiby Thiaw

34

Mmoire de fin de cycle

Promotion

2008-2010

Enfin, les acl permettent de dfinir quelle source peut aller (ou ne pas aller) vers quelle(s) destination(s). Dans cette configuration seule la machine 192.168.2.3 (le serveur) peut aller dans nimporte quel site alors que les autres clients de notre rseau nont accs aucuns sites comme le montre la figure 13. Il faut maintenant placer le script cgi sur notre serveur apache : #gunzip /usr/share/doc/squidguard/examples/squidGuard.cgi.gz #mv /usr/share/doc/squidguard/examples/squidGuard.cgi /usr/lib/cgi-bin/ #chmod +x /usr/lib/cgi-bin/squidGuard.cgi Il faut enfin modifier le fichier de configuration de SQUID pour quil invoque SquidGuard en ajoutant ces dans le fichier et redmarrer le serveur url_rewrite_program /usr/bin/squidGuard c /etc/squid/squidGuard.conf url_rewrite_children 5

Figure 13: Blocage Internet des clients par SquidGuard

Prsent et soutenu par Djiby Thiaw

35

Mmoire de fin de cycle

Promotion

2008-2010

Nous allons aprs ceci configurer les destinations. Un ensemble de destinations est activement maintenu jour par le Centre de Ressources Informatiques de lUniversit de Toulouse que nous trouverons la wbographie n10. Nous allons choisir larchive qui les contient toutes qui est larchive blacklists.tar.gz. #cd /var/lib/squidguard/db/ #wget ftp://ftp.univ-tlse1.fr/blacklist/blacklists.tar.gz #tar -xzvf blacklists.tar.gz #cd blacklists

Figure14: Les listes de destination de SquidGuard

Nous avons toutes les destinations souhaitables qui sont organises par catgorie par exemple : audio-video, chat, child, drogue, forums, game, hacking, manga, porn, publicite, radio, violence etc.. Avant d'oublier ce dtail majeur, tout le contenu de /var/lib/squidguard/db/blacklists doit tre accessible en lecture et en criture par l'utilisateur sous l'identit duquel SQUID tourne. Pour nous, c'est l'utilisateur proxy : #cd /var/lib/squidguard/db/ #chown -R proxy:proxy blacklists

Prsent et soutenu par Djiby Thiaw

36

Mmoire de fin de cycle

Promotion

2008-2010

Nous allons par exemple bloquer une liste de destination. Notre fichier de configuration de SquidGuard est ainsi structur :

Figure 15: Exemple de configuration de SquidGuard

Dans cette configuration, comme la figure 12, nous avons la localisation des blacklists et les logs et la source de ladmin. Nous avons la suite ajout une source users qui indique les utilisateurs de notre rseau. On a ajout la configuration la destination video en indiquant les fichiers de la liste. Dans les acl , ladministrateur a accs tous les sites tandis que les autres utilisateurs nont pas accs aux sites de type audio-vido qui sont dfinis dans ces listes.

Prsent et soutenu par Djiby Thiaw

37

Mmoire de fin de cycle

Promotion

2008-2010

SquidGuard, pour pouvoir travailler rapidement, n'utilise pas les fichiers texte, mais des bases de donnes. Nous devons alors construire ces bases avant le dmarrage de SQUID (et donc de squidGuard) par la commande ci-dessous puis on redmarre le serveur. #squidGuard C all Lorsquon teste en entrant par exemple le site de youtube (site de partage de vido), nous nous rendons compte que laccs ce site est bloqu. Tous les domaines ou URL de type audio-vido seront ainsi bloqus. SquidGuard offre ainsi un filtrage trs pouss. SquidGuard permet un filtrage par URL, par adresses IP, par authentification, par plage horaire etc..

III.4. Scurisation du proxy


III.4.1. Association avec SSL

Afin de scuriser les changes d'informations avec les diffrents serveurs LDAP, on peut utiliser SSL (Secure Sockets Layer), qui est en fait une couche se rajoutant dans les paquets transmis, et permettant de crypter les donnes transmises. On va ainsi utiliser SSL avec OpenLDAP et SQUID.

III.4.1.1. SSL avec OpenLDAP


Pour pouvoir utiliser SSL avec OpenLDAP, il faut y intgrer le support SSL/TLS (TLS : Transport Layer Security). Il faut aussi au pralable avoir install OpenSSL. Pour pouvoir utiliser SSL, il faut crer les certificats, reconfigurer le serveur, et le relancer en lui indiquant d'utiliser SSL. Pour crer les certificats, on cre dabord un rpertoire accessible par OpenLDAP puis on les cre avec les commandes suivantes : #openssl genrsa out serverkey.pem 1024 #openssl req new key serverkey.pem out servercert.req #openssl genrsa out cakey.pem 1024

Prsent et soutenu par Djiby Thiaw

38

Mmoire de fin de cycle

Promotion

2008-2010

#openssl req new x509 key cakey.pem out cacert.pem #openssl x509 req in servercert.req out servercert.pem CA cacert.pem Cakey cakey.pem CAcreateserial De nouveaux fichiers seront ainsi crer. Pour vrifier leur valid, on utilise la commande : #openssl verify CAfile cacert.pem servercert.pem Nous avons utilis des cls de 1024 bits pour plus de scurit. Une fois qu'on a les certificats ncessaires, on configure le serveur OpenLDAP pour quil utilise SSL. Pour le faire, on copie les fichiers quon gnr la cration des certificats un endroit accessible par OpenLDAP par exemple /usr/local/etc/openldap puis on modifier le fichier slapd.conf en ajoutant la fin les lignes suivantes : TLSCertificateFile TLSCertificateKeyFile TLSCACertificateFile /usr/local/etc/openldap/servercert.pem /usr/local/etc/openldap/serverkey.pem /usr/local/etc/openldap/cacert.pem

Notre serveur OpenLDAP est ainsi correctement configur pour grer le SSL. Nous modifions ensuite le fichier /et c/default/slapd en intgrant dans les services le port scuris de LDAP SLAPD_SERVICES="ldaps:127.0.0.1:636" Nous configurons aussi les clients afin de leur indiquer lemplacement du certificat. Il faut aussi dire aux clients dutiliser le port scuris de LDAP qui est le 636. Pour cela on modifie le fichier ldap.conf. ssl on URI ldaps://127.0.0.1:636 TLS_CACERT /usr/local/etc/openldap/cacert.pem Dornavant, lorsqu'on s'authentifie auprs du serveur LDAP, le mot de passe ne circule plus en clair sur le rseau, et on ne peut plus l'intercepter l'aide d'un sniffer.

III.4.1.2. SSL avec SQUID


Maintenant que notre annuaire fonctionne correctement avec SSL, on peut passer la configuration de SQUID. A priori, la seule chose faire pour que SQUID utilise SSL pour

Prsent et soutenu par Djiby Thiaw

39

Mmoire de fin de cycle

Promotion

2008-2010

communiquer avec le serveur LDAP est de rajouter ldaps:// en tte de l'adresse du serveur dans lappel de squid_ldap_auth. auth_param basic program /usr/lib/squid/ldap_auth -b ou=profs,dc=esp,dc=sn -u cn -h ldaps://127.0.0.1:636 Il ne reste plus qu' relancer le serveur SQUID, et maintenant l'authentification s'effectue de manire crypte par SSL/TLS et ainsi aucun mot de passe ne circule plus en clair sur le rseau lors de la demande dauthentification.

III.4.2.

Association avec un antivirus

Il nous est possible dintgrer un antivirus notre proxy SQUID. Il nous faut alors un antivirus fonctionnel sur notre systme. Nous dcidons dutiliser lantivirus Clamav qui un antivirus libre OpenSource. Clamav est un antivirus sous licence GPL, qui fonctionne sur le principe d'une base de donnes de signatures, comme la plupart des antivirus commerciaux. Son installation ne pose aucun problme particulier. Il faut juste installer les paquets clamav et clamav-freshclam. Ce dernier soccupe de la mis jour de la base de donnes de lantivirus. Cette mis jour est automatique.

Figure 16: Installation de Clamav

Une fois linstallation termine, Clamav tourne par dfaut sous le nom d'un utilisateur fictif clamav, cr lors de l'installation du paquetage. Le dmarrage de lantivirus est

Prsent et soutenu par Djiby Thiaw

40

Mmoire de fin de cycle

Promotion

2008-2010

automatique et juste aprs linstallation il commence dj jouer son rle. Pour une configuration plus approfondie, on peut se rfrer la documentation officielle. Avec un antivirus install sur la machine o tourne notre serveur SQUID, nos

requtes HTTP destines nos clients seront ainsi scannes. De cette manire, nous nous assurons que notre proxy SQUID nenverra pas de virus nos clients. Ceci nexclut pas non plus que nos clients peuvent se dispenser dun antivirus install sur leur poste. Une scurit supplmentaire est toujours la bienvenue.

Prsent et soutenu par Djiby Thiaw

41

Mmoire de fin de cycle

Promotion

2008-2010

CONCLUSION

Nous avons essay dans ce document de mettre en place un proxy SQUID scuris avec une authentification des utilisateurs via lannuaire LDAP. De nos jours lInternet, qui est un rseau mondial public avec plusieurs menaces, est trs utilis et tout le monde y a accs. Se trouvant dans un rseau priv et scuris, nous devons ainsi mettre en place une passerelle scurise entre notre rseau et Internet. Notre choix de passerelle cest ainsi port sur le proxy SQUID. Nous avons vu dans ce document que son rle primordial est le cache c'est--dire garder les pages HTTP en local et les restituer aux clients. Il joue aussi le rle de filtre et de scurit. Nous avons vu que SQUID peut bloquer laccs lInternet certains utilisateurs selon des critres bien dfinis ou mme bloquer laccs certains sites que lon juge dangereux ou inutiles. Nous avons aussi vu que SQUID pouvait tre coupl un annuaire LDAP de telle sorte que seuls nos utilisateurs de notre rseau disposant dun compte dans lannuaire avec login et mot de passe peuvent avoir lInternet. Pour plus de scurit, on peut crypter ces changes de login et mot de passe avec SSL. Nous avons aussi install lantivirus clamav sur la machine serveur Nanmoins, nous tenons rappeler quun proxy nest pas une solution absolue et complte de scurit. Comme on la dj dit, il joue primordialement une fonction de cache et de filtre. Donc il nassure pas entirement la scurit de notre rseau. Il faut en plus trouver dautres moyens de scurit en mettant par exemple en place un firewall correctement configur qui remplie entirement un rle de scurit. Notons aussi quen matire de scurit informatique, il n'y a ni recette miracle, ni solution dfinitive.

Prsent et soutenu par Djiby Thiaw

42

Mmoire de fin de cycle

Promotion

2008-2010

GLOSSAIRE

ACL: Access Control List BIOS: Basic Input Output Unit CPU: Central Processing Unit DIT: Directory Information Tree DNS: Domain Name System DSE: Directory Service Entry GNU GPL: GNU General Public License HTTP: HyperText Transfer Protocol LDAP: Lightweight Directory Access Protocol LDIF: LDAP Data Interchange Format RAM: Random Access Memory SGBD: Systme de Gestion de Base de Donnes TCP/IP: Transfer Control Protocol / Internet Protocol

Prsent et soutenu par Djiby Thiaw

43

Mmoire de fin de cycle

Promotion

2008-2010

WEBOGRAPHIE

1. http://www.esp.sn 2. http://www.esmt.sn 3. http://www.monassistance.fr/CCM/lan/proxy.php 4. http://www.deckle.co.za/squid-users-guide/Main_Page 5. http://www-igm.univ-mlv.fr/~dr/XPOSE2003/Squid/ch01s02.html 6. http://www.locoche.net/proxy.php 7. http://fr.wikipedia.org/wiki/Ldap 8. http://www.espace-groupware.com/squid/authentification-ldap/doc.html 9. http://irp.nain-t.net/doku.php/220squid:start 10. ftp://ftp.univ-tlse1.fr/blacklist/ 11. http://doc.ubuntu-fr.org/clamav

Prsent et soutenu par Djiby Thiaw

44