Rapport - Jean-Baptise Couprit - IPSET

23
Réarchitecture du pare-feu d'ALCASAR pour un comportement dynamique Rapport de stage technique du cycle ingénieur ESIEA Auteur : Jean-Baptiste Couprit 4A Maître de stage : Franck Bouijoux Tuteur ESIEA : Richard Rey Soutenu le : 18 juillet 2014 Laboratoire de Cryptologie et Virologie Opérationnelles 38, rue des Docteurs Calmette et Guérin Parc Universitaire 53000 Laval 02 43 59 24 24 Période du 07 avril au 07 août 2014

description

serveur

Transcript of Rapport - Jean-Baptise Couprit - IPSET

  • Rarchitecture du pare-feu d'ALCASAR pour un

    comportement dynamique

    Rapport de stage technique du cycle ingnieur ESIEA

    Auteur : Jean-Baptiste Couprit 4A Matre de stage : Franck BouijouxTuteur ESIEA : Richard Rey

    Soutenu le : 18 juillet 2014

    Laboratoire de Cryptologie et Virologie Oprationnelles38, rue des Docteurs Calmette et Gurin

    Parc Universitaire53000 Laval

    02 43 59 24 24

    Priode du 07 avril au 07 aot 2014

  • RsumCe rapport traite de la refonte du pare-feu d'ALCASAR (Application Libre pour le Contrle d'Accs

    Scuris et Authentifi au Rseau). ALCASAR est un contrleur d'accs au rseau permettant de protger lesconnexions de ses utilisateurs, que ce soit partir d'un ordinateur, d'un tlphone portable, ou encore d'unetablette. Par consquent, cet quipement doit tre plac entre un routeur d'accs Internet (box) et sesutilisateurs. Ce projet libre sous licence GPLv3 est bas sous la distribution franaise Mageia et intgreplusieurs logiciels libres (Apache, Netfilter, OpenSSL, Dnsmasq, etc). Ce logiciel permet de tracer, imputeret authentifier ses utilisateurs, ce qui lui permet de rpondre aux exigences franaises lgales etrglementaires.

    Mon travail au sein de l'quipe a t de changer la philosophie du pare-feu d'ALCASAR. Un pare-feu est un logiciel dont le but est de faire respecter des politiques de scurit rseau, travers un ensemblede rgles. De cette manire, les flux de donnes peuvent tre contrls. Le pare-feu de l'actuelle versiond'ALCASAR (V2.8) dfinit des rgles universelles et figes, ce qui implique que tous les utilisateurs hritentdes mmes droits, pralablement fixs par l'administrateur du systme. L'objectif de la refonte du pare-feutait de mettre en place des rgles dynamiques, personnalises chacun. Grce cette nouveaut, chaqueutilisateur aura des droits qui lui seront propres, et qui seront grs indpendamment dans le pare-feu. Decette manire, il sera dsormais possible de faire cohabiter sur un mme systme, une structure d'entrepriseo le directeur ne veut pas tre filtr, tout en ayant un groupe d'employs avec un premier niveau de filtrageet un second groupe avec un second niveau de filtrage, ainsi qu'une personne avec le plus grand niveau derestrictions. chaque connexion d'un utilisateur ALCASAR, le pare-feu s'adaptera automatiquement celui-ci afin de lui attribuer les rgles qui lui sont propres.

    Ce document rcapitule l'ensemble de mes travaux effectus au cours de quatre mois de stage aulaboratoire CVO, de la prise en main d'ALCASAR, la refonte du pare-feu, en passant par les difficultsrencontres, et surtout, la manire dont elles ont t surmontes.

    2Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

  • AbstractThis report deals with the ALCASAR's (Application Libre pour le Contrle d'Accs Scuris et

    Authentifi au Rseau) firewall recasting. ALCASAR is a network access controller which is able to protectits users' connections, from a computer, a smartphone, or a tablet. Therefore, this device must be placedbetween a router and its users. This open-source project under GPLv3 licence is based on the frenchdistribution Mageia and includes severals free softwares like Apache, Netfilter, OpenSSL, Dnsmasq, etc. Itsfeatures are to impute, trace and authenticate its users, allowing it to respect legal requirements andregulations.

    My work in the ALCASAR team, was to change the philosophy of the firewall. A firewall is asoftware which aims to enforce network security politics, through a set of rules. By this way, data streamscan be handled. The firewall of the current ALCASAR version (V2.8), defines fixed and universal rules,which involves that all users inherit from same rights, beforehand, fixed by the system administrator. For thenext version (V2.9) which will be released in a couple of months, the purpose was to implement a dynamicfirewall, that is to say, with the adding or not of rules according users. With this innovation, each user willhave own rules, which will be handled independently in the firewall. By this way, it will be possible to have,on a same system, without changing any rights, for example, a company structure in which the directordoesn't want to be filtered, while having a group of employees with a low level filtering, an other group ofemployees with a medium level of filtering and a single person with an high filtering level. For eachconnection to ALCASAR, the firewall will automatically fit, in order to attribute rules to users.

    This document summarizes all my work during my four month internship, at the CVO laboratory,from the beginning, to the recasting of the firewall, through the difficulties, and most importantly, how theywere overcome.

    3Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

  • Table des matirestablissement d'accueil..................................................................................................................................7Prsentation d'ALCASAR.............................................................................................................................7Architecture de ce document.........................................................................................................................9Problmatique..............................................................................................................................................10

    Sujet........................................................................................................................................................10Pourquoi un pare-feu dynamique ?.........................................................................................................10

    1 - Ajout de fonctionnalits..............................................................................................................................112 - Fusion des pages ticket rapide et ticket usager...........................................................................................123 - Amliorations de la partie Filtrage ........................................................................................................14

    Liste noire....................................................................................................................................................14Liste blanche................................................................................................................................................16

    4 - Pare-feu dynamique....................................................................................................................................175 - Mise jour de Mageia 2 vers Mageia 4......................................................................................................19

    Basculement.................................................................................................................................................19Compilation d'un paquet..............................................................................................................................19Rsolution d'un bogue ...........................................................................................................................19Annexe 1 : Architecture d'ALCASAR.........................................................................................................22

    4Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

  • Table des illustrationsIllustration 1: Logo d'ALCASAR......................................................................................................................7Illustration 2: Exemple de rseau avec ALCASAR...........................................................................................8Illustration 3: Interception client........................................................................................................................8Illustration 4: Panel d'administration d'ALCASAR...........................................................................................9Illustration 5: Pare-feu......................................................................................................................................10Illustration 6: Aiguillage d'un usager...............................................................................................................10Illustration 7: Description d'une catgorie........................................................................................................11Illustration 8: Cration d'un usager..................................................................................................................12Illustration 9: Ticket gnr par ALCASAR....................................................................................................13Illustration 10: Catgories de la liste noire.......................................................................................................14Illustration 11: Blocage par le pare-feu............................................................................................................14Illustration 12: Rhabilitation et filtrage d'adresses IP.....................................................................................15Illustration 13: Fichiers d'adresses IP...............................................................................................................15Illustration 14: Catgories de la liste blanche..................................................................................................16Illustration 15: Filtrage usager.........................................................................................................................17

    5Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

  • RemerciementsJe remercie toutes les personnes ayant particip de prs ou de loin la russite de ce stage,

    l'ensemble du personnel du laboratoire CVO qui a su m'accueillir et m'intgrer l'quipe et toutparticulirement les personnes suivantes :

    Monsieur Richard Rey : pour m'avoir fait l'honneur d'tre mon tuteur, pour m'avoir guid et pauldurant cette exprience pleine d'intrts.

    Monsieur Franck Bouijoux : qui m'a accompagn tout au long de ce stage, bnficier de sonexprience a t trs enrichissant et instructif. Je le remercie pour tout le temps qu'il m'a consacr ainsi quepour les responsabilits qu'il m'a confies, ce qui m'a permis de beaucoup apprendre.

    6Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

  • Introduction

    tablissement d'accueilEn tant qu'lve ingnieur en quatrime anne l'ESIEA, j'ai pour but de mettre en pratique

    l'ensemble de mes connaissances travers un stage technique en entreprise. L'objectif d'un tel stage est nonseulement d'acqurir de l'exprience sur le monde du travail qui m'attend dans quelques mois, mais aussid'approfondir mes comptences travers un projet extrascolaire.

    L'entreprise m'ayant accueillie est le Laboratoire de Cryptologie et Virologie Oprationnelles (CVO),dirig par monsieur ric Filiol, appartenant l'cole Suprieure d'Informatique, lectronique etAutomatique, situe Laval (53). Ce laboratoire et l'un des quatre que compte l'ESIEA. Parmi ceux-ci noustrouvons :

    Un laboratoire en Ralit Virtuelle et Systmes Embarqus (RVSE)

    Un laboratoire d'Art et de Recherche NUMrique (ARNUM)

    Un laboratoire d'Acquisition et Traitement des Images et du Signal (ATIS)

    Le laboratoire CVO est implant l'ESIEA de Laval depuis 2007. Au dpart, il s'agissait d'unlaboratoire travaillant en collaboration avec le Laboratoire de Virologie et de Cryptologie de l'coleSuprieure et d'Application des Transmissions (ESAT) de Rennes, jusqu' accueillir dfinitivement lesressources de l'ESAT en 2008. Sous tutelle du Ministre de la Dfense, ce laboratoire est habilit menerdes recherches dites classifies de dfense et est rattach l'cole doctorale de l'cole Polytechnique dePalaiseau. l'heure actuelle, cette structure comprend quatre enseignants-chercheurs temps complet, deuxingnieurs de recherche ainsi que six doctorants. Les thmes des recherches abords sont les suivants :

    Cryptologie symtrique, cryptologie asymtrique, cryptanalyse et cryptographie

    Systmes stganographiques

    Virologie informatique

    Guerre informatique

    Scurit des environnements embarqus

    Algorithmie et implmentation scurise

    Prsentation d'ALCASARALCASAR (Application Libre pour le Contrle d'Accs Scuris et Authentifi au Rseau) est un

    contrleur d'accs au rseau libre, sous licence GPLv3, exploitant Mageia. Il a t cr par Rexy et 3abtux etest toujours en dveloppement. Sa version actuelle est la V2.8. Il s'agit d'un portail permettant de scuriserl'accs un rseau, en authentifiant, traant et imputant les connexions des utilisateurs, quelque soit lessupports utiliss (ordinateurs, tablettes ou encore tlphones portables). L'authentification est ralise lasuite de l'interception d'une station du rseau qui est effectue par un identifiant et un mot de passe.L'administrateur du systme cre les comptes usagers, ou les groupes d'usagers, avec la possibilit d'allouer

    7Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

    Illustration 1: Logo d'ALCASAR

  • chacun un grand nombre d'attributs tels que leur priode de connexion, la date d'expiration du compte, lataille maximale de transfert de donnes, et bien d'autres. Si une personne ne possde pas d'identifiants, ellesera bloque.

    L'imputabilit et la traabilit sont raliss grce un systme de journalisation par fichiers, ce quipermet d'avoir une trace de chaque activit utilisateurs (tlchargements, consultation de courrierslectroniques, navigation, etc.). De plus, ALCASAR garantit le respect de la vie prive de chaque utilisateuren chiffrant les flux lis l'authentification et l'impossibilit de modifier les fichiers de traces desconnexions. De ce fait, il y a non-rpudiation des traces. Tout ceci permet par consquent de rpondre auxexigences des politiques d'accs.

    La scurit, quant elle, est ralise grce un pare-feu coupl un antivirus afin de protger chaqueutilisateur des menaces extrieures d'une part, ainsi que de modules spcifiques afin de protger chaqueutilisateur de tentatives de piratage interne d'autre part.

    ALCASAR fonctionne sur un ordinateur ddi plac entre le routeur d'accs Internet (box) et unrseau de consultation. Il est totalement indpendant des technologies utilises.

    ALCASAR est destin aux grandes structures telles que les htels, les coles, les aroports, etc. Il estaussi utilis comme outils d'apprentissage pour les filires de la scurit rseau.

    Du point de vue du client, ALCASAR intercepte les utilisateurslors de la demande d'une page web suite au lancement d'unnavigateur, et demande des identifiants pour pouvoir bnficierd'un accs Internet.

    Nous pouvons trouver sur cette page les principalesinformations de l'entreprise et du portail. L'usager, s'il lesouhaite, a la possibilit de changer son mot de passe. Tantqu'une personne n'est pas authentifie, l'accs Internet esttotalement bloqu. Une fois authentifi, un utilisateur seretrouve dirig sur la page qu'il demandait lors de soninterception. Ds lors, une session scurise lui est attribue, etsa vie prive respecte. En fonction de son niveau de filtrage,

    8Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

    Illustration 2: Exemple de rseau avec ALCASAR

    Illustration 3: Interception client

  • dtermin par un administrateur, un usager aura ou n'aura pas le droit de naviguer sur certains sites.

    Du point de vue de l'administrateur, ALCASAR offre un centre de gestion complet permettant devisualiser l'tat du rseau et des services lancs, de grer les utilisateurs en leur allouant par exemple unedure de connexion maximale, une limitation de la bande passante, une date d'expiration de compte, etc. Unsystme de liste noire / liste blanche est intgr afin de filtrer la navigation des usagers en slectionnant descatgories de sites par exemple le shopping, chat, audio-vido, etc. Un systme de visualisation destatistiques d'exploitation du rseau est aussi intgr, permettant de voir en temps rel le taux de donnestransfr. Cette interface offre galement la possibilit de rcuprer les archives des fichiers journaux,pouvant tre utilises dans la cadre d'enqutes judiciaires. Cette interface est accessible distance, au moyend'un tunnel scuris et chiffr (SSH).

    Architecture de ce documentCe document dcrit tout d'abord la problmatique lie ma priode de stage, en dtaillant l'utilit

    d'un pare-feu dynamique dans le projet ALCASAR. Il se poursuit par l'amlioration de certains points del'interface d'administration, comme l'amlioration de la gestion de la liste noire, ou la simplification du menud'administration. Dans la partie suivante, nous dtaillerons l'amlioration du filtrage par liste noire grce l'ajout du filtrage par adresse IP. Cette prcdente tape nous permet d'arriver au coeur de mon stage : lamodification du pare-feu. Cette partie rcapitule les tapes de mes tudes et recherches sur le pare-feu envue de l'amlioration de son comportement. Enfin, j'voquerai la bascule du support de Mageia 2 versMageia 4.

    9Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

    Illustration 4: Panel d'administration d'ALCASAR

  • Problmatique

    SujetAfin de dbuter mon stage dans les meilleures conditions possible, j'ai tudi l'installation et le

    fonctionnement d'ALCASAR avant le dbut de celui-ci afin de me familiariser avec ses principalesfonctionnalits et son architecture. ALCASAR tant beaucoup plus qu'un simple contrleur d'accs, ilintgre un grand nombre de fonctionnalits (authentification, filtrage, traage, etc.), et l'tudier dans saglobalit demande beaucoup de temps. la suite de cette tude, ayant eu la chance de choisir mon sujet destage, je me suis dirig vers la partie de filtrage des usagers ralise par le pare-feu Netfilter. Le but tant derendre un pare-feu non plus statique, mais dynamique, c'est dire s'adaptant chaque utilisateur, d'o lesujet suivant : Rorganisation des flux du pare-feu d'ALCASAR.

    Un pare-feu, pouvant tre matriel ou logiciel, permet de faire respecter des politiques de scuritrseau, travers un ensemble de rgles. De cette manire, les flux de donnes entre Internet et un rseau deconsultation peuvent tre contrls.

    La mise en place d'un pare-feu joue un rle crucial pour la scurit d'un rseau local. En effet, unpare-feu permet d'interdire les connexions dfinies comme illgitimes en provenance d'Internet, tout enlaissant circuler librement les autres connexions. Pour cela, un pare-feu analyse les adresses IP, lesprotocoles, les ports source et de destination, et, suivant la politique qui lui aura t dicte, autorisera,ignorera ou rejettera les paquets qui transitent. Un pare-feu n'offre cependant pas une scurit absolue. Eneffet, plusieurs autres lments sont ncessaire pour couvrir l'ensemble du domaine (antivirus, serveurmandataire, dtecteurs d'intrusion, bon comportement des utilisateurs, etc.). ALCASAR tant un projet libreet gratuit, il se devait d'intgrer un pare-feu libre, et surtout rput. C'est la raison pour laquelle Netfilter at choisi.

    Pourquoi un pare-feu dynamique ?Le pare-feu de l'actuelle version d'ALCASAR (V2.8) tant statique, cela

    signifie que ses rgles s'appliquent pour l'ensemble des utilisateurs du rseau deconsultation. La future version d'ALCASAR V2.9 ayant pour but d'attribuer desniveaux de filtrage diffrents par utilisateur, cette approche a donc d trerepense afin d'attribuer des rgles diffrentes en fonction des usagers. Celasignifie qu'un utilisateur ne sera plus dirig vers un unique chemin, mais seraaiguill lors de sa connexion en fonction de son niveau de filtrage.

    10Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

    Illustration 6: Aiguillage d'un usager

    Illustration 5: Pare-feu

  • 1 Ajout de fonctionnalitsLes premires tches qui m'ont t confies avaient pour but de me faire dcouvrir le fonctionnement

    d'ALCASAR pour pouvoir descendre plus en profondeur par la suite : la partie pare-feu, se situant au coeurdu systme. J'ai donc eu pour mission d'amliorer certains points de l'interface d'administration, et plusparticulirement le filtrage des sites web (liste noire). ALCASAR dispose d'un systme de filtrage de sitesweb qui s'appui sur la liste noire de Toulouse (http://dsi.ut-capitole.fr/blacklists/), nous offrant diffrentescatgories interdire allant des sites de jeux aux sites pdophiles. Dans la version 2.8 d'ALCASAR, ladescription des catgories tait crite la main par un membre de l'quipe d'ALCASAR. Cela peut poserproblme, car cette liste est en constante volution et par consquent, des catgories peuvent tre ajoutes ouenleves, ce qui gnre des erreurs. Mon rle a donc t d'automatiser cette tche. La liste noire intgre unedescription des catgories, j'ai donc bascul le systme afin qu'il s'appuie pour chaque catgorie, sur ladescription fournie. Ainsi, lors du tlchargement, la liste est traite afin d'tre diffrents endroits et c'est ce moment que le script rcupre les descriptions et les affecte aux catgories. Ensuite, lorsque l'on cliquesur une catgorie dans le panel d'administration, la page PHP va chercher l'information et l'affiche.

    ce moment prcis, nous ne disposions qued'une description et l'administrateur ne pouvaitpas savoir ce qui se trouvait rellement dans lescatgories (tant composes de noms de domaine,d'URL et d'adresses IP). Dans la continuit decette dmarche, j'ai implment un codepermettant d'afficher le nombre de noms dedomaine, d'URL et d'adresses IP que contientchaque catgorie et c'est ce moment que j'airencontr ma premire difficult. Certainescatgories contiennent plus d'un million de nomsde domaine, d'URL ou d'adresses IP et calculerleur nombre prenait environ neuf secondes enPHP sur disque dur, ce temps d'attente tantbeaucoup trop long pour l'administrateur, j'aidcid de faire appel un code plus rapide, leBASH, qui lui offre des fonctions en langage C

    optimis. Aprs la mise en place de celui-ci, nous sommes passs de neuf secondes une seconde pour lestrs grosses catgories, ce qui est plus acceptable. Enfin, dans le but de permettre l'administrateur devisualiser ce que contiennent rellement les catgories, des liens sur les nombres de noms de domaine,d'URL et d'adresses IP ont t crs. Lors d'un clic sur ces liens, les premires lignes de chaque fichier sontaffiches, ce qui donne un aperu de ce que contient une catgorie. ce point, si un utilisateur cliquait parexemple, sur le nombre d'adresses IP, puis sur le nombre d'URL, le calcul de ces nombres tait refait chaque fois, ce qui n'tait pas une solution adapte. J'ai donc choisi de faire les calculs une seule fois lorsd'un clic sur les catgories et de passer les nombres obtenus en paramtres lors de l'appel de la page web(mthode GET). De cette faon, le temps d'attente n'intervient qu'une seule fois.

    Cette premire partie s'est acheve avec la mise en place du nombre total d'adresses IP, d'URL et denoms de domaines que compte la liste noire dans le panel d'administration, afin de donner un aperu de cequ'elle contient, globalement.

    11Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

    Illustration 7: Description d'une catgorie

  • 2 Fusion des pages ticket rapide et ticket usagerMa mission s'est poursuivie par la simplification de l'interface d'administration en fusionnant la page

    de cration d'un usager et celle de cration d'un ticket rapide, car celles-ci convergent vers le mme but. Decette faon, l'administration du systme est simplifie. La page de cration d'un ticket rapide offre lapossibilit de crer un usager avec des attributs gnraux tels que l'e-mail, la date d'expiration du compte, lenombre de connexions simultanes, etc., contrairement la page de cration d'un usager qui elle, offre uneplus large gamme d'attributs. Parmi ceux-ci, nous pouvons trouver le temps maximal d'une connexion, lenombre maximal de donnes transfres ou encore la limitation de la bande passante. Le but a t de crerune unique page (cration d'un usager), pouvant s'tendre si l'administrateur le souhaite. La page de crationd'un ticket rapide a t employe, sur laquelle j'ai rajout un bouton permettant d'tendre le choix desattributs, ce qui permet de rendre l'utilisation de l'interface plus intuitive.

    C'est aussi grce cette page qu'ALCASAR offre la possibilit aux usagers de s'authentifierautomatiquement lorsque leur adresse MAC est reconnue, en renseignant leur adresse MAC la place dunom d'utilisateur et le mot password pour le mot de passe, lors de la cration de leur compte. Dans laversion 2.8 d'ALCASAR, l'administrateur, pour la cration d'un tel compte, doit entrer une adresse MACuniquement de la forme 08-00-27-F3-DF-68, ce qui peut poser problme si l'administrateur se trompe. C'estla raison pour laquelle j'ai mis en place un systme d'expressions rgulires afin que l'administrateur puisseentrer une adresse MAC du type 08-00-27-f3-df-68, 08:00:27:F3:DF:68 ou encore 08:00:27:f3:dF:68. Unefois l'adresse MAC reconnue, celle-ci est transforme en un format unique compatible avec les champs de labase de donnes. Ce mcanisme permet de limiter le risque d'erreurs de la part de l'administrateur.

    Une fois un compte cr, un ticket est gnr par ALCASAR, rcapitulant les informations d'uncompte, pour tre donn l'utilisateur.

    12Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

    Illustration 8: Cration d'un usager

  • Dans la version 2.8, lorsqu'un administrateur veut crer un compte avec une adresse MAC, un ticketest gnr, ce qui peut s'avrer inutile, parce qu'un utilisateur n'a besoin d'aucune information (mot de passe,identifiant) pour se connecter, son adresse MAC tant reconnue, il se fait automatiquement connecter. J'aidonc supprim l'appel la gnration automatique d'un ticket lors de la cration d'un tel compte.

    13Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

    Illustration 9: Ticket gnr par ALCASAR

  • 3 Amliorations de la partie Filtrage

    Liste noireMa mission s'est ensuite poursuivie en descendant un peu plus en profondeur dans le systme. Pour

    la partie filtrage des usagers, ALCASAR s'appuie sur la liste noire de Toulouse (http://dsi.ut-capitole.fr/blacklists/). Il s'agit d'une archive diffuse par l'Universit de Toulouse 1, permettant un meilleurcontrle de l'utilisation d'Internet. En effet, cette archive contient d'une part une liste noire composed'adresses IP, d'URL et de noms de domaine frauduleux, pornographiques, dangereux, etc., regroups encatgories (Radio, Adult, Bank, etc), et d'autre part, une liste blanche regroupant des sites jugs fiables etinoffensifs. Cette archive est activement maintenue non seulement, par des dizaines de contributeurs, maisaussi par des robots explorant Internet.

    Dans son menu d'administration, ALCASAR propose un filtrage des usagers bas sur la liste noire.Avec ce filtrage, un administrateur a la possibilit de mettre jour la liste noire, et de slectionner la ou lescatgories qu'il souhaite interdire pour son rseau de consultation.

    S'il le souhaite, l'administrateur peut rhabiliter ou filtrer des noms de domaine prcis, ou encore desURL. Dans la version 2.8, le filtrage par adresse IP n'est pas prsent. Mon travail a donc t d'intgrer ausystme un filtrage par adresse IP venant complter celui des URL et des noms de domaine, jusqu'maintenant non utilis du fait d'un temps d'attente trop important au niveau de l'ajout de ces adresses dans lepare-feu, mais dsormais surmontable au moyen de l'intgration de SET par le noyau Linux. Un SET peuttre assimil une sorte de tableau dans lequel nous pouvons ajouter ce que l'on dsire dans le but de letraiter au niveau du pare-feu, ce qui vite de crer des centaines de rgles (coteux en temps).

    Ma premire approche a consist faire une boucle alimentant un SET dans le pare-feu nommBlacklist_ip_blocked avec les adresses IP des catgories slectionnes par l'administrateur, puis d'ajouterdes rgles bloquant ces adresses IP. La taille du SET correspondant au nombre d'adresses IP des catgoriesslectionnes. Les limites de cette approche sont vite apparues. En effet, cette mthode fonctionneparfaitement sur un petit nombre d'adresses IP, mais lorsqu'une catgorie d'un million d'adresses IP estajoute, le temps d'attente devient alors inacceptable. Pour rsoudre ce problme, aprs des recherches plusapprofondies, j'ai remarqu que les SET, grs avec la commande BASH ipset pouvaient tre sauvegardsdans des fichiers textes, afin de repeupler un SET dans le futur. J'ai donc dcid de tester cette mthode afin

    de comparer le temps d'attente avec le prcdent. Les tests sesont avrs fructueux, puisque la remise en mmoire d'un SETde plus d'un million d'entres, grce un fichier de sauvegarde,prend quelques secondes contre quelques minutes pour lapremire mthode. Suite cette tude, afin d'optimiser le code,j'ai donc pris l'initiative, avec l'accord de mon matre de stage,de crer un fichier de sauvegarde par catgorie, respectant leformat attendu par la commande ipset, la suite dutlchargement de la liste noire. Cette mthode me permettantdonc de directement, et rapidement, peupler le SETBlacklist_ip_blocked avec les fichiers de sauvegarde dechaque catgorie slectionne. Par la suite, si un utilisateur

    connect souhaite aller sur une des adresses IP appartenant ce SET, il est bloqu par le pare-feu, dans le cas

    14Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

    Illustration 10: Catgories de la liste noire

    Illustration 11: Blocage par le pare-feu

  • inverse, il navigue librement.

    Une fois cette solution intgre, il fallait offrir la possibilit l'administrateur, de pouvoir rhabiliterou filtrer les adresses IP qu'il souhaite, sans pour autant dsactiver ou activer une catgorie complte. Deplus, la rhabilitation et le filtrage des URL tant inappropris (le plus souvent, un site complet est interditd'accs ou autoris), ils ont donc t supprims afin de mettre en place le systme d'adresse IP.L'administrateur peut alors, librement ajout ou rhabiliter, des adresses IP. Au niveau du pare-feu, le filtragepersonnel d'adresses IP se traduit par l'ajout de ces adresses dans le SET Blacklist_ip_blocked. Si desadresses doivent tre rhabilites, elles sont supprimes du SET. La taille du SET est gale au nombred'adresses IP des fichiers de sauvegarde slectionns par l'administrateur, plus les adresses IP filtres, moinsles adresses IP rhabilites.

    De plus, afin de satisfaire une demande des utilisateurs d'ALCASAR, j'ai mis au point un systmed'ajout de fichiers d'adresses IP destins tre filtrs. Si un administrateur veut ajouter sa liste noired'adresses IP bloquer, il pourra dsormais le faire dans la version V2.9 d'ALCASAR.

    Une fois envoys ALCASAR, ces fichiers d'adresses IP ne sont pas simplement ajouts au SETBlacklist_ip_blocked. Ils sont d'abord reconstruits afin d'viter les erreurs au niveau du pare-feu. C'est--dire que chaque fichier est parcouru dans son intgralit afin d'en extraire uniquement les adresses IP (viades expressions rgulires). De cette faon, mme si le fichier contient du texte comme des commentaires, ilne sera pas pris en compte. Ensuite, le fichier est modifi afin de ne mettre qu'une seule adresse IP par ligneet les doublons sont limins. Une fois cette procdure termine, la syntaxe des fichiers de sauvegarde pourles SET est mise en place, afin que l'ajout des adresses IP dans le SET Blacklist_ip_blocked soit le plusrapide possible. Bien entendu, la taille du SET est recalcule en fonction de ces fichiers ( la taille du SET estgale au nombre d'adresses IP des fichiers de sauvegarde slectionns par l'administrateur, plus les adressesIP filtres, moins les adresses IP rhabilites, plus le nombre d'adresses IP que contient chaque fichier ajoutpar l'administrateur). Si le fichier d'adresses IP ajout par l'administrateur contient des adresses IP djprsentes dans la liste noire de Toulouse, celles-ci sont ignores. Ce problme permet d'tre rsolu avec leparamtre -! passer la commande ipset .

    15Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

    Illustration 12: Rhabilitation et filtrage d'adresses IP

    Illustration 13: Fichiers d'adresses IP

  • Liste blancheLe systme de liste blanche n'tant pas prsent dans la version V2.8 d'ALCASAR, j'ai eu pour tche

    de la rendre oprationnelle pour la future version. Contrairement une liste noire qui filtre certains sites, uneliste blanche n'autorise que certains sites et bloque les autres. Concernant les noms de domaine, il a fallumettre en place un nouveau serveur lger DNS : Dnsmasq, n'autorisant que les noms de domaine descatgories slectionnes par l'administrateur, et bloquant les autres. Ce problme tant rsolu, un deuxime afait son apparition : une personne connaissant l'avance une adresse IP peut joindre le site sans tre filtre.Dans le but de rsoudre ce problme, j'ai dans un premier temps contact monsieur Fabrice Prigent de laliste noire de Toulouse afin qu'il fournisse les adresses IP des noms de domaine dans l'archive de la listenoire. La rponse s'est avre ngative, car un site peut en cacher d'autres, et par consquent leurs accspourraient tre bloqus par le premier. Dans un second temps, j'ai dcid de rcuprer les adresses IP de tousles noms de domaine, avec des rsolutions DNS, afin de faire le lien au niveau du pare-feu entre les noms dedomaine et les adresses IP (si l'adresse IP d'un site n'est pas rpertorie, son accs est bloqu). Pour ce faire,lors du tlchargement de la liste noire, je faisais une rsolution DNS par nom de domaine. En les lananttoutes en parallle, un temps d'attente d'environ deux minutes tait ncessaire. Cette seconde solutionfonctionnait, jusqu' ce que Google (utilis comme serveur DNS) assimile ce procd une attaque DOS(dni de service) et par consquent bloque l'accs ses services. Enfin, en effectuant plus de recherches, unesolution a merg. Il se trouve que Dnsmasq (logiciel utilis dans ALCASAR) possde une optionpermettant de peupler un SET du pare-feu, avec les adresses IP qu'il a rsolues. Grce ce procd, soit unsite est libre d'accs et nous avons son adresse IP, soit il est interdit par Dnsmasq qui ne renseigne pas sonadresse IP.

    La solution a t la suivante : j'ai cr un SET whitelist_ip_allowed accueillant les adresses IPproposes par Dnsmasq. Ensuite, j'ai ajout une rgle dans le pare-feu permettant de bloquer l'accs un sitesi son adresse IP ne figure pas dans le SET. De ce fait, soit un utilisateur demande un site autoris, Dnsmasqle laisse pass et l'adresse IP est ajoute au SET whitelist_ip_allowed, soit il entre directement une adresseIP dans la barre de recherche de son navigateur, si celle-ci est prsente dans le SET, il accde au site, sinonil se trouve bloqu. Concernant la taille allouer ce SET, je me suis bas sur une moyenne globale desadresses IP des sites de la liste blanche : sur l'ensemble des sites, certains ont une seule adresse IP, d'autresen ont deux ou trois, et des sites comme Google peuvent avoir jusqu' six adresses IP. Aprs cette tude j'aidonc choisi de prendre la moyenne (6+2+1 / 3 = 3), ce qui donne trois fois plus d'espace pour stocker lesadresses IP, qu'il y a de noms de domaine, en sachant que les utilisateurs n'iront jamais sur tous les sites de laliste blanche. Dans le cas, o les usagers consulteraient tous les sites et que la taille du SET viendrait neplus suffire (ce qui semble impossible), la liste blanche fonctionnera encore, car si un SET est plein,Dnsmasq n'ajoute plus d'adresse IP, et donc permet le maintien du filtrage.

    Enfin, la liste blanche intgre galement un systme d'adresse IP et de noms de domaine autoriss, aucas o l'administrateur voudrait autoriser certains sites bloqus.

    16Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

    Illustration 14: Catgories de la liste blanche

  • 4 Pare-feu dynamiqueMon travail s'est poursuivi en descendant au coeur du systme, le but tant non plus d'avoir un pare-

    feu global, mais d'avoir un pare-feu dynamique, c'est dire s'adaptant chaque utilisateur en fonction de sonniveau de filtrage. Pour cela, la premire tape a t de dfinir les niveaux de filtrage des utilisateurs. Afinde satisfaire un maximum de clients d'ALCASAR et de rpartir au mieux les filtres, quatre grands niveauxde filtrages ont t retenus :

    1. pas de filtrage

    2. filtrage par antivirus

    3. filtrage par antivirus + liste noire

    4. filtrage par antivirus + liste blanche

    J'ai ensuite intgr ces diffrents niveaux de filtrage au systme de cration de comptes afin quel'administrateur ait la possibilit d'attribuer chaque utilisateur, un niveau de filtrage.

    En base de donnes, ce paramtre est cod de la manire suivante :

    1. aucun paramtre : pas de filtrage

    2. 00000001 : l'utilisateur est filtr uniquement par l'antivirus

    3. 00000011 : l'utilisateur est filtr par l'antivirus et la liste noire

    4. 00000101 : l'utilisateur est filtr par l'antivirus et la liste blanche

    Le premier bit correspond l'antivirus, le second la liste noire et le troisime la liste blanche. Decette faon, ce paramtre pourra facilement s'adapter d'autres niveaux de filtrage, si l'quipe d'ALCASARdcide d'en mettre d'autres un jour. L'ajout d'aucun paramtre en base de donnes si l'utilisateur n'a pas defiltrage est trs important, car c'est grce cela que s'il fait partie d'un groupe, les attributs du groupeprendront le dessus sur ceux de l'utilisateur. En revanche, si un niveau de filtrage diffrent a t attribu l'utilisateur et que celui-ci fait partie d'un groupe, ce seront les attributs utilisateur qui seront prioritaires.

    Au niveau du pare-feu, ces niveaux de filtrages se sont traduits par quatre SET :

    1. no_filtering_set pour les usagers sans filtrage

    2. havp_set pour les usagers filtrs avec l'antivirus (HAVP+LibClamav)

    3. havp_bl_set pour les usagers filtrs avec l'antivirus et par la liste noire

    4. havp_wl_set pour les usagers filtrs avec l'antivirus et la liste blanche

    Aucune taille n'a t renseigne pour ces SET car de base, un SET peut contenir 65536 entres, cequi est jug comme plus que satisfaisant en vue du nombre potentiel d'utilisateurs d'ALCASAR connectssimultanment.

    Lorsqu'un utilisateur se connecte, la passerelle d'interception Coova-Chilli gnre un Hook(dclenche un vnement) nous permettant de rcuprer en direct les attributs propres l'utilisateur. Grce cette fonctionnalit, en fonction de l'tat de la variable correspondant au filtrage, on ajoute l'adresse IP del'utilisateur dans le SET correspondant. De cette faon, les utilisateurs se trouvent aiguills vers leur niveau

    17Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

    Illustration 15: Filtrage usager

  • de filtrage. Ensuite, dans le pare-feu, je dirige les SET dans le chemin qui leur est destin (voir le schma del'architecture d'ALCASAR en annexe), en ayant pris soin de camoufler les ports utiliss afin d'viter lesscans de port, et de filtrer les SET havp_bl_set et havp_wl_set.

    Concernant le filtrage par l'antivirus, deux instances de l'antivirus doivent tre prsentes. Unantivirus tant en mode non-transparent afin d'accueillir les paquets provenant de Dansguardian (servant aufiltrage des URL) dans le cas du filtrage par la liste noire et un en mode transparent afin d'y envoyerdirectement les paquets dans le cas du filtrage par l'antivirus uniquement (via le SET havp_set). J'ai doncintgr ce procd au systme.

    Aussi, afin de rendre le systme de filtrage par noms de domaine oprationnel, deux nouvellesinstances de Dnsmasq ont t mises en place. Une nomme Dnsmasq-blacklist , afin de rediriger lesutilisateurs vers une page de blocage s'ils tentent d'accder un site bloqu. Une seconde nomme Dnsmasq-whitelist , afin d'interdire tous les noms de domaine sauf ceux autoriss par la liste blanche.

    18Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

  • 5 Mise jour de Mageia 2 vers Mageia 4

    BasculementLa future version d'ALCASAR V2.9, devant sortir sous Mageia 4, j'ai donc d adapter mon travail

    cette nouvelle distribution afin que tout reste fonctionnel. Les scripts d'installation et de dsinstallation ontt modifis afin qu'ALCASAR intgre mes modifications lors de son installation, et les supprime lors de sadsinstallation. De plus, Mageia 4 exploitant le nouveau lanceur SystemD , diffrents paquets ont d tremodifis et recompils afin qu'ils puissent s'adapter (Proxy antivirus : HAVP, Dnsmasq). Enfin, j'aireffectu tous les tests afin d'tre compltement sr que tout fonctionne convenablement sous ce nouveausystme.

    Compilation d'un paquetALCASAR V2.9 fonctionnant sous Mageia 4, se servait encore du logiciel HAVP (Proxy antivirus)

    packag pour Mageia 2. Dsirant acqurir un maximum d'exprience durant ces quatre mois de stage, j'aivoulu le packager pour Mageia 4. J'ai donc effectu des recherches sur la compilation de paquets, et bienentendu modifi le code de HAVP pour qu'il s'adapte l'architecture de Mageia 4. Une fois ce paquettermin, et s'installant correctement, j'ai eu pour objectif de le proposer Mageia. Mageia fonctionne avecun systme de Mentoring pour les nouveaux contributeurs. Dans le but de devenir contributeur, j'ai priscontact avec l'quipe de dveloppement sur le forum IRC de Mageia et j'ai demand la procdure suivre.Un site m'a alors t indiqu, sur lequel je me suis inscrit en indiquant mes connaissances, afin qu'un Mentorm'accepte. Je suis l'heure actuelle en attente d'une rponse.

    Rsolution d'un bogue Suite la mise jour du logiciel antivirus LibClamAV (0.98.4), HAVP ne pouvait plus fonctionner,

    indiquant que la base de donnes ne pouvait tre charge cause d'un problme d'allocation de mmoire.Aprs quelques recherches, il s'est trouv que Clamav avait intgr OpenSSL et que certaines fonctionsd'initialisation devaient tre appeles par HAVP. J'ai donc intgr les fonctions intcl_initialize_crypto(void) et void cl_cleanup_crypto(void) au fichier d'en-tte correspondant(/usr/include/clamav.h), puis modifi le code source d'HAVP afin qu'il prenne en compte l'appel cesfonctions. Aprs recompilation, tout fonctionnait parfaitement. J'ai donc propos un patch l'quipe deHAVP qui m'a rpondu que ma solution tait correcte, mais qu'ils attendent un retour de l'quipe de Clamavpour le moment.

    19Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

  • ConclusionAu cours de cette exprience de quatre mois, j'ai eu la chance de participer au dveloppement d'un

    projet libre, au travers duquel j'ai pu mettre en pratique et amliorer mes connaissances, que cela soit dupoint de vue de la scurit des systmes, ou de celui de la programmation. En travaillant au sein de ce projet,j'ai eu la chance de pouvoir largir mon exprience en m'intressant la compilation de paquets et larsolution de bogues, ce qui m'a permis d'entrer en contact avec les quipes d'HAVP et de Mageia, pourpeut-tre une contribution future. ALCASAR tant un projet collaboratif, j'ai pu dcouvrir la faon defonctionner d'un tel projet et donc me familiariser avec des logiciels de travail collaboratif.

    Travailler sur ce projet c'est aussi prendre en considration les problmes que peuvent rencontrer sesutilisateurs. C'est la raison pour laquelle, j'ai pu entrer en contact avec quelques membres du forum afin deleur venir en aide sur des problmes que j'tais en mesure de rgler, et d'avoir quelques retours de personnesexternes l'quipe d'ALCASAR propos de la prochaine version.

    Pour conclure, j'aurai souhait avoir un peu plus de temps afin de poursuivre mon travail surALCASAR, pour tudier d'autres branches d'volution.

    20Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

  • Glossaire

    BASH : Bourne-Again Shell

    DNS : Domain Name System

    GET : tableau des valeurs passes au script courant via les paramtres d'URL en PHP

    GPL : General Public Licence

    IP : Internet Protocol

    MAC : Media Access Control

    PHP : Language de programmation libre pour produire des sites web

    SSH : Secure Shell

    URL : Uniform Resource Locator

    21Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

  • Annexes

    Annexe 1 : Architecture d'ALCASAR

    22Stage de quatrime anne Jean-Baptiste CoupritStage de quatrime anne Jean-Baptiste Couprit

  • tablissement d'accueilPrsentation d'ALCASARArchitecture de ce documentProblmatiqueSujetPourquoi un pare-feu dynamique ?

    1 Ajout de fonctionnalits2 Fusion des pages ticket rapide et ticket usager3 Amliorations de la partie Filtrage Liste noireListe blanche

    4 Pare-feu dynamique5 Mise jour de Mageia 2 vers Mageia 4BasculementCompilation d'un paquetRsolution d'un bogue Annexe 1 : Architecture d'ALCASAR