dst_2010_mise en place d'un proxy squid sécurisé avec authentification ldap. esmt...

Upload: tchuipet

Post on 14-Apr-2018

264 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    1/45

    Prsent par : Encadr par :

    Anne universitaire : 20092010

    Thme:

    MISE EN PLACE D'UN PROXY SQUID SECURISE

    AVEC AUTHENTIFICATION LDAP

    MEMOIRE DE FIN DE CYCLE

    Pour lobtention du :

    DIPLOME DE TECHNICIEN SUPERIEUR EN TELEINFORMATIQUE

    (DTST)

    Lieu de stage : Ecole Suprieure Polytechnique de Dakar

    ECOLE SUPERIEURE POLYTECHNIQUE

    DEPARTEMENT GENIE INFORMATIQUE

    M. Abdoulaye SallDjiby Thiaw

    ECOLE SUPERIEURE MULTINATIONALE

    DES TELECOMMUNICATIONS

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    2/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw1

    Table des matires ..................................................................................................................... 1

    Table des figures ........................................................................................................................ 3

    Avant-propos .............................................................................................................................. 4

    Introduction ............................................................................................................................... 5

    CHAPITRE I : PRESENTATION GENERALE ..................................................................... 6I.1. PRESENTATION DE LESP........................................................................................... 6I.1.1. HISTORIQUE ............................................................................................................. 6I.1.2. ORGANISATION ......................................................................................................... 6I.1.3. OBJ ECTIFS ET MISSIONS........................................................................................... 8I.2. PRESENTATION DE LESMT....................................................................................... 9

    I.2.1. Historique............................................................................................................ 9I.2.2. Formations........................................................................................................... 9I.2.3. Organigramme................................................................................................... 10

    CHAPITRE I I : PRESENTATION DES OUTILS NECESSAIRES ................................... 11II.1.

    LE PROXY SQUID..................................................................................................... 11

    I I .1.1. Dfinition ........................................................................................................... 11I I .1.2. Fonctionnement et Rles................................................................................... 11

    I I.1.2.1. Fonctionnement ......................................................................................... 11I I.1.2.2. Rle............................................................................................................. 12

    II.2. LANNUAIRE LDAP .................................................................................................. 13I I .2.1. Dfinition ........................................................................................................... 13I I .2.2. Fonctions........................................................................................................... 13I I .2.3. Structure............................................................................................................ 14

    CHAPITRE II I : MISE EN UVRE.................................................................................... 16III.1. MISE EN PLACE DU PROXY SQUID......................................................................... 16

    III.1.1. Configuration matrielle et logicielle ........................................................... 16III.1.2. Installation..................................................................................................... 17

    I I I .1.2.1. Installation manuelle................................................................................ 17I I I .1.2.2.

    Installation automatique........................................................................... 18

    III.1.3. Configuration................................................................................................. 18

    Table des matires

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    3/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw2

    I I I .1.3.1. Configuration de la section rseau........................................................... 19I I I .1.3.2. Configuration de la taille du cache.......................................................... 19I I I .1.3.3. Chemin daccs aux fichiers de SQUID .................................................. 20I I I .1.3.4. Comportement avec les applications externes.......................................... 21I I I .1.3.5. Les temps dattente.................................................................................... 22

    III.1.4. Contrle des accs.......................................................................................... 22III.1.5. Configuration manuelle des clients et test de fonctionnalit....................... 24III.1.6. Forcer le passage par SQUID : proxy transparent..................................... 27

    III.2. AUTHENTIFI CATION AVEC LDAP ........................................................................... 28III.2.1. Installation de LDAP ..................................................................................... 29III.2.2. Configuration de LDAP ................................................................................ 29III.2.3. Ajout dentres dans lannuaire LDAP........................................................ 30III.2.4. Configuration de SQUID pour lauthentification ........................................ 32

    III.3. SQUID AVEC SQUIDGUARD ................................................................................... 33III.3.1. Dfinition ....................................................................................................... 33III.3.2. Installation et Configuration......................................................................... 34

    III.4. SECURISATION DU PROXY ....................................................................................... 38III.4.1. Association avec SSL ..................................................................................... 38

    I I I .4.1.1. SSL avec OpenLDAP ................................................................................ 38I I I.4.1.2. SSL avec SQUID....................................................................................... 39

    III.4.2. Association avec un antivirus........................................................................ 40Conclusion ............................................................................................................................... 42

    Glossaire .................................................................................................................................. 43

    Bibliographie / Wbographie ............................................................................................ 44

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    4/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw3

    Figures :

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

    Table des figures

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    5/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw4

    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 thoriquesacquises tout au long de leur formation.

    Dinitier les futurs techniciens suprieurs aux ralits du milieu professionnel et deleur 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.

    Avant-propos

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    6/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw5

    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 daprsNetcraft, 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.

    INTRODUCTION

    http://news.netcraft.com/http://news.netcraft.com/http://news.netcraft.com/
  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    7/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw6

    Chapitre I : Prsentation gnraleI .1. Prsentation de lESP

    I.1.1.HistoriqueLEcole 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.OrganisationEtablissement 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 formationcontinue pour le compte des entreprises, socits et particuliers. Ces six dpartements sont :

    CHAPITRE I

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    8/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw7

    Le dpartement Gnie Informatique : Ce dpartement forme des Technicienssuprieurs, Assistants ingnieurs, des Ingnieurs en Informatique, Tl-

    Informatique 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

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    9/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw8

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

    Le dpartement Gestion

    I.1.3.Objectifs et missionsLESP 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 fonctionsd'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).

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    10/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw9

    I .2. Prsentation de lESMTI.2.1.HistoriqueL'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.FormationsLESMT 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 LicenceProfessionnelle en TIC et la Licence Gnrale en Science de lIngnieur

    Le Diplme dIngnieur : avec trois spcialisations : Ingnieur des TravauxTlcoms (IGTT), Ingnieur de Conception (INGC), Ingnieur en Tlinformatique

    (en partenariat avec lESP)

    Le Mastre Spcialis : en Gestion des Tlcoms, Rseaux Tlcoms etTlinformatique (en partenariat avec lESP)

    Le Mastre Professionnel : en Politique et Rgulation des TIC et Rseaux et ServicesTIC

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    11/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw10

    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.OrganigrammeLe schma ci-dessous, tir du site officiel de LESMT (wbographie n2), illustre

    lorganisation et la structure de LESMT.

    Figure 1: Organigramme de lESMT

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    12/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw11

    CHAPITRE II : Prsentation des outils ncessaires

    II.1.Le proxy SQUIDI I .1.1. DfinitionUn 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 rseaulocal et un serveur web se trouvant sur Internet. Il peut aussi assurer dautres fonctions

    essentielles.

    I I .1.2. Fonctionnement et RlesI I .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

    CHAPITRE II

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    13/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw12

    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

    I I .1.2.2. RleLe serveur proxy SQUID peut assurer plusieurs rles parmi lesquels :

    Le rle de cache : En jargon informatique, une mmoire cache sert conserverlocalement 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 unfichier 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 lecontenu 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 proxyassure ainsi des fonctions de scurit pour le rseau local.

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    14/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw13

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

    utilisateurs.

    II.2.Lannuaire LDAPI I .2.1. DfinitionUn 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 spcifiqued'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 touttype 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 lesmcanismes de transaction complexe que les SGBD possdent pour traiter de gros volumes de

    donnes.

    I I .2.2. FonctionsComme l'annuaire tlphonique, la premire fonction de l'annuaire LDAP est de

    retrouver facilement les coordonnes d'une personne : son adresse lectronique, son adresseprofessionnelle, son tlphone professionnel en fonction de diffrents critres de recherche.

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    15/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw14

    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.

    I I .2.3. StructureLes 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 ladescription 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.

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    16/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw15

    Dc : domain componentOu : organizational unitsCn : common nameUid : user identifier

    Figure 3:Exemple de DIT

    dc=esp, dc=sn

    ou=profs ou=etudiants

    cn=salluid=100

    cn=ouyauid=101

    cn=djibyuid=200

    cn=fatouuid=201

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    17/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw16

    Chapitre III : Mise en uvre

    III.1.Mise en place du proxy SQUIDIII.1.1. Configuration matrielle et logicielleAvant dinstaller et dutiliserSQUID, 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 conseill 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 prfrable

    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.0et notre proxy va sappelerfirewall_esp.

    CHAPITRE III

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    18/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw17

    III.1.2. InstallationI I I .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 esthttp://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=Frenchmais 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-err-

    language=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/squid-

    2.7.STABLE7 reprend en partie ce qui vient d'tre expliqu.

    A la fin de l'installation, les rpertoires suivants seront crs :

    http://www.squid-cache.org/http://www.squid-cache.org/http://www.squid-cache.org/http://www.squid-cache.org/
  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    19/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw18

    /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

    I I I .1.2.2.Installation automatiqueL'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. ConfigurationSQUID se 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 :

    optionparamtre [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 prfrablede consulter la documentation officielle.

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    20/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw19

    I I I .1.3.1.Configuration de la section rseauCette 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.

    I I I .1.3.2.Configuration de la taille du cachecache_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.

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    21/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw20

    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

    I I I .1.3.3.Chemin daccs aux fichiers de SQUIDCache_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. Ceparamtre 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 cachede 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

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    22/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw21

    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_logDirectoryPath/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.

    I I I .1.3.4.Comportement avec les applications externesCette 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

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    23/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw22

    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.

    I I I .1.3.5.Les temps dattenteCette 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 accsIl 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

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    24/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw23

    fonction du domaine, du protocole, de l'adresse IP, du numro de port, d'un mot et aussi

    limiterlaccs 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 formeadresse/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

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    25/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw24

    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 MTWH08:0012:00

    acl soir time MTWH14:0018:00

    http_access deny matin reseau_esp

    http_access deny soir reseau_esp

    III.1.5. Configuration manuelle des clients et test de fonctionnalitNous 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 Firefox1. Au niveau du menu navigateur, allez dans Outils => Options2. Cliquez sur longlet Avanc3. Slectionner le sous-onglet Rseau4. Cliquer sur le bouton Paramtres5. Et enfin slectionnerConfiguration manuelle du proxy puis remplir les champs

    en donnant ladresse IP du proxy et le port

    Internet Explorer1. Au niveau du menu navigateur, allez dans Outils => Options Internet2. Cliquez sur longlet Connexions3. Cliquez surParamtres Rseau4. Et enfin slectionner Utilisez un serveur proxy puis remplir les champs en

    donnant ladresse IP du proxy et le port

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    26/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw25

    Figure 4: Configuration manuelle dInternetExplorer

    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

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    27/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw26

    Pour que nos clients puissent bnficier dune connexion Internet, nous devons diter le

    fichiersquid.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

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    28/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw27

    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 1ertlchargement.

    III.1.6. Forcer le passage par SQUID : proxy transparentUtiliser 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

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    29/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw28

    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 etceci se fait sans problmes sur notre routeur NAT avec IPtables

    Configurer correctement SQUID pour qu'il interprte convenablement les requtesHTTP 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 dedfinition du port utilis :

    http_port 8080 transparent

    III.2.Authentification avec LDAPDans 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.

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    30/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw29

    III.2.1. Installation de LDAPComme 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 dpendancesncessaires. 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 LDAPIl 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 :

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    31/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw30

    suffix "dc=esp,dc=sn"

    rootdn "cn=admin,dc=esp,dc=sn"

    directory "/var/lib/ldap"

    rootpw secret

    Pour la dernire ligne, il faut remplacersecret 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 LDAPEnsuite, 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 ci-

    dessous avec ce fichier ldif :

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    32/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw31

    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.

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    33/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw32

    III.2.4. Configuration de SQUID pour lauthentificationPour 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 afinde 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 -bou=profs,dc=esp,dc=sn -u cn h 127.0.0.1auth_param basic children 5auth_param basic realm Identification requise par firewall_espauth_param basic credentialsttl 2 hours

    Les paramtres utiliss poursquid_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 leproxy

    Les trois dernires lignes servent :

    auth_param basic children 5 : le nombre de processus d'authentificationqui 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 delaquelle 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 dunavigateur utilis). Concrtement, au bout du temps indiqu, il y aura de nouveau un

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    34/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw33

    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 REQUIREDhttp_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 SquidGuardIII.3.1. Dfinition

    SquidGuard est un module pour le serveur proxy SQUID. Ce module ajoute desfonctionnalits 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

    SquidGuardpour tre analyses puis filtres. Il est ncessaire pour cela dindiquer Squid

    que les trames devront transites parSquidGuard 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, SquidGuardapparatra comme un processus fils de SQUID.

    http://carbone.originet.eu/~bigoud/Joomla/wiki/SquidGuardhttp://carbone.originet.eu/~bigoud/Joomla/wiki/SquidGuardhttp://carbone.originet.eu/~bigoud/Joomla/wiki/SquidGuardhttp://carbone.originet.eu/~bigoud/Joomla/wiki/SquidGuardhttp://carbone.originet.eu/~bigoud/Joomla/wiki/SquidGuardhttp://carbone.originet.eu/~bigoud/Joomla/wiki/SquidGuard
  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    35/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw34

    III.3.2. Installation et ConfigurationLinstallation 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.

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    36/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw35

    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 SQUIDpour quil invoque SquidGuard enajoutant 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

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    37/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw36

    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

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    38/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw37

    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.

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    39/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw38

    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.

    #squidGuardC 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 proxyIII.4.1. Association avec SSLAfin 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.

    I I I .4.1.1.SSL avec OpenLDAPPour 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 genrsaout cakey.pem 1024

    http://carbone.originet.eu/~bigoud/Joomla/wiki/SquidGuardhttp://carbone.originet.eu/~bigoud/Joomla/wiki/SquidGuard
  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    40/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw39

    #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 /usr/local/etc/openldap/servercert.pem

    TLSCertificateKeyFile /usr/local/etc/openldap/serverkey.pem

    TLSCACertificateFile /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.

    I I I .4.1.2.SSL avec SQUIDMaintenant 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

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    41/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw40

    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 antivirusIl 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

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    42/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw41

    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 nousassurons 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.

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    43/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw42

    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.

    CONCLUSION

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    44/45

    Mmoire de fin de cycle Promotion 2008-2010

    Prsent et soutenu par Djiby Thiaw43

    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

    GLOSSAIRE

  • 7/30/2019 DST_2010_Mise en place d'un proxy SQUID scuris avec authentification LDAP. ESMT Tlinformatique

    45/45

    Mmoire de fin de cycle Promotion 2008-2010

    1. http://www.esp.sn2. http://www.esmt.sn3. http://www.monassistance.fr/CCM/lan/proxy.php4. 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.php7. http://fr.wikipedia.org/wiki/Ldap8. http://www.espace-groupware.com/squid/authentification-ldap/doc.html9. http://irp.nain-t.net/doku.php/220squid:start10.ftp://ftp.univ-tlse1.fr/blacklist/11.http://doc.ubuntu-fr.org/clamav

    WEBOGRAPHIE

    http://www.esp.sn/http://www.esp.sn/http://www.esmt.sn/http://www.esmt.sn/http://www.monassistance.fr/CCM/lan/proxy.phphttp://www.monassistance.fr/CCM/lan/proxy.phphttp://www.deckle.co.za/squid-users-guide/Main_Pagehttp://www.deckle.co.za/squid-users-guide/Main_Pagehttp://www-igm.univ-mlv.fr/~dr/XPOSE2003/Squid/ch01s02.htmlhttp://www-igm.univ-mlv.fr/~dr/XPOSE2003/Squid/ch01s02.htmlhttp://www.locoche.net/proxy.phphttp://www.locoche.net/proxy.phphttp://fr.wikipedia.org/wiki/Ldaphttp://fr.wikipedia.org/wiki/Ldaphttp://www.espace-groupware.com/squid/authentification-ldap/doc.htmlhttp://www.espace-groupware.com/squid/authentification-ldap/doc.htmlhttp://irp.nain-t.net/doku.php/220squid:starthttp://irp.nain-t.net/doku.php/220squid:startftp://ftp.univ-tlse1.fr/blacklist/ftp://ftp.univ-tlse1.fr/blacklist/ftp://ftp.univ-tlse1.fr/blacklist/http://doc.ubuntu-fr.org/clamavhttp://doc.ubuntu-fr.org/clamavhttp://doc.ubuntu-fr.org/clamavhttp://doc.ubuntu-fr.org/clamavftp://ftp.univ-tlse1.fr/blacklist/http://irp.nain-t.net/doku.php/220squid:starthttp://www.espace-groupware.com/squid/authentification-ldap/doc.htmlhttp://fr.wikipedia.org/wiki/Ldaphttp://www.locoche.net/proxy.phphttp://www-igm.univ-mlv.fr/~dr/XPOSE2003/Squid/ch01s02.htmlhttp://www.deckle.co.za/squid-users-guide/Main_Pagehttp://www.monassistance.fr/CCM/lan/proxy.phphttp://www.esmt.sn/http://www.esp.sn/