You are on page 1of 59

MEMOIRE DE FIN DETUDES ESIEA

&
MEMOIRE DE MASTERE SPECIALISE N&IS
CROSNIER Franois 2013

Entreprise : Laboratoire de cryptologie et virologie oprationnelle


38 Rue des Docteurs Calmette et Gurin, 53000 Laval

Intgration dun superviseur de flux rseaux de type


NETFLOW
Integrating of a network monitoring system using the NETFLOW technology

Membres du jury : Mmoire soutenu le : 22 octobre 2013

M. Eric FILIOL, Prsident du jury

M. Richard REY, Matre de stage

M. Bertrand LARGET, Tuteur pdagogique


Table des matires

Remerciements ....................................................................................................................................... 2
Rsum .................................................................................................................................................... 3
Executive summary ................................................................................................................................. 4
I - Introduction ........................................................................................................................................ 5
Entreprise daccueil ............................................................................................................................. 5
Le projet ALCASAR ............................................................................................................................... 6
II - tat de lart ........................................................................................................................................ 8
Lgislation franaise ............................................................................................................................ 8
Portail captif et NAC .......................................................................................................................... 10
Solutions existantes........................................................................................................................... 11
III Problmatique ............................................................................................................................... 13
Prise en main dALCASAR .................................................................................................................. 13
Intgration dun systme de supervision .......................................................................................... 20
Quest-ce quune sonde ? .............................................................................................................. 20
Pourquoi une sonde NetFlow ? ...................................................................................................... 21
IV - Intgration de la solution ALCASAR ........................................................................................... 26
Fonctionnement de la solution : sonde NetFlow + NfDump + NfSen ............................................... 26
Gestion et archivage des fichiers journaux ....................................................................................... 33
V - Intgration de RPM la distribution Mageia ................................................................................. 38
Quest quun RPM ?........................................................................................................................... 38
Comment raliser un RPM sous Mageia ........................................................................................... 40
Les RPM intgrs / Pourquoi les intgrer ALCASAR ? .................................................................... 42
VI - La communaut du Logiciel Libre .................................................................................................. 47
ALCASAR et le logiciel libre ................................................................................................................ 47
Devenir packageur officiel Mageia .................................................................................................... 47
VII - Conclusion ..................................................................................................................................... 51
Bibliographie / Webographie ................................................................................................................ 51
Glossaire ................................................................................................................................................ 51
Annexes ................................................................................................................................................. 51

1 Mmoire de fin dtudes ESIEA CROSNIER Franois


Remerciements
Avant de poursuivre, je tiens travers ce rapport remercier toutes les personnes mayant apport
leur soutien durant toute la dure de mon stage.

Dans un premier temps, je tiens remercier l'ensemble des personnes du laboratoire CVO pour
leur accueil et leur bonne humeur quotidienne.

Je tiens tout particulirement remercier monsieur Richard REY, de mavoir suivi et aid tout
au long de mon stage, ainsi que pour sa patience et le temps qu'il m'a consacr. Je le remercie
galement pour la confiance quil ma accorde durant ces six mois de stage, en esprant en
avoir t digne.

Un grand merci galement monsieur Bertrand LARGET, davoir accept de me suive en tant que
tuteur pdagogique. Jen profite pour le remercier au mme titre que monsieur REY, pour le temps
pass la relecture de mon mmoire.

Je terminerai en remerciant mes proches pour le soutien indfectible dont ils mont fait preuve
durant la rdaction de ce document, et plus gnralement durant lintgralit de mon cursus
acadmique.

2 Mmoire de fin dtudes ESIEA CROSNIER Franois


Rsum
Jai ralis mon stage de fin dtudes au Laboratoire de cryptologie et virologie oprationnelle de
Laval (53). Ma mission fut de travailler au dveloppement et lvolution dun portail captif scuris
open source.

ALCASAR (Application Libre pour le Contrle dAccs Scuris et


Authentifi au Rseau) est un contrleur daccs au rseau ou NAC
(Network Access Control), libre et gratuit permettant conformment la
loi franaise en vigueur de protger, de contrler et surtout dtre
capable dimputer aux usags les accs effectus sur Internet depuis un
rseau de consultation. Pour ce faire, le projet sappuie et intgre pas
moins dune vingtaine doutils, tous issus de projets libres proposant
diffrentes fonctionnalits comme une authentification forte, un pare-feu, un antivirus, un serveur
DNS, un filtre dURL et de noms de domaine, etc. Lensemble de ces outils coupl lattention
particulire apporte lors de lintgration au respect des normes de scurit fait dALCASAR un
bastion infranchissable depuis Internet. Il assure ainsi une scurit remarquable depuis le rseau
de consultation. De plus, il offre un panel de fonctionnalit complet et intressant, le tout
fonctionnant de manire intuitive pour lutilisateur.

Fonctionnel mon arrive, mon rle fut donc dapporter de nouvelles fonctionnalits au NAC, en
veillant ne pas mettre en pril la scurit du portail. travers ce document, je vais dtailler les
phases importantes du travail ralis durant ces six mois de stage. Je marrterai plus
particulirement sur les deux tches mayant demand la plus grosse charge en terme de recherche
et dintgration.

Une grosse partie de mon stage fut consacr la recherche, lanalyse, lintgration et la mise en
uvre dune sonde rseau permettant de faire voluer le dispositif dimputabilit des traces. Ce
dernier sappuyant sur les flux rseau transitant via ALCASAR afin de contrler et de diagnostiquer la
charge sur le rseau du NAC. Je dtaillerai dans un premier temps mon travail dit de veille
technologique dont le but fut de trouver loutil le plus en adquation avec nos besoins
oprationnels, tout en sassurant de la faisabilit dune intgration de la solution au sein du projet.
travers cette analyse, jexposerai dans un second temps les difficults auxquelles je me suis heurt
lors de lintgration de la sonde choisie. En effet, afin de rendre linstallation plus aise, la
philosophie est de compltement automatiser linstallation dALCASAR sur la machine. Il ma donc
fallu trouver des solutions me permettant cela.

Ce prcdent aspect a fait lobjet de la seconde grosse partie de mon stage. Dcoulant
directement de la volont dintgration de la sonde rseau ALCASAR, jai d apprendre raliser
des package RPM pour Mageia et plus gnralement sous les distributions RedHat like . Il ma
fallu pour cela apprhender les connaissances techniques ncessaires, mais galement mimprgner
de la culture dite du logiciel libre et de son mode de dveloppement tutor et communautaire.

3 Mmoire de fin dtudes ESIEA CROSNIER Franois


Executive summary
In the Laboratory of Operational Cryptography and Virology at Laval (53), during my internship the
mission was given to me was to work on the development and the evolution of a secure open-source
captive portal.

ALCASAR (Application Libre pour le Contrle dAccs Scuris et


Authentifi au Rseau) is a French totally free captive portal in
accordance with the French law to protect, control, and especially be
able to impute to a particular user its Internet access from the local
consultation network. To do that the project embed approximately
twenty tools all from Open-Source projects which are offering different
features like a strong authentication, a firewall, an antivirus, a DNS
server, URL filtering etc.. All of these tools combined with a particular care to compliance with safety
standards make ALCASAR an impassable "bastion" from the Internet, and ensures a good security
and confidentiality for the consultation network. All of these offering a range of interesting
functionalities, all appear intuitive to the user.

Functional on my arrival, my goal has been therefore to provide new features to the captive portal,
making sure not to jeopardize the safety of the portal. In this document I will detail the important
phases of my work carried out during the six-month internship. I'll focus particularly on the two tasks
that required to me the biggest load of research and work.

A big part of my internship was spent on research, analysis, integration and start-up of a network
probe to analyze all network traffic passing through ALCASAR to monitor and diagnose the load on
the captive portal network. I will detail in a first time my work of "technology watch" whose purpose
was to find the most appropriate tool with our needs while ensuring the integration feasibility of the
chosen solution in the project. Through this analysis I will explain in a second step the difficulties that
I encountered during the integration of the selected probe. In fact for the sake of ease of installation,
ALCASAR's philosophy is to offer an installation script which allows full automation of ALCASAR setup
on the machine. So I had to find a solution which permits that.

The other big part of my internship follows from the above aspects. Direct result of the need to
integrate the sensor network into ALCASAR, I had to train myself to build "RPM package" for Mageia
and more generally in the "RedHat like" distributions. To do that I had to get the necessary technical
knowledge, but also immerse myself into the "Open-Source" world and its mentoring process.

4 Mmoire de fin dtudes ESIEA CROSNIER Franois


I - Introduction
Entreprise daccueil
Le laboratoire de cryptologie et virologie oprationnel (C+V) fut la
structure mayant accueilli durant mes six mois de stage. Implant au
sein de lcole Suprieure dInformatique, Electronique, Automatique
(ESIEA) depuis juillet 2007. Il est initialement issu de la collaboration
avec le laboratoire de virologie et cryptologie de lcole Suprieure et
dApplication des Transmissions (ESAT) de Rennes (35). Fin 2008 le
laboratoire C+V de Laval accueille dfinitivement des membres issus
du laboratoire de lESAT, et notamment son responsable, M. Eric
FILIOL devenu directeur du laboratoire et responsable de la Recherche
et des dveloppements industriels du groupe ESIEA. Fort de son hritage militaire, lactivit de
recherche du laboratoire C+V sinscrit dans cette continuit et jouit de liens privilgis avec les
ministres de la Dfense, de la Justice ou encore de lIntrieur. Limplication de la structure dans des
projets pour ces diffrents ministres, impose la cration et le maintien dun environnement de
mthodes de travail rglements et scuris en accord avec la rglementation interministrielle en
matire de scurisation des locaux et lhabilitation des personnes.
Dans loptique dune collaboration toujours plus troite avec le ministre de la Dfense, le
laboratoire achve en 2011 une phase de scurisation de ses locaux. Cette rigueur offre dsormais au
laboratoire la capacit de mener des projets sensibles dans un environnement sr, avec tout ce que
cela impose en matire de rglementations.
Les principaux domaines de recherche explors par le laboratoire sont :
La cryptologie symtrique, cryptologie asymtrique, cryptanalyse et cryptographie
Les Systmes stganographiques
La virologie
La scurit des rseaux
La guerre informatique / la cyberscurit
La scurit des environnements embarqus
Algorithmique et implmentation scurise
Soucieux de maintenir une comptence acadmique de premier ordre, coupl une recherche
applique lie des problmatiques concrtes issues du milieu gouvernemental, mais galement
industriel, lobjectif principal du laboratoire est non seulement de comprendre les menaces actuelles
pesant sur les systmes dinformation, mais surtout dtre en mesure de prvoir et de contrer les
attaques futures.
Cette dmarche danticipation de la menace (domaine dfensif) adosse lvolution permanente
des politiques de scurisation des systmes dinformation (gouvernementaux et industriels) est le
maitre mot de tous les projets mens au sein du laboratoire. Cette philosophie a notamment permis
au laboratoire de prendre part au projet DAVFI. En quelques mots, le Dmonstrateur dAntiVirus
Franais et International (DAVFI) est commandit par le gouvernement franais du fait de sa volont
dobtenir son indpendance numrique en matire dantivirus.

5 Mmoire de fin dtudes ESIEA CROSNIER Franois


Les membres de (C+V) interviennent galement sur la scne internationale lors de confrences
(H2HC 2011, Black Hat 2011, Hack in Paris 2013, Nuit du Hack 2013, GroundZero 2013, etc.)
prsentant le travail ralis et les publications enregistres toute au long de lanne.
Au sein de lESIEA, que ce soit dans le cursus Ingnieur ou dans le cadre de deux Master spcialises
en scurit informatiques (Bac +6), les membres du laboratoire (C+V)o sont trs impliques dans le
cursus universitaire de cette dernire (cours, suivi de projet, etc.). Outre le fait dapporter une
formation de qualit, le laboratoire offre galement aux tudiants intresss et motivs par les
questions relatives la scurit informatique dintgrer le laboratoire durant leur cursus en tant
qu Espoir Recherche . Il intgre galement des doctorants, ainsi que des ingnieurs stagiaires.

Le projet ALCASAR
Le projet ALCASAR est issu dun besoin fonctionnel exprim au sein dune entit gouvernementale
consistant assurer la traabilit et limputabilit des traces laisses par nimporte quelles personnes
utilisant un quipement rseau connect sur un rseau de consultation Internet.

Aprs avoir effectu une veille technologique des solutions existantes sur le march, il sest avr
quil nexistait pas de NAC libre permettant la fois dintercepter, dauthentifier, filtrer et dimputer
laccs des utilisateurs Internet le tout de manire scuritaire et non onreuse. De ce constat, deux
solutions ont merg.
La premire aurait t de sous-traiter le travail une entreprise extrieure engendrant
inluctablement un cot financier, et le risque dexploiter des technologies propritaires avec tout ce
que cela implique (support technique, maintien en condition de la solution, etc.).
Une seconde alternative tait de raliser un contrleur daccs aux rseaux moindres cots avec les
ressources disponibles en interne en se basant sur des projets libres existant.
La seconde solution fut donc retenue et cest ainsi que le projet ALCASAR vu le jour fin 2008.
Aujourdhui sous licence libre GPLv3, ce projet est hberg sur Internet. Il est suivit par les deux
personnes layant initi (Rexy et 3abtux) aid par une dizaine de dveloppeurs contribuant son
volution. Une association de Loi 1901 a t cre en septembre 2013 afin de rassembler les
contributeurs du projets.

Nous venons de le voir ALCASAR est un portail de contrle daccs gratuit Internet pour les
rseaux de consultation locaux situ en amont. Il authentifie, impute et protge laccs des
utilisateurs Internet et ce quelque soit leurs quipements connects. ALCASAR embarque des
mcanismes de filtrage rseau permettant de rpondre aux diffrents besoins des organisations
(entreprises, centres de loisirs, coles, etc.) en fonction du public quelles accueillent. On y retrouve
galement des outils ddis la scurit telle quun firewall, une authentification forte permettant
la restriction Internet uniquement aux personnes autorises, ainsi quun antivirus de flux web.
Conformment la lgislation franaise en vigueur, le projet permet la personne morale
fournissant un accs au rseau de consultation Internet de respecter les obligations lgales en
matire imputabilit et de conservation des activits des utilisateurs.

Dun point de vue fonctionnel ALCASAR sinstalle entre le rseau de consultation et le routeur
daccs Internet. Compos dune vingtaine de logiciels libres, ALCASAR fonctionne sur une
machine offrant des performances modestes. De plus, ce NAC est totalement indpendant des

6 Mmoire de fin dtudes ESIEA CROSNIER Franois


matriels, technologies et marques adopts que ce soit du ct Internet comme du ct du rseau
de consultation (WiFi, CPL, Ethernet, etc.). Il est notamment conu afin doptimiser les ressources
systmes ncessaires, le rendant ainsi fonctionnel sur des architectures aux performances modestes.
Ce dernier point permet dinstaller ALCASAR sur des appliances de scurit totalement
autonomes. Il est alors possible de positionner ces quipements directement sur le rseau
scuriser en frontal de la connexion Internet, sans pour autant avoir besoin de se soucier de la nature
des matriels prsents du ct LAN. La seule exigence matrielle impose lappliance est la
prsence de deux cartes rseau, lune servant cot Internet et lautre permettant daccder au
rseau local.
Le test de nouvelles configurations dappliances est dailleurs une tche part entire au sein du
projet ALCASAR que jai pu exprimenter. Je me suis notamment retrouv confront des problmes
de compatibilit entre le noyau Linux et des chips graphique Intel intgrs la carte mre. La
solution de contournement que jai adopt consiste en la modification des paramtres de
chargement du noyau Linux, permettant de le forcer dans un mode daffichage compatible avec tous
les chips graphiques.

7 Mmoire de fin dtudes ESIEA CROSNIER Franois


II - tat de lart
Lgislation franaise
Lobjectif premier dALCASAR est de proposer aux personnes morales fournissant un accs Internet,
une solution leur permettant de respecter la lgislation franaise en vigueur. Lessor de nouveaux
moyens technologiques (smartphone, fibre optique, Cloud, etc.) rend le monde moderne de plus en
plus connect et de surcroit de plus en plus sujet aux drives et autres cyberattaques. Face
laccroissement des menaces lies lutilisation intensive dInternet en milieu priv, professionnel ou
mme terroriste, les autorits comptentes se retrouvent obliges dagir.

Dans ce contexte, le gouvernement franais a mis en place, une succession de mesures permettant
dencadrer et de lutter efficacement contre ces cybermenaces. Lune des mesures concerne la
conservation des donnes de communications lectroniques. On entend par donnes de
communications, les diffrents fichiers de logs permettant dattribuer aux personnes identifies une
action prcise opre sur Internet. Cette mesure fait lobjet dun dcret datant du 24 mars 2006 dont
voici un extrait :

Article R10-13 en vigueur au 1 avril 2012 relatif la conservation des donnes des
communications lectroniques

Modifi par le Dcret n2012-436 du 30 mars 2012 art. 7

I- En application du II de larticle L.34-1, les oprateurs de communications lectroniques conservent


pour les besoins de la recherche, de la constatation et de la poursuite des infractions pnales :
a) les informations permettant didentifier lutilisateur,
b) les donnes relatives aux quipements terminaux de communication utiliss,
c) les caractristiques techniques, ainsi que la date, lhoraire et la dure de chaque
communication.
d) les donnes relatives aux services complmentaires demands ou utiliss et leur
fournisseur.
e) les donnes permettant didentifier le ou les destinataires de la communication.
[]
III- La dure de conservation des donnes mentionnes au prsent article est dun an compter du
jour de lenregistrement.
[]

lorigine, ce dcret ciblait les FAI. En France loprateur est responsable de la traabilit et de
limputabilit des connexions travers ladresse IP publique fournie son client par contrat. En cas
de dploiement dun rseau de consultation partir de cette adresse publique la personne
responsable (ex : dans le cadre dune entreprise son responsable administratif), est tenue faute de
preuves dunique utilisateur de la connexion Internet. Cette personne, si elle souhaite se protger,
doit donc mettre en uvre son propre systme de traabilit et dimputabilit afin de dgager sa
responsabilit en cas de litige (cf. article ci-aprs).

8 Mmoire de fin dtudes ESIEA CROSNIER Franois


Loi n 2006-64 du 23 janvier 2006 sur la lutte contre le terrorisme

Article 5

Cette loi prcise que sont concernes par cette obligation de traabilit, les personnes qui, au titre
dune activit professionnelle principale ou accessoire, offrent au public une connexion permettant
une communication en ligne par lintermdiaire dun accs au rseau, y compris titre gratuit (CPCE,
art. L. 34-1, I, al. 2). Tout manquement cette obligation expose une peine de prison dun an et
75000 euros damende, le quintuple pour les personnes morales.

La mise en application des prcdentes mesures ne doit pas tre ralise lencontre des droits
concernant le respect de la vie prive et de la confidentialit des informations changes. Dans cette
optique, la CNIL et les autorits judiciaires considrent la cyber-surveillance lgale uniquement si le
dispositif de surveillance mis en uvre respecte les principes suivants :

La prsence dune solution de cyber-surveillance doit tre communique auprs de tous les
usagers, soit par voie daffichage soit par note de service (dans le cadre dune entreprise).
ALCASAR fournit automatiquement cette information chaque connexion lors de
linterception de lutilisateur via la page dauthentification.

Dans un environnement professionnel, les reprsentants du personnel doivent avoir t


pralablement consults ( titre davis).

Le dispositif doit tre justifi et se limiter une surveillance de flux (volume de trafic, type
de fichiers changs, filtrage, URL, etc.) sans jamais accder aux contenus des donnes
changes ni au contenu personnel prsent sur les postes des utilisateurs sous peine de
poursuites pnales pour violation de correspondance prive.
Les traces enregistres par ALCASAR correspondent cette exigence, elles permettent en
effet dimputer de manire certaine grce laffiliation :
IP utilisateur + date/heure + informations compte utilisateur + IP de destination + quantit
de donnes changes
Il est ainsi impossible en se rfrant aux logs dALCASAR davoir un accs au contenu des
donnes changes durant cette priode.

Les dernires recommandations prendre en compte pour un portail daccs sont celles prconises
par le CERTA. Cet organisme dpendant de lANSSI, a dress une liste dindications concernant la
gnration, le contenu et larchivage des fichiers journaux ncessaires une bonne traabilit. Parmi
ces recommandations on peut nots les plus importantes qui sont :

Lhorodatage de chaque entre des journaux


Objectif : Permettre de situer chronologiquement chaque vnement lors de lanalyse des logs
postriori

La synchronisation de la base de temps. Sassurer dune date et heure commune tous les
fichiers de logs dans le temps.

9 Mmoire de fin dtudes ESIEA CROSNIER Franois


Objectif : Assure la concordance des diffrents fichiers de logs lors du regroupement des
informations.

La nature des lments journaliser. Conserver uniquement les informations ncessaires


limputabilit (firewall, authentification, URL, etc.)
Objectif : Garantir la qualit des fichiers de log, sans surcharger lespace de stockage avec des
informations inutiles.

Disposer dun mcanisme de sauvegarde et darchivage des fichiers de log scuriser.


Objectif : Assurer la prennit et lintgrit des fichiers de log.

Concernant la gnration des fichiers journaux, les indications suivantes ont t prises en compte :
http://www.certa.ssi.gouv.fr/site/CERTA-2008-INF-005/index.html

Portail captif et NAC


Un portail captif est un dispositif permettant dintercepter et forcer des clients HTTP prsents sur un
rseau tre redirigs vers une page web souhaite. Dans la plupart des cas, cela est mis en oeuvre
dans un but dauthentification. Outre le fait didentifier lutilisateur, cette authentification peut
permettre de restreindre laccs aux services prsents derrire le portail captif (Internet), par
exemple un temps de connexion limit ou bien encore linterdiction daccder certains sites (ex. :
utilisation dun portail captif pour filtrer laccs certains sites Internet pour les mineurs). Autrement
dit le portail captif joue le rle de barrire autorisant oui ou non les utilisateurs dun rseau de
consultation Internet accder Internet.

Pour fonctionner, un portail captif doit tre positionn entre le rseau de consultation et le rseau
Internet. Une fois install, le portail captif intercepte tous les paquets mis par le rseau de
consultation destination du rseau Internet. Tant que lutilisateur ne sest pas authentifi, tous ces
paquets sont bloqus par le portail captif lui empchant ainsi laccs au rseau Internet prsent
derrire le portail tant que lutilisateur ne sauthentifie pas auprs dALCASAR.

Le schma ci-aprs reprsente une architecture type dutilisation dun portail captif :

Figure 1 : Structure dun portail captif

10 Mmoire de fin dtudes ESIEA CROSNIER Franois


Outre le fait dauthentifier les utilisateurs afin de leur autoriser laccs ou non Internet, on retrouve
souvent des fonctionnalits additionnelles dont le but est daccroitre la scurit du dispositif de
contrle daccs au rseau. Dans ce cas, on ne parle alors plus de portail captif, mais de Network
Access Control (NAC). Un NAC peut condition dtre conu en ce sens, protger le rseau de
consultation des menaces et autres attaques prsentes sur Internet. Le dispositif est alors considr
comme un bastion laissant entrer uniquement les flux lgitimes en rponse une requte en
provenance dun client authentifi prsent sur le rseau de consultation.

On vient de le voir, le but dun NAC est dauthentifier les utilisateurs tout en minimisant limpact de
programmes ou dactions malveillants pour le rseau de consultation. Au sein de ce dispositif, le
portail captif est alors juste une brique (importante) part entire de linfrastructure permettant
dintercepter les utilisateurs prsents sur le rseau de consultation.

ALCASAR tant un NAC et non un simple portail captif, il offres au sein dune mme machine tous les
services suivants :

Pare-feu
Antivirus de flux WEB
Serveur DNS
Serveur de temps
Serveur DHCP
Serveur WEB
Filtrage des flux WEB
Supervision des flux rseau
Scurisation du rseau (Usurpation dadresse MAC, Brute force didentification, etc.)
Limputabilit et larchivage des traces

Solutions existantes
Comme nous venons de le voir, il existe une diffrence notable entre un portail captif et un NAC. Le
monde du logiciel libre propose un certain nombre de projets de portail captif, dont certains ne sont
plus suivis. On peut notamment citer de manire non exhaustive les principaux projets existants :

Wifidog : (http://www.dev.wifidog.org)
ChilliSpot (non suivi) : (http://www.chillisport.org)
Coova-Chilli (fork de ChilliSpot) : (http://www.coova.org/CoovaChilli)
NoCat (absorb par le projet Wifidog) : (http://www.dev.wifidog.org/wiki/NoCat)
Talweg : (http://www.crium.univ-metz.fr/reseau/talweg)

Tout comme il existe au sein de la communaut de lopen-source diffrents projets de portail captif,
on trouve galement plusieurs projets libres de NAC :

Ipcop : (http://www.ipcop.org)
PfSense : (http://www.pfsen.org)
PacketFence : (http://www.packetfence.org)
ZeroShell : (http://www.zeroshell.org)

11 Mmoire de fin dtudes ESIEA CROSNIER Franois


ALCASAR : (http://www.alcasar.net)

En tant que NAC, tous les projets cits ci-dessus permettent linterception, lauthentification des
utilisateurs ainsi que la protection du rseau de consultation en amont. Dans la plupart cas, les
projets de NAC proposent une multitude de fonctionnalits optionnelles (IDS, serveur VOIP, serveur
Mail, etc.) rendant ladministration de la solution complexe. De plus, linstallation de ces solutions
requiert trs souvent de bonnes connaissances en matire dadministration systme et rseau. Cela
sexplique notamment par leur philosophie qui est de proposer les diffrentes fonctionnalits sous
forme de modules additionnels. Linstallation de ces modules ncessite alors une certaine expertise
pour configurer les services en adquation avec larchitecture du NAC.

ALCASAR se distingue de ses concurrents par sa simplicit dutilisation, le packaging de la solution


ainsi que sur laboutissement de la scurisation du rseau et du systme dimputabilit des traces.

Le tableau suivant synthtise ces diffrents aspects pour les cinq NAC cits prcdemment :

Ipcop PfSense PacketFence ZeroShell ALCASAR

Solution Standalone

Simplicit d'installation

Simplicit d'utilisation

Protection contre le Brute Force

Protection Usurpation d' @MAC

Traabilit des connexions

Oui Non Partiellement

12 Mmoire de fin dtudes ESIEA CROSNIER Franois


III Problmatique
mon arrive sur le projet, mon premier travail a t de mapproprier ALCASAR, son
fonctionnement, son architecture ainsi que la comprhension et limbrication des diffrentes
solutions embarques par celui-ci. En tant que NAC, le projet ALCASAR nest pas un simple portail
captif, il offre en plus dune interception et dune authentification forte, plusieurs fonctionnalits
embarques lui permettant de fonctionner de manire autonome et indpendante vis--vis des
priphriques prsents sur le rseau de consultation (PC, smartphone, borne WIFI, etc.).

Une fois le fonctionnement dALCASAR assimil, on ma t demand didentifier et dintgrer un


systme de supervision des flux rseau transitant via notre NAC. Initialement, cette demande est
motive par le fait de prouver quALCASAR nimpacte pas le dbit du rseau de consultation. Nous
verrons par la suite que la solution retenue permet non seulement de prouver cela, mais quelle
perfectionne le mcanisme dimputabilit des accs au rseau de consultation existant.

Prise en main dALCASAR


Avant dentreprendre tout travail sur le projet ALCASAR, jai dans un premier temps analys et
assimil le fonctionnement de ce dernier en dtail. Cette prise en main de larchitecture dALCASAR
tait essentielle, afin didentifier larchitecture de supervision la plus adapte notre NAC.

La liste des fonctionnalits offertes par ALCASAR mon arrive tait la suivante :

1. Passerelle dinterception : Coova-Chilli (fork du projet ChilliSpot)

Lobjectif de la passerelle dinterception est de rediriger tous les clients vers une page WEB en HTTPS,
leur permettant de sauthentifier auprs du portail captif. Le client en HTTPS ne peut pas tre
intercept, cela sexplique par la nature mme du protocole HTTPS

En ce qui nous concerne, on comprend donc aisment que


Coova-Chilli ne pourra intercepter que les trames HTTP
puisque linterception dune trame en HTTPS nest pas
possible cause du chiffrement de cette dernire. En
revanche une fois intercept, la redirection du client se fait
en HTTPS afin dassurer la confidentialit des informations
dauthentification changes entre le navigateur WEB et
Coova-Chilli.

2. Serveur dauthentification : FreeRadius

FreeRadius est le serveur dauthentification dALCASAR. Pourquoi utiliser un serveur


dauthentification alors que la passerelle dinterception comme Coova-Chilli suffit une
authentification ? FreeRadius qui est limplmentation gratuite et open source du serveur Radius
permet, outre une authentification forte, lintgration de critres dautorisation comme la gestion du
temps de connexion, la gestion dune date dexpiration, la limite de bande passante, etc.

13 Mmoire de fin dtudes ESIEA CROSNIER Franois


3. Base de donnes utilisateurs : MariaDB (fork du projet MySQL)

La base de donnes est prsente afin de stocker les informations (login, password, dure de
connexion, date dexpiration, etc.) concernant les utilisateurs du NAC. Cette base est directement
interroge par le serveur FreeRadius, lorsque celui-ci est sollicit par la passerelle dinterception.
Contrairement dautres portails captifs, ALCASAR embarque sa propre base de donnes. Cela
sexplique par la volont de rendre le portail totalement indpendant de linfrastructure sur laquelle
il est dploy. Cette base de donnes est une base de donnes SQL (MariaDB). En revanche, il est
possible dinterfacer le serveur dauthentification avec un annuaire LDAP ou A.D extrieur, parfois en
place avant lintgration dALCASAR linfrastructure rseau existant. Dans le cas dALCASAR, cette
base est aussi exploite pour stocker en temps rel les donnes de connexion au NAC des usagers.

On peut reprsenter la phase dinterception et dauthentification par le schma suivant, rsumant


les diffrents changes entre Coova-Chilli, FreeRadius et MariaDB :

HTTP, Navigateur WEB vers Internet

HTTPS, redirection vers la page dauthentification + challenge + URL Coova-Chilli


X Internet

HTTPS, requte la page dinterception + challenge+URL

HTTPS, intercept.php + challenge +URL


MariaDB
HTTPS, login + password + challenge +URL Apache

HTTPS, redirection vers Coova + login + password chiffr +URL


SQL
HTTP, login + password chiffr + URL Protocole
RADIUS
HTTP, redirection vers https://alcasar+ rsultat authentification + URL Coova-Chilli FreeRadius

HTTPS, requte page interception + rsultat authentification + URL

HTTPS, intercept.php + rsultat authentification + URL Apache

HTTP, Navigateur WEB vers Internet


Coova-Chilli Internet

4. Serveur WEB : Apache

Le serveur WEB Apache est prsent dans ALCASAR afin de fournir aux machines de consultation les
diffrentes pages WEB ncessaires qui sont :

La page dinterception
La page dadministration dALCASAR
Le tableau de bord de connexion
Le panneau dadministration dALCASAR
La page dalerte HAVP lors de linterception dun virus
La page dalerte Dansguardian lors du blocage dune URL

14 Mmoire de fin dtudes ESIEA CROSNIER Franois


La quasi-globalit des pages WEB dALCASAR sont codes en PHP, utilisant des modules additionnels
en Javascipt et perl (Jquery et JSON).

5. Chiffrement des flux : OpenSSL

OpenSSL est un service comportant deux bibliothques implmentant des algorithmes utiliss pour
le chiffrement des donnes. OpenSSL permet aussi la ralisation de PKI. Ainsi, dans ALCASAR,
OpenSSL est exploit pour crer une PKI et les certificats prsents aux navigateurs des usagers.

6. Chiffrement des fichiers de journalisation : GnuPG

ALCASAR propose de chiffrer automatiquement les fichiers lis limputabilit des traces. Ces fichiers
sont ensuite disponibles via une interface de gestion pour les archiver et les stocker de manire sre
toutes les fins de semaine. Pour cela, il exploite lalgorithme asymtrique GPG (cl publique + cl
prive) mis en place grce GnuPG. Cela permet de couvrir les administrateurs dALCASAR contre
dventuelles accusations de modification de ces fichiers journaux, garantissant ainsi la vracit des
preuves apportes par les fichiers journaux.

7. Journalisation des logs : Ulog

Ulog ou plutt Ulogd est un dmon fonctionnant avec le pare-feu Netfilter. Sinterfaant avec les
rgles iptables du pare-feu, il permet de rcuprer et de journaliser uniquement les vnements
pertinents pour la traabilit des traces. Son fonctionnement est relativement simple. Lorsque lon
souhaite journaliser une trame rseau, on spcifie dans la rgle Iptables lutilisation de ulogd .
Il peut fonctionner par groupe de log, autrement dit il est possible de crer des groupes dsigns par
un numro. Iptables permet quant lui de taguer les rgles ce qui permet ensuite en fonction du
numro du tag de spcifier Ulogd dans quel fichier de journalisation enregistrer la trace Netfilter en
question.

La rgle ci-dessous est issue des rgles iptables prsentes dans ALCASAR lorsque celui-ci fonctionne
en mode normal. Comme je lexpliquais ci-dessus, il est possible de taguer les trames lorsque celle-ci
match avec une rgle iptables similaire lexemple. Ainsi on peut prciser Ulog de stocker
linformation concernant la trame dans un journal situ un endroit notre convenance.

Extrait du fichier de configuration de Ulog pour les logs SSH :

# netlink multicast group (the same as the iptables --ulog-nlgroup param)


nlgroup=2
# logfile for status messages Numro du tag
logfile="/var/log/ulogd.log
# loglevel : debug(1), info(3), notice(5), error(7) or fatal(8)
loglevel=5 Fichier de log concern par le groupe
[]
file="/var/log/firewall/ssh.log
[]

15 Mmoire de fin dtudes ESIEA CROSNIER Franois


Extrait des rgles Iptables dALCASAR :
$IPTABLES -A INPUT -i $TUNIF -s $PRIVATE_NETWORK_MASK -d $PRIVATE_IP -p tcp --dport ssh -m state --state
NEW -j ULOG --ulog-nlgroup 2 --ulog-prefix "RULE ssh-from-LAN A

Numro du tag Prfix report dans le fichier de log correspondant

8. Proxy WEB : Squid

Lutilisation dun serveur proxy WEB a pour but dacclrer la navigation des utilisateurs sur Internet.
Le serveur proxy Squid possde un cache WEB lui permettant de conserver les donnes contenues
dans les requtes HTTP, notamment celle les plus frquemment utilises mais galement les
requtes nayant pu aboutir.

9. Serveur de temps : NTP

ALCASAR possde son propre serveur NTP (se synchronisant sur Internet) offrant toutes les
machines prsentes sur le rseau de consultation un service de synchronisation de date/heure via le
protocole NTP. Ce service permet toutes les machines situes sur le rseau de consultation de
possder la mme date et heure. La synchronisation horaire du rseau de consultation et dALCASAR
est cruciale afin dobtenir des fichiers de journaux cohrents et exploitables. Il est en effet trivial que
si toutes les machines ne fonctionnent pas avec la mme heure, il sera trs difficile dimputer les
actions provenant de chacune dentre elles avec les logs relevs par ALCASAR.

10. Filtrage URL : Dansguardian

ALCASAR offre une fonctionnalit de filtrage dURL intressante surtout dans le cadre dun
dploiement du portail de control daccs offrant un accs Internet lattention dun public mineur.
Le proxy HTTP Dansguardian est le service remplissant ce rle au sein dALCASAR. Lorsque le
service de filtrage est activ via linterface de gestion, tous les flux HTTP transitent via Dansguardian.
Ce dernier fonctionne partir de listes noires et blanches. La liste noire utilise est la Blacklist de
luniversit de sociologie de Toulouse. Cette dernire comprend diffrentes catgories (sectes,
adultes, jeux, etc.) contenant des DNS ou des URL permettant de bloquer uniquement les pages non
souhaites dun site WEB. Il suffit alors ladministrateur dALCASAR de choisir les catgories quil
souhaite filtrer dans linterface de gestion.

Interface de gestion :
Gestion des catgories prsentes dans
la Blacklist et la Whitelist

Page renvoye par le serveur Apache lorsque


Dansguardian bloque laccs une URL
prsente dans la Blacklist .

16 Mmoire de fin dtudes ESIEA CROSNIER Franois


11. Serveur DNS : DNSmasq

DNSmasq est un serveur lger fournissant


un service DNS et un service DHCP. Son
utilisation dans un NAC se justifie
notamment par sa possibilit de nommage
de machines prsentes sur le rseau local,
chose quun service DNS global (i.e. service
DNS Internet) ne permet pas. Le couplage
serveurs DNS et DHCP permet aux machines
du LAN lors de laffectation dun bail DHCP
par DNSmasq dobtenir de ce dernier un
alias DNS affili ladresse IP de la machine.
Cette fonctionnalit est notamment utilise
dans ALCASAR, afin dattribuer lalias DNS alcasar linterface rseau (tun0, clone de linterface
eth1 situe ct rseau de consultation) du NAC. En sappuyant sur ce serveur DNS interne, ALCASAR
peut implmenter ce que lon appelle un DNS blackhole . Comme pour le filtrage des URL, la
rsolution DNS couple au contenu DNS de la Blacklist permet au NAC de filtrer laccs au site
WEB ds la rsolution du DNS, ce qui vite de surcharger les autres services (Dansguardian et Squid)
par le traitement dune requte destination dun site bloqu. Cela permet surtout de bloquer tous
les protocoles (ftp, https, etc.) contrairement Dansguardian ou Squid qui ne traitent que HTTP.

Le schma ci-dessous, reprsente la sparation des diffrents modes de filtrage :

partir dune seule et mme Blacklist (celle de Toulouse), trois Blacklist sont cres : URLs ,
DNS et adresses IP . Ces trois listes seront ensuite utilises sparment par le service adquat
(DNSmasq, Dansguardian et Iptables) lors du filtrage des flux rseaux.

17 Mmoire de fin dtudes ESIEA CROSNIER Franois


12. Antivirus : Havp + ClamAV

HAVP est le proxy antimalware HTTP embarqu par ALCASAR. Plac au bout de la chaine HTTP (cot
Internet) il permet de diriger filtrer tous les flux entrants en provenance dInternet. HAVP est capable
de sinterfacer avec diffrents antivirus. En ltat, il est coupl la bibliothque libclamAV (issue
de lantivirus ClamAV ). La base de donnes antivirale qui est situe dans /var/lib/clamav est mise
jour toutes les deux heures par le processus freshclam interne de lantivirus ClamAV. De son ct
HAVP recharge la base antivirale toutes les heures. En tant que proxy HTTP HAVP fournit la page
spcifique suivante chaque fois que lantivirus dtecte un malware.

13. Firewall : Netfilter/Iptables

ALCASAR reposant sur une distribution Linux, il tait naturel que le pare-feu soit assur par le
framework Netfilter . Natif sur toutes les distributions Linux, Netfilter nimpact pas les
performances du systme. De plus, il possde un CSPN dlivr par lANSSI condition que les
recommandations de cette agence soit appliques, ce qui est le cas pour ALCASAR.

Lutilisation du logiciel libre Iptables permet la mise en place des rgles permettant de filtrer de
manire fine les diffrentes requtes transitant via ALCASAR. En plus de restreindre laccs au rseau
de consultation uniquement aux protocoles ncessaires (HTTPS, HTTP, FTP, SSH, NTP, SMTP, IMAP,
etc.), le pare-feu est utilis pour rediriger les flux entre les diffrents briques internes en utilisant les
ports appropris (cf : annexe 1).

Lutilisation dIptables pour passer les rgles de filtrage au pare-feu permet au NAC dembarquer un
script /usr/local/bin/alcasar-iptables.sh automatisant leur mise en place. Via un autre script
/usr/local/sbin/alcasar-iptables-bypass.sh, il est galement possible de restreinte le filtrage au strict
minimum, autorisant de fait un accs total Internet aux utilisateurs du rseau de consultation, en
cas de besoin ponctuel.

14. Statistique de consultation WEB : Awstat

Nous avons vu prcdemment que le proxy de cache WEB Squid gnre des logs lorsque les
machines de consultation accdent des pages Internet. Ces logs sont prsents uniquement pour

18 Mmoire de fin dtudes ESIEA CROSNIER Franois


permettre le calcul de statistiques de consultation. Lagrgation des donnes et le rsultat de ce
calcul qui en dcoul est prsent dans linterface de gestion grce loutil Awstat . Cet tat
statistique est recalcul toutes les trente minutes partir de fichiers journaux ne contenant ni les
adresses IP source ni le nom des usagers, afin dtre en accord avec les prrogatives concernant le
respect de la vie prive de la CNIL.

Les statistiques prsentes par loutil correspondent au nombre de pages WEB consultes et la
bande passe utilise, le tout indiquant ces statistiques par heure. (Voir capture ci-aprs)

15. Consultation des journaux pare-feu : Firewall Eyes

Intgr ALCASAR, Firewall Eyes est un outil danalyse de logs en temps rel pour le pare-feu
iptables. Grce son interface WEB, il est possible de visualiser et contrler de manire simple et
efficace lactivit rseau transitant via le pare-feu Netfilter . Trois sortes de fichiers sont
visualisables: les traces de connexion du rseau de consultation, les traces lies ladministration
dALCASAR distance (ssh) et les traces des tentatives dintrusion sur le rseau de consultation
depuis Internet. Chaque fichier de log reprsente la semaine en cours. Mais il est aussi possible de
visualiser les fichiers de log antrieurs en choisissant les fichiers compresss et archivs.

Aprs avoir pris connaissance des diffrents outils composant ALCASAR, la seconde tape a t
danalyser et de comprendre le mcanisme dinstallation et de configuration de ces diffrents
services. Dans un souci de rendre linstallation et la mise jour dALCASAR les plus aises possible
pour les utilisateurs, toute linstallation dALCASAR passe par lexcution dun unique script :
alcasar.sh

Le script alcasar.sh contient les modifications des fichiers de configuration que lon doit apporter
sur les diffrents composants dALCASAR. Ce script fait galement appelle dautres scripts, chacun
ayant une fonction bien spcifique dans linstallation ou la mise jour du NAC. Ces scripts
permettent par exemple la mise en place des rgles Iptables (alcasar-iptables.sh), linstallation des
paquets RPM ncessaires (alcasar-urpmi.sh), ou encore la mise en place des paramtres rseau

19 Mmoire de fin dtudes ESIEA CROSNIER Franois


(alcasar-conf.sh) ainsi que la cration de la PKI et des certificats. La liste des diffrents scripts avec
leurs utilits est prsente dans la documentation technique dALCASAR.

Intgration dun systme de supervision


La volont dintgrer un systme danalyse de flux sous ALCASAR dcoule directement dune
demande dutilisateurs. ALCASAR se positionnant en barrire entre le rseau de consultation et
Internet, la question dune perte de dbit cot rseau de consultation se pose. Pour analyser et
prouver le non-impact dALCASAR sur les performances du rseau de consultation, il a t dcid
dintgrer dans ALCASAR un outil danalyse du trafic et de dbit. Toujours dans un souci defficacit,
le systme de supervision doit minimiser son impact sur les performances du systme, tant en
matire de charge systme quen terme doccupation de lespace de stockage sur le disque.

Quest-ce quune sonde ?


Une sonde, ou plutt une sonde rseau est un outil permettant de collecter et interprter un flux
transitant sur un rseau. Cette collecte dinformation peut avoir pour but de caractriser son dbit,
didentifier les extrmits, dtecter des anomalies ou encore quantifier les donnes changes. Dans
tous les cas lutilisation de sonde de supervision rseau a pour unique principal objectif de contrler,
analyser et comprendre les tenants et les aboutissants impactant directement les performances dun
rseau informatique quil sagisse de LAN ou de WAN.

Globalement, il existe aujourdhui deux types de sonde danalyse rseau, ou plutt deux manires
dutiliser une sonde.

La premire consiste positionner la ou les sondes aux extrmits du rseau. Cest assurment la
mthode la plus simple en termes de dploiement puisquelle ne ncessite pas lintgration des
sondes au sein mme des quipements prsents sur le rseau. Elle ne permet nanmoins pas une
analyse fine du rseau puisquil nest pas possible de contrler les flux entre les diffrents organes
constituants celui-ci. Afin dobtenir une analyse pertinente, il est galement ncessaire de connaitre
pralablement le point de congestion ventuel sur le rseau, afin de placer la sonde le plus
judicieusement possible. Dans la plupart des architectures, le point de congestion se situe au niveau
du WAN cot LAN. Il est donc judicieux de placer la sonde cot LAN, directement derrire le
routeur/commutateur comme suit :

Internet

Sonde Points de congestion probable

Rseau de consultation

20 Mmoire de fin dtudes ESIEA CROSNIER Franois


La seconde stratgie consiste implanter les sondes directement au cur du rseau. Cette dernire
permet danalyser en dtail les flux rseau diffrents endroits critiques du rseau superviser. Plus
le nombre de sondes est important, plus lanalyse sera fine. En revanche, cette mthode ncessite
linstallation des sondes au sein mme des quipements que lon souhaite superviser. Des
quipements que lon ne peut pas tout le temps administrer ! Cette solution offre galement comme
intrt de rduire au minimum limpact de la collecte dinformations concernant les flux rseau sur
les performances globales du rseau. En effet la sonde tant directement implante au sein de
lquipement rseau, elle ne ncessite aucun quipement supplmentaire entre le rseau local et le
point que lon souhaite superviser.

Points de congestion
probable

Internet

Sondes

Rseau de consultation

Pourquoi une sonde NetFlow ?


Dans un premier temps, il est crucial de pouvoir dfinir ce que lon entend par supervision . La
supervision dune structure rseau est un ensemble de concepts permettant de sassurer du bon
fonctionnement dun systme dinformation. Elle est le fruit de la collecte dinformations (tat,
charge, dbit, etc.) provenant des quipements rseau ou des services prsents sur le rseau.
Informations ensuite analyses et concatnes offrant une vue densemble de ltat de systme
dinformation surveill. Globalement, il existe deux sortes de surveillance, la supervision active ou
celle dite passive. On parle de supervision passive lorsque loutil de monitoring est prsent
uniquement en coute des flux comme SNMP ou NetFlow, ou bien en analyse de fichiers journaux
rsultant du fonctionnement des services superviser. linverse, on caractrise la supervision
dactive lorsque loutil requte lui-mme les diffrents services ou infrastructures quil souhaite
superviser dans lobjectif de rcuprer les informations ncessaires.

Aprs concertation avec les membres de lquipe ALCASAR, afin de connaitre leurs attentes vis--vis
de lintgration dun systme de supervision ALCASAR, il ressort que la solution choisie devait
prendre en compte et satisfaire lintgralit des critres suivants :

logiciel libre sous licence GPL.


Intgration de la solution avec larchitecture existante du projet.
Impact minimal sur la charge de lAppliance.
Occupation des ressources de stockage contrle et raisonnable.
Facilit dutilisation.
Intgration des donnes de supervision linterface dadministration.
Reprsentation des donnes sous forme de graphes.

21 Mmoire de fin dtudes ESIEA CROSNIER Franois


Affichage de la charge rseau par ports et par services.
Possibilit danalyse de la charge rseau sur une priode antrieure donne.
Offrir des logs suffisamment complets afin de saffranchir des systmes de logs exploits
jusqualors.

partir de ces informations, jai ralis un travail de veille afin didentifier la solution la plus adapte
aux besoins. Bien entendu pour respecter la philosophie du projet ALCASAR, je me suis uniquement
focalis sur les solutions libres sous licence GPL. lissue dune premire phase de recherche, jai pu
identifier cinq solutions libres permettant le monitoring rseau. Cest cinq solutions sont :

Nagios
MRTG
Cacti
Munin
Nfsen

Il ma donc fallu par la suite spcifier chaque solution, dans lobjectif de conserver la solution la plus
cohrente pour le projet.

Nagios :
Anciennement Netsaint , Nagios est surement lapplication de surveillance systmes et rseaux la
plus rpandus dans lunivers de la supervision. Existant sous les systmes Linux et Windows cet
utilitaire permet de superviser et dalerter ladministrateur systme en cas de dysfonctionnement
dun hte, dun quipement ou dun service spcifique. Comme la plupart des solutions de
supervision, il sagit dun programme modulaire se dcomposent en trois parties qui sont :
Le dmon de lapplication qui vient ordonnancer les tches de supervision
Les sondes, sous forme de plug-in (environ une centaine) que lon ajoute sa guise en
fonction du besoin en matire de supervision.
Une interface WEB permettant davoir une vue densemble du systme dinformation
surveill.
Ne se limitant pas la surveillance des flux rseau,
mais offrant galement un systme dalerte et de
rpartition de la charge, lintgration de Nagios peut
trs vite savrer complexe de par le nombre
considrable de modules et de dpendances
ncessaires au fonctionnement de lapplication.
Cette exhaustivit de linformation peut rendre trs
vite son interface WEB relativement charge et non
intuitive. De plus, Nagios ne permet pas en ltat
dobtenir des graphes reprsentatifs concernant les
flux rseaux.
Nagios est donc sans nul doute un trs bon produit de supervision, mais face nos besoins il savre
paradoxalement inadapt car trop complet et trop compliqu exploiter.

22 Mmoire de fin dtudes ESIEA CROSNIER Franois


MRTG :
MRTG pour Multi Router Traffic Grapher est un logiciel permettant de crer des graphiques
reprsentatifs du trafic rseau. Cr par Tobi OETIKER (crateur de RRDtool) cette solution utilise
naturellement une base RRD pour le stockage et lagrgation des donnes collectes. Cette base RRD
offre le gros avantage de limiter laugmentation de lespace de stockage dans le temps. MRTG utilise
le protocole SNMP pour interroger les quipements rseau comme des routeurs, des commutateurs
ou encore des serveurs. Entirement dvelopp en Perl, MRTG gnre chances rgulires de
reprsentation du trafic rseau.
Pour rsumer les points positifs du produit
MRTG sont sa simplicit dutilisation et
dintgration ainsi que lutilisation dune
base RRD. En revanche, MRTG ne permet
pas lobtention de statistiques rseaux par ports, et il nexiste aucun plug-in ma connaissance
permettant dajouter cette fonctionnalit au produit.

Cacti :
Cacti est un logiciel de mesure de performance rseau et
systme utilisant une base RDD pour sa base de donnes
de RRDtool. Considr comme lvolution de MRTG,
Cacti est trs souvent utilis en complment de Nagios
afin de fournir des informations fines et en temps rel
de la performance dun rseau. Comme MRTG,
intervalle rgulier Cacti requte les quipements rseau
via le protocole SNMP, rcupre les donnes et les
ordonnances dans sa base de donnes RRD. linstar de
MRTG, Cacti gnre les graphes dynamiquement ce qui
offre comme avantage de pouvoir zoomer ou de changer
dynamiquement la priode du graphe observ. En contrepartie, la gnration en temps rel des
graphes entache invitable un peu les performances de la machine accueillant loutil.

Munin :
Munin est une autre alternative pour la surveillance systme et rseau. Comme les prcdents, il
sappuie sur loutil RRDtool afin de stocker les informations collectes au fur et mesure, sans pour
autant augmenter les ressources de stockage ncessaire. Son mode de fonctionnement sappuie sur
un serveur Matre (Munin-master) indpendant
du rseau supervis charg de rcuprer les
donnes collectes par des nuds (Munin-
node) installs sur les serveurs surveiller.
Comme pour les solutions prcdentes, une
interface WEB rend disponibles les graphiques
gnrs partir des donnes de la base RRD.
Possdant une structure de plug-ins
relativement simple il est possible denrichir
rapidement loutil. En revanche, aprs avoir parcouru la liste des plug-ins existants, je nai pas trouv
de plug-in permettant la ralisation dune statistique de charge du rseau par port. La solution serait

23 Mmoire de fin dtudes ESIEA CROSNIER Franois


donc soit de dvelopper notre propre plug-in, soit dinstaller autant de sondes que de ports que lon
souhaite surveiller, ce qui est clairement irralisable.

Nfsen :
La dernire solution envisage est un peu diffrente des prcdentes. Il sagit ici dutiliser une
architecture NetFlow permettant de collecter des informations sur des flux IP. Initialement
dvelopp par Cisco Systems, le protocole NetFlow a t sujet plusieurs fork et adaptation le
rendant aujourdhui libre de droits. Larchitecture qui en dcoule permet de collecter les
informations sur des flux IP au format NetFlow. Les informations collectes via le protocole Netflow
savrent plus compltes que celles rcupres partir des fichiers journaux dIptables.
Actuellement, la traabilit lie aux fichiers journaux dIptables ne permet pas davoir la quantit
exacte de donnes changes. A contrario, et comme le prconise la lgislation, linformation sur la
quantit de donnes changes est bien prsente
dans les flux Netflow. Loutil permettant de
raliser des graphes statistiques partir des
donnes Netflow collectes est le projet open
source NfSen. Il utilise loutil NfDump pour
collecter et interprter les flux. Utilisant une base
de donnes RRD (optimisation de lespace de
stockage), NfSen agrge les informations
provenant de NfDump et ralise les graphes
correspondants. Ces rsultats sont ensuite
affichs via une interface WEB. NfSen offre la
possibilit dintgrer des plug-ins, dans le but denrichir lapplication. Il existe notamment le plug-in
PortTracker permettant de raliser des statistiques par ports de communication (port TCP/UDP).

Simple dutilisation, loutil offre galement des fonctionnalits intressantes comme la slection
dune zone de temps prcise sur le graphe permettant ainsi une analyse plus fine des flux sur ce laps
de temps.
Ci-dessous un tableau rcapitulatif des diffrentes conditions satisfaites ou non par les cinq outils
prsents prcdemment :

NAGIOS MRTG CACTI MUNIN NFSEN


Licence GPL
Compatible Mageia
Charge supplmentaire sur le systme
Espace de stockage ncessaire
Facilit dutilisation
Interface dadministration
Reprsentation des donnes sous forme de graphes
Accessibilit aux donnes antrieures
Contenu des fichiers journaux pour limputabilit
Affichage de la charge par ports

Satisfait : Convenable : Non satisfait :

24 Mmoire de fin dtudes ESIEA CROSNIER Franois


Lexploitation du couple (Netflow, Nfsen) semble le meilleur compromis en terme dintgration, de
facilit dutilisation et de fonctionnalits offertes en comparaison avec les solutions dcrites
prcdemment. Cette solution offre non seulement la possibilit dobtenir des graphes
reprsentatifs de la charge du rseau global, mais galement des graphes relatant la charge du
rseau par ports TCP/UDP. Avec lintgration de cette solution, il sera possible de supprimer loutil de
statistiques WEB Awstat. Ce qui a pour consquence directe de rendre Squid (proxy WEB) plus
performant et moins gourmand en ressource, puisquil naura plus journaliser les accs aux sites
Internet.

En revanche, le seul bmol de la solution NetFLow concerne la gestion de lespace de stockage. En


effet, bien quutilisant une base RRD pour la sauvegarde des graphes, la sonde NetFlow par nature
gnre des fichiers de log toutes les cinq minutes dont la taille varie selon la charge sur le rseau.
Bien que peu volumineux individuellement, laccumulation des tous ces petits fichiers peut trs vite
conduire la saturation de lespace disque disponible. Il sera donc important lors de lintgration de
prendre en compte ce paramtre afin de trouver une solution efficace afin de limiter lespace disque
occup par les fichiers de log NetFlow.

25 Mmoire de fin dtudes ESIEA CROSNIER Franois


IV - Intgration de la solution ALCASAR
Fonctionnement de la solution : sonde NetFlow + NfDump + NfSen

Protocole NetFlow
La solution retenue pour collecter les informations sur les flux IP transitant travers ALCASAR repose
sur lutilisation du projet NfSen. Il sagit dun projet libre sous licence GPL se basant sur les outils
NfDump servant au traitement de donnes NetFlow. Avant de sintresser la manire dont on
rcupre ces donnes intressons-nous la question, quest-ce quune donne NetFlow ?
Initialement dvelopp par les ingnieurs de chez Cisco durant la fin des annes 90, NetFLow est en
ralit un mcanisme de commutation intgr directement au sein des quipements Cisco (routeurs
et commutateurs). Depuis la version 5 et ladoption de NetFLow par dautres constructeurs
dquipements rseau (Juniper, Alcatel-Lucent, Nortel, etc.), Cisco nest plus le seul faire voluer le
protocole. Ce qui explique la prsence de NetFlow dans des projets open source. Les versions de
NetFlow ont volu au cours du temps jusqu la sortie de la version actuelle (version 9). Cette
version devient un standard de lIETF en 2008 appel IPFIX. Ce standard est dfinit par les RFC
n3917, 7011, 7015 et 5103.
Le fonctionnement de NetFLow repose sur la collecte dinformations partir de flux provenant
directement des quipements rseau. Ces informations dtailles concernent diffrents critres
comme le nombre de paquets et doctets changs, les ports applicatifs utiliss, les adresses IP, les
interfaces par lesquelles transitent les flux, etc.

Un flux NetFLow se compose de sept champs caractristiques qui sont :

1) Le protocole de la couche 3 du modle OSI utilis (IPv4, IPv6, ICMP, IPSEC, etc.)
2) Ladresse IP source
3) Ladresse IP de destination
4) Le port source
5) Le port de destination
6) Le champ Type of Service
7) Linterface dentre

Il peut galement fournir en fonction de la version du protocole Netflow, des informations


complmentaires comme par exemple la volume des donnes changes.

Lune des particularits du protocole NetFLow est que les paquets appartenant un mme flux,
autrement dit possdant les sept informations prcdentes identiques, sont compts comme un
mme et seul paquet pour les statistiques. Un flux NetFlow peut contenir galement des
informations non caractristiques, mais trs utiles par exemple la date et lheure de dbut et de fin
dun flux.

Le but premier de NetFLow tant de fournit un grand nombre dinformations, il est donc normal que
les enregistrements NetFlow soient transports via le protocole UDP. En revanche lUDP ne
permettant pas la vrification de lintgrit des donnes, des implmentations plus rcentes de

26 Mmoire de fin dtudes ESIEA CROSNIER Franois


NetFlow ont recours au protocole SCTP (Stream Control Transmission Protocol, RFC N4960) la place de
lUDP.

En ltat une donne NetFlow est inexploitable, il est donc ncessaire dutiliser des outils adquats
pour la collecte et le traitement de ces donnes. Une chaine NetFLow classique se caractrise par les
quatre lments suivants :

La sonde Le collecteur linterprteur Le grapheur

La sonde se situe directement sur lquipement que lon souhaite surveiller. Son rle est dmettre
intervalle rgulier des flux NetFlow destination dun collecteur (adresse IP et port spcifique)
correspondant ceux du collecteur NetFlow. Dans son fonctionnement normal, la sonde met un
flux chaque fois que celui-ci sachve. Un flux est considr comme achev lorsquil ny a plus de
nouveaux paquets transitant durant un certain moment ou lorsque la connexion TCP est considr
termine. Une connexion TCP est admise comme termine, lorsque que le client reoit un flag de fin
de session, aussi appel Reset .

Le rle du collecteur est de rcuprer les flux Netflow en permanence sur son port dcoute. Les
donnes ainsi collectes sont accumules dans un fichier de log temporaire (.nfcapd.current). Toutes
les cinq minutes, une sauvegarde de ce fichier temporaire est ralise (nfcapddate) permettant
ainsi de vider le fichier temporaire. Un collecteur est coupl une sonde grce son adresse IP et
son port dcoute. Un mme collecteur peut rcuprer les flux Netflow provenant de plusieurs
sondes la fois, et il est galement possible de trouver plusieurs collecteurs sur un mme rseau de
supervision.

Ci-dessous la structure typique entre une sonde et un collecteur NetFLow :

Flux Netflow
perdus

Enfin comme son nom lindique, le grapheur est la dernire partie permettant la ralisation de
graphes statistiques. En plus de la ralisation des graphes, cette partie permet souvent de naviguer
parmi toutes les donnes NetFLow prsentes sur le graphe, et mme dans certain cas den isoler
quune petite portion.

Ces quatre lments mis bout bout permettent donc dmettre, de rcuprer, dagrger, de
stocker les donnes NetFLow, et den raliser les graphes statistiques correspondants. Ces graphes
sont stocks dans une base de donnes qui pourra tre directement consulte par un serveur WEB
afin de les rendre consultables depuis une interface WEB.

27 Mmoire de fin dtudes ESIEA CROSNIER Franois


Le schma ci-aprs reprsente larchitecture gnrale dune chaine de collecte NetFLow :

Flux Netflow
perdus

Gestion des fichiers de log Netflow


NfSen utilise des bases RRD pour stocker les informations concernant son plugin PortTracker ,
ainsi que gnrer les graphes correspondants. Mais quest-ce quune base de donnes RRD ?
Une base RRD (Round Robin Database) est un systme permettant de stocker de grandes quantits
dinformations de types temporelles telles que des tempratures, la bande passante dun rseau ou
encore des cours boursiers. Elle le fait en tirant parti de lvolution des besoins en matire de
prcision. Comme nous le verrons plus tard, la partie Round Robin est en ralit un algorithme
dordonnancement des donnes, permettant une permutation permanente des donnes au cours du
temps. Le mcanisme de cet algorithme est
assimilable un tourniquet, o chaque donne
prsente sur le tourniquet ne fait que passer devant
un pointeur pendant une priode finie. Le stockage de
valeurs numriques dans une RRD est qualifi de
lossy dans la mesure o tous les PDP (Primary Data
Point ou Point de donnes Primaire) correspondant
toutes les valeurs insres ne sont pas archivs telles
quelles, mais ils se retrouvent agrges par sries sur
lesquelles est applique une fonction dite de
consolidation en vue de ne garder terme quune
tendance pertinente de lensemble de ces donnes
appele CDP (Consolidated Data Point ou Point de
Donnes Consolides).

28 Mmoire de fin dtudes ESIEA CROSNIER Franois


Le schma ci-dessus reprsente une structure RRD classique. Au sein dune RRD on retrouve des RRA
(Round Robin Archive) qui sont des archives dans lesquelles les valeurs insres la RRD seront
priodiquement agrges. La priode entre deux agrgations des donnes correspond soit un
temps dfini la cration de la RRA, soit un nombre de PDP ncessaire la formation dun point de
donnes consolid (CDP). Il est ensuite possible dagrger des CDP entre eux au sein dun autre RRA,
ce qui permet de stocker un nombre de donnes encore plus important sans pour autant accroitre la
taille de la RRD.
Prenons un exemple simple, permettant de comprendre les enjeux dune base RRD.
court terme, chaque point de donnes (PDP) est important, car nous voulons un rendu prcis de
chaque vnement ayant eu lieu durant les dernires 24 heures, ce qui pourrait tre rvlateur de
petits pics temporaires dans lutilisation de la bande passante dun rseau (pouvant indiquer une
attaque). Cependant, long terme, seule la tendance gnrale des donnes est ncessaire.
Par exemple, si lon chantillonne le trafic rseau des intervalles de 5 minutes, sur une priode de
24 heures on obtiendra 288 PDP (24h * 60min / 5min). A priori, stocker environ 300 PDP nest pas un
problme en termes de volume de la base RDD. Toutefois, si lon souhaite enregistrer chaque
chantillon sur une anne complte, cela reprsente environ 105120 (365 * 288) PDP stocker dans
la base. Or si lon multiplie ce nombre de PDP par le nombre de signaux diffrents, la taille de la
base RDD peut trs vite devenir consquente.
Pour conomiser de lespace, la base RRD va donc compacter les donnes les plus anciennes en
utilisant une fonction de consolidation, qui effectue un certain calcul (moyenne, min, max, dernires
donnes) sur les PDP afin de les combiner en un seul point (CDP). Dans cette hypothse, imaginons
qu partir de la fonction de consolidation, nous calculons la moyenne des 288 chantillons
accumuls la fin de chaque priode de 24 heures. Dans ce cas, au bout dune anne nous
nobtenons pas 105120 PDP (365*288) mais seulement 365 CDP au bout dune anne. Mme si nous
avons perdu un peu de prcision (i.e. : on ne peut plus dire ce qui sest pass exactement 20h30 le
premier lundi il y a trois mois), les donnes sont toujours prsentes et utiles pour donner la tendance
gnrale du trafic rseau au cours du temps.

Aprs avoir analys globalement le fonctionnent de la chaine de collecte NetFlow, intressons-nous


la manire dont jai intgr la solution ALCASAR. La solution que jai retenue pour lintgration
de la supervision NetFlow fait appel trois outils qui sont :

La sonde noyau : ipt_NETFLOW


Le collecteur : Nfcapd
Le grapheur : NfSen

Dans un premier temps afin dapprhender correctement le fonctionnement des diffrents outils et
la manire de les intgrer ALCASAR, jai procd une intgration de la solution la main.
Autrement dit, jai compil et install les trois outils indpendamment. Linconvnient de cette
mthode est quil est ncessaire de tlcharger toutes les librairies (C, python, perl, etc.) ainsi que les
sources du noyau linux pour pouvoir compiler les outils. En revanche, cela ma permis de prendre
connaissances des dpendances ncessaires de chaque outil, ce qui me sera utile lors de lintgration
de la solution dans les scripts (alcasar.sh et alcasar-urpmi.sh) propres ALCASAR.
Installation de la sonde
La sonde NetFlow sinstalle directement sur lquipement rseau surveiller. Dans le cas dALCASAR,
lquipement en question que lon souhaite surveiller nest pas un lment physique proprement
parler (routeur, commutateur, etc.). Les donnes que lon souhaite rcuprer sont en ralit tous les
paquets transitant par le pare-feu dALCASAR. Par consquent la sonde doit pouvoir se rattacher au
pare-feu Netfilter. La sonde ipt_NETFLOW rpond parfaitement ce besoin, puisquil sagit dun

29 Mmoire de fin dtudes ESIEA CROSNIER Franois


addon Netfilter permettant lenvoi de donnes au format NetFlow partir des changes traversant le
pare-feu.
Le fonctionnement du module ipt_NETFLOW est somme toute identique aux autres modules
Netfilter. En effet, une fois le module compil et install pour notre version de noyau, il suffit de le
charger en spcifiant le port sur lequel il met ses flux NetFLow ainsi que ladresse IP du collecteur
les rcuprant :

#compilation du module pour le noyau courant


./configure
make
make install ; depmod
#chargement du module noyau
modprobe ipt_NETFLOW destination=127.0.0.1:2055

Le pare-feu Netfilter tant un service travaillant dans les couches basses du systme, il est donc
intimement li la version du noyau Linux sur lequel il fonctionne. Iptables tant juste loutil
permettant de grer les rgles appliques Netfilter, il est lui aussi li la version du noyau pour
lequel il a t compil. On parle alors de modules noyau . En tant quaddon Netfilter, la sonde
ipt_NETFLOW que lon utilise est donc galement un module noyau. En tant que telle, elle est donc
lie une version de noyau donne. On sera donc oblig de recompiler le module ipt_NETFLOW
chaque mise jour de la version du noyau Linux. Avant dmettre sur un certain port, il est
ncessaire de sassurer quil nexiste pas dores et dj des donnes transitant par ce port. Le port
dmission par dfaut dune sonde NetFlow tant le 2055, jai utilis Wireshark en filtrant
uniquement le port 2055 pour massurer de linoccupation de ce dernier :

Filtre Wireshark : tcp.port==2055 || udp.port==2055 || sctp==2055

Une fois le module ipt_NETFLOW intgr Iptables, il est galement possible de gnrer des flux
NetFlow uniquement pour les protocoles ou les ports de notre choix. Pour cela, jai donc d ajouter
des rgles Iptables adquates afin de collecter les flux souhaits. Lexemple qui suit est un exemple
de rgle ajoute au script (alcasar-iptables.sh) afin dmettre des flux NetFLow lorsque des trames
http traversent le pare-feu.

Ex : Collecte des flux HTTP : $IPTABLES -A OUTPUT -o $EXTIF -p tcp --dport http -j NETFLOW

La sonde tant maintenant fonctionnelle, il nous faut rcuprer les flux NetFlow mis par celle-ci. La
solution NfSen utilise pour la collecte des donnes, les outils proposs par le projet NfDump. Se
basant sur la suite doutils rrdtool , nfdump apporte tous les outils ncessaires la gestion dune
base de donnes RRD. Il propose entre autres une suite doutils permettant la capture et le
traitement des flux NetFlow provenant de la sonde. La liste des outils prsents dans NfDump est :

nfcapd
nfcapd (NetFlow capture daemon) est un dmon Linux dont le rle est de rcuprer les flux NetFlow
mis sur le rseau par la sonde et de les stocker dans des fichiers journaux au format NetFlow. Le
dmon stocke les flux collects dans un fichier temporaire (.nfcurrent). Toutes les 5 minutes, le
contenu du fichier temporaire est copi dans un nouveau fichier de log et son contenu est supprim.

30 Mmoire de fin dtudes ESIEA CROSNIER Franois


nfdump
nfdump (NetFlow dump) est en ralit linterprteur NetFlow. Son rle est de lire les donnes
NetFlow stockes par nfcapd et de les convertir dans un format nfdump comprhensible par
lutilisateur et NfSen.

nfprofile
nfprofile (NetFlow profile) est une fonctionnalit permettant de filtrer les donnes NetFlow
collectes par nfcapd en fonction de profiles pralablement dfinies. Les donnes ainsi filtres sont
stockes, et seront rutilises lors de la ralisation des graphes.

nfreplay
nfreplay (NetFLow replay) est une fonctionnalit permettant de transfrer les donnes stockes par
nfcapd vers une autre machine.

nfclean
nfclean (NetFlow clean) est un script Perl permettant de supprimer les donnes les plus anciennes
stockes par nfcapd.

nfexpire
nfexpire (Netflow expire) est une fonctionnalit permettant de supprimer les fichiers NetFlow dont la
date de cration arrive la date dexpiration fixe.

Le schma ci-aprs reprsente larchitecture gnrale de la chaine de traitement des flux Netflow
avec la solution choisie :

Noyau Mageia /
Pare-feu Netfilter

Flux Netflow
perdus

31 Mmoire de fin dtudes ESIEA CROSNIER Franois


Installation de NfDump
Comme on a pu le voir prcdemment, loutil de la suite NfDump remplissant le rle du collecteur est
Nfcapd. Il sagit dun dmon dont lobjectif est dcouter sur le mme port rseau que celui dfini
pour la sonde. Suite cette coute, il collecte lintgralit des flux perus dans des fichiers journaux
au format Netflow. En tant que telle la suite NfDump na besoin pour fonctionner uniquement de ses
dpendances (bison, flex, perl-rrd et rrdtool). En revanche, sachant qu terme notre collecteur doit
sinterfacer avec le grapheur NfSen et son plugin PortTracker , il ma fallu activer les
fonctionnalits requises lors de la compilation et linstallation de NfDump :

#compilation du module pour le noyau courant


./configure --enable-nfprofile --enable-nftrack --enable-nfsync
make
make install

Il ne reste ensuite plus qu lancer le dmon :

#cration du rpertoire accueillant les fichiers de log


mkdir /var/log/netflow/
#lancer le dmon nfcapd
nfcapd p 2055 I /var/log/netflow/ -D

Tel quel les fichiers journaux au format Netflow ne sont pas exploitable directement par lutilisateur :

En revanche, il est possible tout moment d'afficher de manire lisible le contenu des ces fichiers. Il
suffit pour cela d'utiliser l'interprteur Nfdump comme suit :

# Affichage dune capture Netflow particulire


nfdump -r capture_netflow -o extended -a
OU
# Affichage de plusieurs captures Netflow particulire
nfdump -R capture_netflow -o extended -a

32 Mmoire de fin dtudes ESIEA CROSNIER Franois


Installation de NfSen
Contrairement aux deux installations prcdentes, NfSen ne requiert pas de compiler ni dinstaller le
programme la main partir du code source. Toute linstallation de NfSen se fait au moyen de
scripts Perl. Ces scripts font appel un fichier de configuration principal (nfsen.conf). Limportance de
ce fichier de configuration est cruciale puisquil rgit :

Lemplacement de tous les fichiers et libraires ncessaire Nfsen


La ou les collecteurs prendre en compte
Paramtrer le mode de fonctionnement de nfcapd (o et comment collecter les flux)
Dterminer les plugins additionnels excuter (PortTracker)
Dterminer le service WEB permettant dafficher les graphes statistiques

Une fois ce fichier de configuration dment renseign, il suffit dexcuter le script Perl dinstallation
(install.pm), condition davoir pralablement pris le soin dinstaller toutes les dpendances
ncessaires lexcution de ce script.
Le module PortTracker se servant dune base RRD pour le stockage et lagrgation des
informations relatives aux ports sollicits sur le rseau de consultation, il cre donc lors de
linstallation une base de donnes RDD de taille fixe de 8Go. Toutes les informations ncessaires
NfSen pour tracer les graphes statistiques par ports sont contenues dans cette base.
Dans un souci de scurisation de loutil, jai pris le soin de limiter laccs ces donnes uniquement
aux programmes concerns. Dans un premier temps, jai donc restreint laccs uniquement
lutilisateur nfsen appartenant au groupe www-data . Le problme fut quil tait impossible
pour linterface WEB davoir accs aux graphes du module PortTracker . Aprs avoir cherch une
explication dans la configuration de Nfsen, jai constat que le problme venait des droits daccs
trop restrictifs aux graphes contenus dans la base RRD de Porttracker . Jai alors modifi ces droits
afin de permettre la fois Nfsen mais galement Apache (serveur WEB) daccder aux
informations contenues dans la base :
chown -R apache:www-data /var/log/netflow/porttracker/
chmod -R 670 /var/log/netflow/porttracker

Aprs plusieurs jours de tests afin de massurer du bon fonctionnement de lensemble des
composants, jai valid la solution. Il a ensuite fallu considrer le problme li la gestion des fichiers
journaux de manire garder le ncessaire pour assurer la traabilit des connexions, tout en
veillant ne pas occuper trop despace disque d laccumulation de fichiers.

Gestion et archivage des fichiers journaux


On a vu que lobjectif premier dALCASAR est dassurer la traabilit des connexions depuis un rseau
de consultation sur Internet. Daprs les textes officiels (cf : Lgislation franaise , page 8),
limputabilit des traces a pour but de permettre en cas denqute judiciaire, dimputer les
agissements dune personne de manire certaine sur Internet. Afin daffirmer avec certitude les
agissements dun utilisateur, les informations ncessaires sont :

Les identifiants (login + mot de passe)


Le descriptif dtaill des flux rseau (date, heure, @IP source, @IP destination et la quantit
de donnes changes)
La corrlation identifiants adresse IP, adresse MAC
Ces informations ne sont pas contenues en un seul et mme endroit. En effet, les donnes
concernant les identifiants et le lien avec ladresse IP sont disponibles dans la base de donnes

33 Mmoire de fin dtudes ESIEA CROSNIER Franois


MariaDB utilise par le portail captif pour authentifier lutilisateur, alors que les informations sur les
flux rseau proviennent des logs du pare-feu.
Avant lintgration de la solution Netflow ALCASAR, les fichiers journaux du pare-feu taient
considrs suffisants pour limputabilit. En ralit, pour respecter scrupuleusement la lgislation il
manquait dans ces fichiers la quantit de donnes changes durant la session. Avec lintgration de
Netflow, les informations dimputabilit seront encore plus prcises, grce lajout du volume de
donnes changes.

Avant dintgrer et de remplacer les logs du pare-feu par ceux de NfDump, il ma fallu apprhender le
mcanisme de gestion et darchivage des fichiers journaux (pare-feu et SQL). Le problme rcurrent
lorsque lon fait de lanalyse de logs est de trouver un juste milieu entre la conservation des fichiers
journaux et la gestion de lespace disque disponible.
Initialement, cette gestion des logs est ralise de la manire suivante :
1. Loutil Ulog enregistre les flux souhaits en provenance de pare-feu dans un fichier
journal : /var/log/firewall/tracability.log
2. Loutil LogRotate ralise une sauvegarde de tracability.log toutes les fins de semaine,
et vide ce mme fichier. Cela permet davoir des fichiers journaux en provenance du pare-feu
contenant les informations sur les flux au court dune seule semaine.
3. Un script dALCASAR alcasar-log.sh --export compresse toutes les semaines le fichier de
sauvegarde prcdemment cr par LogRotate .
4. Un autre script dALCASAR alcasar-archive.sh --now rcupre le fichier compress
contenant les logs du pare-feu de la semaine + une sauvegarde hebdomadaire de la base de
donnes utilisateurs. Le tout est rassembl et compress dans une archive archive-
date.tar.gz
Toutes les archives ainsi cres chaque semaine, soit 52 fichiers au total, sont conserves pendant un
an. Lexcution systmatique et rgulire de ces diffrentes actions est gre par la Crontab du
systme Linux.
Le schma suivant est une illustration du mcanisme darchivage des logs existant dcrit ci-dessus :
LogRotate

/var/log/firewall/tracability.log Tous les dimanches


0h22

Netfilter / Iptables
alcasar-log.sh --export Tous les lundis 5h00

/var/Save/logs/firewall/tracability.log-date.gz

/var/Save/archives/archives-date.tar.gz

Conserves pendant 1 an /tmp/archives-date/tracability.log-date.gz

+
Sauvegarde base utilisateur ( .SQL )
alcasar-archive.sh --now
LogRotate
Tous les lundis 0h35

34 Mmoire de fin dtudes ESIEA CROSNIER Franois


Initialement, il tait prvu de remplacer lintgralit des traces du pare-feu obtenues avec Ulog ,
par les traces du pare-feu issu de la sonde Netflow. Dans un premier temps, cest ce que jai fait. Jai
commenc par supprimer toutes les rgles -j ULOG dans le pare-feu, pour les remplacer par une
rgle avec -j NETFLOW. Jai alors adapt le mcanisme de gestion et darchivage des fichiers
journaux relatifs aux traces afin de traiter les captures nfcap faisant office de traces. Avant de
tout modifier, jai tudi le fonctionnement des deux scripts alcasar-log.sh et alcasar-
archives.sh , ainsi que leurs interactions avec la Crontab .

La principale modification se situe au niveau de la rotation des captures nfcap . Le collecteur


Nfcapd ne stocke pas les flux collects dans un seul fichier, comme le fait Ulog . En effet, toutes
les cinq minutes une nouvelle capture est cre nfcapdDATE . Ces captures sont rparties dans
des dossiers correspondant la date collecte des flux Neflow : var/log/nfsen/profiles-
data/live/ipt_netflow/DATE / .

La taille des captures Netflow varie selon le nombre dutilisateurs connects et donc la quantit de
flux sur le rseau de consultation. Dans ces conditions, laccumulation de toutes ces captures peut
savrer critique pour lespace de stockage libre sur le disque dur. Afin de minimiser ce risque, jai
fix un dlai dexpiration pour les captures de deux mois nfsen -m live e 62d . Au terme de ce
dlai, les captures sont effaces par NfSen. Le systme dagrgation des donnes utilis par RRDtool
permet nanmoins de conserver la tendance des graphes statistiques de plus de deux mois et de les
afficher. Cela implique la perte des informations dtailles correspondantes aux courbes arrives
expiration.

Nayant plus recours pour la traabilit un unique fichier de log, mais 5*24*7= 840 captures
nfcap il ma fallu adapter la manire de les extraire et de les archiver. Ulog ayant comme rle
dextraire dun ficher journal des logs excdant une certaine dure, il savre ne pas tre utilisable
pour le traitement des captures nfcap . La technique que jai adopte est donc de regrouper au
sein dune mme archive .tar toutes les captures dont la date de collecte est comprise dans
lintervalle : 7 jours > date_collecte > 0 jour.

/var/log/nfsen/profiles-data/live/ipt_netflow/date Conservs pendant


2 mois

Netfilter / Iptables
alcasar-netflow.sh Tous les lundis 0h05

/var/Save/logs/firewall/tracability.log-date.tar.gz

/var/Save/archives/archives-date.tar.gz
Sauvegarde base utilisateur ( .SQL )
Conserves pendant 1 an
+
alcasar-log.sh --now /tmp/archives-date/ tracability.log-date.tar.gz
LogRotate Tous les lundis 0h05

35 Mmoire de fin dtudes ESIEA CROSNIER Franois


Ladaptation du systme darchivage sest avre concluante lors des tests. En revanche, un
problme non ngligeable est apparu. Il concerne la gnration mme des flux Netflow par la sonde.
Les logs Neflow concernant le protocole HTTP. En effet, pour ce protocole uniquement, les flux
Neflow ne permettent pas didentifier ladresse IP source ou ladresse IP de destination. Cela
sexplique par le fait que le flux HTTP passe dans une chaine de traitement spcifique (Dansguardian,
DNSmasq, Squid et HAVP). Pour forcer les requtes HTTP passer dans cette chaine, une rgle de
POSTROUTING Netfiler ralise un REDIRECT de la requte vers ladresse IP locale dALCASAR
(127.0.0.1). Une fois pass le POSTROUTING , ladresse source initiale de la requte est remplace
par ladresse IP publique dALCASAR (adresse IP de linterface eth0).
La sonde ipt_NETFLOW ne supporte que les rgles -j NETFLOW pouvant tre positionnes que
dans la table FILTER de Netfilter. Or depuis les dernires versions du noyau, les seules tables
autorises pour le POSROUTING sont : NAT, MANGLE et RAW.
Or les rgles de POSTROUTING sont les premires rgles rencontres par les requtes traversant
le pare-feu. Il est donc impossible pour une requte HTTP, de rcuprer ladresse IP source et
ladresse IP destination originale de la requte via une rgle Iptables -j NEFLOW place en aval du
POSTROUTING (voir schma ci-aprs).

Internet

ETH1 TUN0 ETH0

IP sour : 192.168.182.x IP sour : 192.168.182.x


IP dest : 92.87.45.68 IP dest : 92.87.45.68

PREROUTING POSTROUTING
mangle mangle
nat nat
raw raw

IP sour : 192.168.182.x
IP sour : 127.0.0.1
IP dest : 127.0.0.1
IP dest : 92.87.45.68

FORWARD
mangle
Routing filter

IP sour : 127.0.0.1
IP sour : 192.168.182.x IP dest : 92.87.45.68
IP dest : 127.0.0.1

INPUT Chaine OUTPUT


mangle mangle
HTTP filter
filter
Port : 8080 Port : 80

Aprs quelques recherches et quelques tentatives, aucune solution na pour le moment t trouve
pour rsoudre ce problme. Il a donc t dcid dutiliser le systme de log Netflow pour tous les
flux autres que HTTP, et de conserver lancien systme avec Ulog uniquement pour le protocole
HTTP. On a tout de mme conserv une rgle -j NETFLOW en OUTPUT permettant ainsi au

36 Mmoire de fin dtudes ESIEA CROSNIER Franois


module PortTracker dcouter le trafic HTTP sur port 80 et dobtenir ainsi les statistiques de
charge pour ce protocole.

Utilisant dornavant les deux systmes dimputabilit Ulog et Neflow , il est ncessaire pour
assurer une bonne traabilit dadapter un mcanisme darchivage des traces tenant compte des
deux sortes de fichiers journaux notre disposition. Pour ce faire, jai regroup et adapt les deux
structures vues prcdemment, afin dobtenir une archive finale contenant la base utilisateur, les
traces HTTP et les traces des autres protocoles (voir ANNEXE N2).

37 Mmoire de fin dtudes ESIEA CROSNIER Franois


V - Intgration de la sonde Netflow la distribution
Mageia

Quest quun RPM ?


Sous Linux, il existe deux mthodes pour installer un driver ou une application.
La premire consiste tlcharger le code source de lapplication, pour ensuite le compiler soit
mme la main. La compilation la main de codes sources impose obligatoirement la prsence de
toutes les librairies ncessaires la compilation (gcc, python, perl, etc.). Ce mode dinstallation peut
parfois savrer laborieux cause du nombre important de dpendances installer, elles-mmes
pouvant faire appel dautres dpendances. De plus dans le cas de module noyau, il est parfois
ncessaire de tlcharger la version dveloppement de la version courante du noyau. Une fois le
problme des dpendances rgl, il reste compiler et installer lapplication :

#Cration du Makefile
./configure
#Compilation et installation du code source partie du Makefile
make
make install

La deuxime mthode consiste utiliser les paquets prsents dans les dpts officiels de la
distribution. Toutes les distributions Linux possdent plusieurs dpts dans lesquels on retrouve
toutes les applications et drivers pralablement packags par des packagers contribuant au
dveloppement de la distribution. Ces paquets sont grs par diffrents systmes (ou gestionnaires).
Actuellement, il existe deux gestionnaires de paquets, un pour les distributions Debian like et un
autre pour les distributions RedHat like appell Redhat Package Managemer .

Mageia tant une distribution RedHat like , le gestionnaire de paquets fonctionnant pour
ALCASAR est donc RPM . Un gestionnaire de paquets comme RPM les fonctionnalits suivantes :

Installation dune application et gestion des dpendances:


Lorsque lon souhaite installer une nouvelle application, il suffit de demander au gestionnaire
dinstaller ce paquet ( condition quil soit prsent dans les dpts), le gestionnaire se charge de le
tlcharger ainsi que ses dpendances et dinstaller le tout automatiquement.

Dsinstallation dune application :


Lors de la dsinstallation dun RPM, le gestionnaire se charge galement de dsinstaller toutes les
dpendances venues lors de linstallation du paquet. Il supprime alors uniquement les dpendances
qui resteraient orpheline aprs la suppression du RPM principal.

Mise jour dune application :


Lorsque lon rcupre une nouvelle version d'un paquet, il n'est pas ncessaire de dsinstaller la
version prcdente avant d'installer la nouvelle. En effet, le gestionnaire RPM permet la mise jour
automatique des paquets dj installs sur le systme.

38 Mmoire de fin dtudes ESIEA CROSNIER Franois


Interrogation de la base des paquets :
Le gestionnaire permet de connatre le contenu d'un package, mais il permet aussi de savoir quel
package appartient un fichier. Il possde galement la liste des paquets installs et des paquets
installables en fonction des dpts auxquels il est synchronis.

Accs aux sources dune application :


"RedHat Package Manager" met disposition des utilisateurs des paquets de type SRPM
contenant le code source, ainsi que des instructions ncessaires la compilation au cas o des
utilisateurs souhaitent modifier les fichiers prsents dans le paquet.

Il existe trois sortes de RPM diffrents.


On trouve en premier les RPM dits classiques . Ces paquets servent linstallation, la
dsinstallation et la mise jour dapplications. Ils contiennent tous les fichiers ncessaires au
fonctionnement de lapplication une fois installe (librairies, fichiers de configuration, binaires, etc.).
Leur fonctionnement est relativement simple. En effet une fois tlcharger, la procdure
dinstallation dfinie lors de la cration de ce dernier dans son fichier .spec est applique.
Linstallation dun RPM consiste extraire et copier les fichiers (librairies, fichier de conf,
documentation, etc.) quil contient diffrents endroits du systme, ainsi qu la cration du script
dinitialisation de lapplication.
Le deuxime type de paquet existant est le SRPM. Ce dernier est systmatiquement ralis lors de la
cration dun RPM. Alors quun RPM contient le code compil de lapplication, un SRPM (Source
RPM) contient le code source correspondant et le script (*.spec) de construction du RPM. Ces
paquets sont utiliss essentiellement par les packageurs pour mettre jour les RPM lors de
lvolution du code source de lapplication. Cela permet notamment de ne pas avoir rcrire tout le
script de construction du RPM chaque modification du code source de lapplication.
La troisime sorte de RPM, est le DKMS (Dynamic Kernel Module Support). Sous Linux, il est possible
de trouver les pilotes directement inclus dans le noyau. Ceux ntant pas intgrs au noyau sont
disponibles sous la forme de modules externes. Pour fonctionner, un module noyau fait appel des
variables denvironnement propre au noyau. Un tel module doit donc tre compil pour un noyau
particulier et ne peut tre utilis sur un autre. Ces modules sont en ralit des RPMs classiques, la
diffrence quils dpendent dune version de noyau donne. Or ntant pas intgr au noyau, il est
ncessaire de recrer un nouveau RPM chaque mise jour de version de noyau, ce qui peut trs
vite savrer lourd lorsque lon a plusieurs modules recompiler. Lobjectif de DKMS est justement
dautomatiser la cration des modules en fonction de la version du noyau. La construction du RPM
est similaire celle dun RPM classique lexception de la prsence dun fichier de configuration
DKMS (dkms.conf). On retrouve dans ce fichier trois tapes essentielles la cration dun DKMS qui
sont :
Linsertion du RPM larbre DKMS du noyau.
La compilation du code source en fonction du noyau.
Linstallation du module noyau au sein du noyau Linux.

Les DKMS sont gnralement utiliss par les mainteneurs de distribution Linux. En effet, linstallation
dun module par DKMS ncessite la prsence sur la machine dun compilateur et de toutes ces
dpendances. Ce qui en terme d'occupation du disque et de scurit du systme nest pas optimale.

39 Mmoire de fin dtudes ESIEA CROSNIER Franois


Comment raliser un RPM sous Mageia
Il ma fallu dans un premier temps apprhender la mthodologie de ralisation dun RPM pour
Mageia. Je me suis ensuite inform plus spcialement sur la manire et les exigences propres
Mageia pour la construction de RPM. Pour ce faire jai d prendre connaissance de lintgralit des
rgles propres Mageia concernant le packaging :

https://wiki.mageia.org/en/RPM_Spec_file_policy#Macros_definition
https://wiki.mageia.org/en/RPM_groups_policy
https://wiki.mageia.org/en/Packaging_guidelines#RPM_Group_Tag

De manire gnrale, la construction dun RPM ncessite les lments suivants :

Le code source de lapplication


rpmbuild : Outil permettant la cration de RPM partir de lexcution dun seul fichier de
spcification (*.spec)

Pour fonctionner, loutil rpmbuild requiert une architecture de systme de fichiers bien
spcifique. Il est effectivement ncessaire dadopter une arborescence de rpertoires comme suit :
~/rpmbuild/
/BUILD/
/BUILDROOT/
/SPECS/
/SOURCES/
/RPMS/
/noarch/
/i586/
/x86_64/
/SRPMS/
/tmp/

Le script de spcification contient toutes les informations ncessaires rpmbuild pour la compilation
du code source et la ralisation du RPM. Un fichier de spcification se prsente toujours pareil et doit
contenir les sections suivantes :

Un header
Dans le header on retrouve les informations gnrales sur le RPM. Parmi ces informations, certaines
sont obligatoires :

Name : Le nom que portera le RPM


Version : La version du code source utilis
Release : La version du RPM
Group : Catgorie laquelle appartient le RPM (network, games, developpemnt, etc.)
License : La licence de dveloppement (ex : GPLv3)
Summary : Description succincte de lapplication
URL : O tlcharger le code source contenu dans le RPM
Source : le nom de larchive contenant le code source (dans le rpertoire SOURCES )
Packager : Le nom de la personne ayant ralis le fichier .spec
BuildRequires : Les dpendances ncessaires la compilation et linstallation
Requires : Les dpendances ncessaires lexcution de lapplication
Patch (optionnel) : Nom des ventuels patchs appliquer au code source

40 Mmoire de fin dtudes ESIEA CROSNIER Franois


%description
Cette section contient une description de lapplication installe via le RPM.

%prep
Dans cette section, on retrouve une commande permettant la cration dun sous rpertoire dans le
dossier BUILD , dans lequel on dcompresse le code source. Cest galement ici que lon applique
les patchs au code source.

%build
Dans cette partie, on compile (./configure) le code source avec les ventuelles options de
compilation ncessaires. Suite la compilation, on ralise le fichier Makefile (make).

%install
On y excute les commandes dinstallation de lapplication (makeinstall). Cest galement dans cette
partie que lon peut dire de crer un rpertoire, copier un fichier tel endroit ou encore modifier les
droits utilisateurs.

%clean
On y retrouve linstruction permettant de supprimer les fichiers temporaires cres pour la
construction du RPM, notamment dans les rpertoires BUILDROOT et BUILD .

%postun
On y retrouve les instructions excuter aprs linstallation de lapplication (modprobe, depmod,
etc.).

%postun
Contient les commandes excuter aprs la dsinstallation de lapplication via lutilisation du
gestionnaire de paquet (urpme Nom_RPM).

%file
On y retrouve la liste de tous les fichiers devant tre prsent dans le RPM. En fonction des variables
denvironnement du noyau, ces fichiers seront copis des endroits bien spcifiques, sauf indication
contraire.

%changelog
Section permettant juste de spcifier toutes les modifications apportes au fichier *.spec au cours
des diffrentes volutions de sa version.
Une fois le fichier de configuration dument complt, il faut utiliser rpmbuild afin de construire le
RPM en tenant compte des instructions renseignes dans le fichier de spcification.
Il est possible dexcuter la cration du RPM tape par tape, ce qui permet didentifier plus
facilement les ventuels problmes lors de la cration.

#Vrification de la prsence et de lintgrit des sources


rpmbuild bs xxx.spec

#Excution uniquement de la section %prep


rpmbuild bp xxx.spec

#Excution uniquement de la section %build (aprs avoir ralis %prep)


rpmbuild bc xxx.spec

#Excution uniquement de la section %install (aprs avoir ralis %prep et %build)


rpmbuild bi xxx.spec

41 Mmoire de fin dtudes ESIEA CROSNIER Franois


#Excution uniquement de la section %list (vrification de la prsence de tous les fichiers)
rpmbuild bl xxx.spec

#Excution de toutes les sections et cration du RPM et SRPM correspondant


rpmbuild ba xxx.spec

lissue de cette tape, on obtient un SRPM et son RPM correspondant prt tre install. Si les
informations Requiers du fichier de spcification sont correctement renseignes, le gestionnaire
de paquets tlchargera et installera automatiquement les dpendances ncessaires au nouveau
RPM lors de son installation.

Les RPM intgrs / Pourquoi les intgrer ALCASAR ?


partir de la procdure dinstallation de la solution Netflow (ipt_netflow + NfDump + NfSen) vue
prcdemment, jai d trouver une manire de lintgrer au processus dinstallation dALCASAR.
Le mode dinstallation dALCASAR repose sur un ensemble de scripts permettant notamment
linstallation des RPMs ncessaires (alcasar-urpmi.sh) et la modification des fichiers de configuration
des diffrents composants pour les adapter larchitecture de notre NAC (alcasar.sh).

Le schma ci-dessous reprsente la structure partielle des scripts dALCASAR :

alcasar.sh

alcasar-urpmi.sh alcasar-conf.sh

alcasar-uninstal.sh alcasar-iptbles.sh
etc.

etc. alcasar-mysql.sh

La philosophie dinstallation dALCASAR est de rendre linstallation la plus simple et transparente


possible pour lutilisateur. Cette vision des choses a en partie contribu ladoption dALCASAR
auprs dun public non initi. Pour rendre ce mcanisme possible, la manire dont ALCASAR installe
ses outils suit la procdure suivante :

1. Tlchargement du paquet (RPM) ncessaire + les dpendances


2. Installation de ces RPM
3. Sauvegarde du fichier de configuration initiale (*.conf.default)
4. Adaptation du fichier de configuration aux exigences dALCASAR
5. Gestion ventuelle des droits utilisateurs
6. Etc.

Afin de conserver ce mode opratoire, il a donc fallu massurer que les RPMs respectifs de la sonde
ipt_NETFLOW et de la suite NfDump existaient dans les dpts officiels de la distribution Mageia.
Malheureusement, ces RPM ntaient pas pris en charge par Mageia. Pour ne pas avoir recompiler
leurs codes sources la main, jai donc d raliser les RPM dipt_netflow et de NfDump. Avant de me

42 Mmoire de fin dtudes ESIEA CROSNIER Franois


lancer dans la ralisation de ces deux RPM, il ma t demand de raliser les RPMs de HAVP et de
Coova-Chilli. Leur ralisation avait deux objectifs.
Le premier tait de me faire la main avec des RPM dj existants. En effet mon arrive,
ALCASAR utilisant les RPMS de HAVP et de Coova-Chilli issu de Mandriva. Cela ma donc permis en
partant dun fichier de spcification existant (sous Mandriva) de ladapter aux rgles de ralisation
dun RPM Mageia. Sachant que les deux logiciels fonctionnent sur ALCASAR, lintrt de cette
dmarche tait donc de se confronter uniquement des problmes issus de la ralisation dun RPM.
Ce qui naurait peut-tre pas t le cas, si javais directement commenc par raliser les RPMs
dipt_Netflow et NfDump.

Les ressources dont jai eu besoin pour la ralisation des RPMs sont :

Une machine virtuelle (VirtualBox) avec un systme Mageia 2 i586


Une machine virtuelle (VirtualBox) avec un systme Mageia 2 x86_64
Une version jour du noyau de dveloppement (3.4.52) : urpmi kernel-desktop-devel-latest
Outil de ralisation de RPM : urpmi rpmbuild
Les diffrents codes sources des application packager
Les dpendances ventuelles

RPM HAVP
Ladaptation du fichier de spcification existant ne ma pas cr de problme en particulier. En
revanche, sagissant de mon premier RPM jai mis un peu de temps assimiler tous les petits dtails
afin de raliser un RPM en adquation avec les exigences Mageia.

RPM Coova-Chilli
Le code et le fonctionnement de Coova-Chilli tant un peu plus complexes, jai eu un peu plus de
difficult raliser son RPM.

La premire difficult a t au niveau des options de compilation. Afin dadapter Coova au besoin
dALCASAR, il tait ncessaire de le compiler uniquement avec les options ncessaires. La premire
difficult a t didentifier les options utiles. La documentation du projet Coova-Chilli ntant pas
parfaitement renseigne, il ma fallu chercher diffrent endroit le nom et le rle des diffrentes
options de compilation. Pour ce faire, jai d consulter soit les scripts de configuration, soit les
Makefile , soit directement dans le code source du projet.
Jai rencontr un autre problme lors de la compilation du code source, dans la section %build du
fichier de spcification. Lors de la compilation la main du code source, je ne rencontrais aucun
problme. En revanche, ds que je passais par .spec , jobtenais lerreur de compilation suivante :
make - j2 n'est pas reconnu comme option . Le fichier de spcification rpond un certain
nombre de rgles prdfinies par Mageia pour la ralisation de RPM. Ces rgles se situent dans un
fichier .rpmmacro . Parmi ces rgles, on retrouve celles concernant les Flags de compilation.
Aprs de nombreuses recherches, jai trouv que cette erreur provenait dun FLAG de compilation
propre au compilateur gcc spcifiant que tous les warning sont considrs comme error lors
de la compilation. Deux solutions ce problme taient envisageables. La premire tait de corriger
le code source pour supprimer les warning la compilation. Bien quoffrant lintrt de ne pas
toucher aux rgles fixes par Mageia en matire de RPM, cette solution nest que provisoire puisqu
chaque mise jour du code source le problme reviendra. La deuxime solution tait de modifier

43 Mmoire de fin dtudes ESIEA CROSNIER Franois


uniquement pour notre fichier de spcification, la valeur du FLAG concern. Cest cette mthode que
jai choisi dappliquer. Jai donc dans un premier temps, envoy un mail au dveloppeur du projet
Coova-Chilli pour lui notifier le problme. Ensuite, jai modifi la valeur du FLAG dans le fichier de
spcification de Coova-Chilli comme suit : %define _disable_ld_no_undefined 1
Ce paramtre ma donc permis, pour la compilation de Coova-Chilli dignorer les alertes non
bloquantes de type warning .

#Section %build (compilation du code source)


%build
%configure2_5x \
--disable-static \
--enable-shared \
--enable-largelimits \
--enable-chilliredir \
--enable-chilliproxy \
--enable-chilliscript \
--with-poll
%make

Aprs avoir cr et test les deux RPMs (HAVP et Coova-Chilli) sur architectures i586 et x86_64, les
RPMs ont t intgrs au trunk dALCASAR (version en cours de dveloppement). Version ayant
donn lieu la sortie de la version 2.7 dALCASAR.
partir de lexprience engrange avec ces deux RPMs, je me suis ensuite attaqu la ralisation et
lintgration des RPMs dipt_netflow et NfDump.

RPM ipt_NETFLOW
La sonde ipt_ NETFLOW tant un module noyau, le RPM ainsi ralis nest valable que pour la version
du noyau sur lequel il a t ralis. Partant de ce constat, jai dcid de fixer la version du noyau
Mageia 2 sur ALCASAR. partir de l, jai ralis le fichier de spcification correspondant. Je me suis
retrouv confront une nouvelle fois des problmes dus au code source de la sonde. En effet, dans
la section %build du fichier .spec, je nai pas pu utiliser la variable denvironnement Mageia
%configure . Cela sexplique par labsence de loption --build dans le fichier configure
prsent dans larchive du code source dipt_NETFLOW. Pour contourner ce problme sans avoir
besoin de modifier le contenu des fichiers sources de la sonde, jai dcid dutiliser le fichier
configure de larchive la place de la variable denvironnement %configure de Mageia.

#Section %build (compilation du code source)


%build
./configure
%make

En tant que module noyau, une fois install le module ipt_NETFLOW.ko doit tre ajout la liste
des modules noyau. Linstallation ou la dsinstallation du RPM doit donc mettre jour cette liste
comme suit :

44 Mmoire de fin dtudes ESIEA CROSNIER Franois


#Section %post ( faire aprs installation du module)
%post
/sbin/depmod -a
#Section %postun ( faire aprs dsinstallation du module)
%postun
/etc/init.d/iptables stop
rmmod ipt_NETFLOW
echo "kernel module "ipt_NETFLOW" umount"
/etc/init.d/iptables start
/sbin/depmod -a

Le module fonctionnant que pour une version de noyau donne, il ma fallu fixer la version sa
version. Pour ce faire, jai d modifier le script alcasar-urpmi.sh . Ces modifications permettent :
Forcer linstallation de la bonne version du noyau
Figer la version du noyau
Dsinstaller toute autre version du noyau

# The kernel version we compile netflow for


KERNEL="kernel-desktop-3.4.52-1.mga2-1-1.mga2"
#Download the kernel used by ALCASAR and fix its version
urpmi --auto --quiet $KERNEL
echo "/^kernel/" > /etc/urpmi/skip.list

#Keep only the kernel version we compil netflow with, and remove all others
kernelVersion=$(rpm -qa | grep "kernel-desktop")
for i in $kernelVersion
do
if [ ! $i = $KERNEL ];then
urpme --auto $i
fi
done

#Delete old alcasar RPMs and unused services


for rm_rpm in c-icap-server lib64chilli0 libchilli0 python-coova-chilli cyrus-sasl mageia-gfxboot-theme
do
/usr/sbin/urpme --auto $rm_rpm --auto-orphans 2>/dev/null
Done
#Update the module list for correct kernel version
depmod -a kernel-desktop-3.4.52-1

Le problme longtemps rencontr concernait la mise jour de la liste des modules pour la bonne
version du noyau. En effet lors de linstallation dALCASAR, bien que lon force linstallation dune
version de noyau, cette dernire nest active quaprs un redmarrage du systme. Autrement dit le
depmod -a prsent dans le RPM met jour la version courante au moment de linstallation. Cela
avait pour consquence de rendre les rgles Iptables -j NETFLOW inapplicables. Aprs avoir
cherch une solution pendant un petit moment, je me suis aperu quil est possible de raliser un

45 Mmoire de fin dtudes ESIEA CROSNIER Franois


depmod pour une version spcifique de noyau (cf : voir ci-dessus). Cela a permis de rsoudre le
problme dintgration de la sonde au noyau.

RPM NfDump
La ralisation du RPM de NfDump na pas pos de problme particulier. En revanche, lors de
linstallation de ce dernier aucun script de lancement ntait cr. Jai donc crit ce script de
lancement afin de pouvoir automatiser le lancement du collecteur Nfcapd . Il a fallu par la suite
intgrer ce dernier au RPM, de manire le copier dans /etc/init.d/, lors de linstallation du RPM.

Nous lavons vu prcdemment, la premire raison pour laquelle jai ralis ces RPMs est de
simplifier linstallation et la configuration des outils ncessaire lintgration de la solution de
collecte Netflow. La seconde raison est plus long terme dassurer la prise en charge complte des
diffrents outils directement par Mageia. Le fait dintgrer nos RPMs Mageia a un double intrt.
Le premier est de sassurer que le module noyau (ipt_Netflow) suit lvolution des mises jour des
noyaux Mageia. De plus, le fait davoir nos RPMs dans les dpts officiels, nous permet de simplifier
un peu plus linstallation dALCASAR. En effet, puisque prsent dans les dpts officiels, il nous suffit
lors de linstallation dy tlcharger directement nos RPMs, et donc de ne plus avoir besoin de les
incorporer la main dans larchive dALCASAR. Du fait de leur prsence dans les dpts Mageia, nos
RPMs seront galement sujet des volutions et corrections de bugs de la part dautres
contributeurs Mageia. Pour parvenir intgrer nos RPMs la distribution, il fallait donc les proposer
la communaut Mageia. Jai donc entam le processus dintgration de la communaut Mageia en
tant que packageur . Il sagit dun processus long et trs cadr, permettant de garantir la qualit
de contributions futures des nouveaux arrivants.

46 Mmoire de fin dtudes ESIEA CROSNIER Franois


VI - La communaut du Logiciel Libre
ALCASAR et le logiciel libre
De manire gnrale, un logiciel libre est un logiciel dont lutilisation, ltude, la modification et la
duplication de sont code source est autorise. Cette autorisation offre lutilisateur un certain
nombre de liberts comme le contrle du programme par ce dernier sur son systme ou la possibilit
de le partager entre utilisateurs. Gnralement, les droits accords par le logiciel libre sont rgis par
des licences libres . Ces dernires se basent sur la notion de droits dauteur, garantissent aux
utilisateurs le maintien de ces droits mme dans le cas de projets drivs. Autrement dit, ds lors
quun projet utilise un logiciel sous licence libre, ce projet tombe invitablement dans le giron des
logiciels libres . Il tombe de ce fait sous licence libre, ou du moins en ce qui concerne la partie
utilisant le(s) logiciel(s) libre(s) quil embarque. Cela oblige les dveloppeurs rendre publique
lintgralit des codes sources correspondant et de manire claire et non obfusque.
Au-del des aspects lgaux, lunivers du logiciel libre est un milieu entirement communautaire. Trs
souvent, un logiciel libre est le fruit de contributions diverses et varies (dveloppement, test,
traduction, etc.) de la part dutilisateurs souhaitant participer lvolution du projet.

Les contributions un projet libre ne sont rsume par uniquement au dveloppement du code. En
effet, le projet ALCASAR bien que sous licence libre GPLv3, peut faire lobjet de dons (financiers ou
matriels). Ces dons proviennent gnralement de personnes utilisant le projet des fins
professionnelles et lucratives. Ces dons ont par exemple permis au projet dacheter un nom de
domaine (alcasar.net), ou dobtenir lhbergement du projet sur des serveurs privs. Une association
de loi 1901 a dailleurs vu le jour en septembre 2013, afin de pouvoir centraliser et collecter de
manire lgale toutes les contributions extrieures.

On a pu le voir prcdemment, le projet ALCASAR est un projet libre repose uniquement sur des
solutions galement libres. Au cours de lintgration des ces divers projets libres ALCASAR, les
dveloppeurs du projet sont leur tour devenus contributeurs de ces diffrents projets libres. Cet
effet boule de neige a notamment t le cas pour le projet Coova-Chilli, pour lequel nous avons
chang et propos David BIRD , le crateur de Coova-Chili, nos remarques propos de son
projet. En ce qui me concerne, mon travail sur ALCASAR ma conduit devenir contributeur officiel
de la distribution Linux Mageia. Jai en effet propos lquipe Mageia mon travail sur lintgration
de la solution Netflow, et en particulier les RPMs prsents prcdemment.

Devenir packageur officiel Mageia


La communaut du logiciel libre compte un grand nombre de dveloppeurs qui crivent leurs
logiciels. Ils les publient souvent sur leur site web respectif en donnant des instructions pour
compiler les sources. Avec le temps, ils peaufinent et y introduisent de nouvelles fonctionnalits,
ncessitant parfois plus de dpendances. La compilation de ces logiciels peut alors savrer de plus
en plus complique. C'est l que le packaging prend tout son sens. Dans une distribution dite
binaire comme lest Mageia, un paquet (RPM) contient le programme compil. Il est ralis de
telle sorte, que les utilisateurs ont uniquement besoin d'installer le RPM. Un paquet est trs souvent

47 Mmoire de fin dtudes ESIEA CROSNIER Franois


spcifique une distribution Linux donne, ce qui signifie qu'il est toujours prfrable d'installer des
paquets crs spcifiquement pour notre distribution.

Le rle du packageur est de raliser le RPM correspondant un code source donn, afin de
permettre son installation sur le systme. Le packageur doit alors dassurer en permanence de la
mise jour du code source par ses dveloppeurs, afin dtre le plus ractif possible en intgrant les
mises jour du code dans son RPM. Ainsi un packageur a gnralement en charge un certain nombre
de paquets dont il est lauteur. Nanmoins concernant les RPMs dpendant de la version du noyau, il
existe un type de RPM appel les DKMS (Dynamic Kernel Module Support). Ces RPMs permettent au
distributeur de la distribution de gnrer automatiquement les RPMs correspondants lors de chaque
mise jour du noyau. Cela permet dallger considrablement la charge de travail des packageurs.

Lavantage pour le projet ALCASAR en devenant packageur officiel Mageia, est que jai pu intgrer les
RPMs raliss dans le cadre du projet dans les dpts officiels de la distribution. Le fait dtre
intgrs la distribution, on est assurs que ces RPMs suivent les mises jour noyau Mageia. Un
aspect non ngligeable en ce qui concerne notre RPM de la sonde Netflow. En effet comme on la vu
prcdemment, sagissant dun module noyau le fonctionnement de ce RPM est intimement li la
version du noyau Mageia.

Le processus dintgration de la communaut Mageia pour devenir packageur officiel suit un


processus bien particulier. Dans le cadre du projet ALCASAR, M. REY et moi-mme nous nous
sommes rendus fin mai la Linux Expo Paris. Durant ce salon, nous avons pu changer avec
madame Anne NICOLAS une des membres fondateurs du projet Mageia. Au cours de notre
conversation, je lui ai fait part de mon travail dans le cadre du projet ALCASAR concernant la
ralisation de RPMs sous Mageia. Souhaitant intgrer nos RPMs la distribution, jen ai donc profit
pour lui demander la dmarche suivre afin de proposer de nouveau RPMs la communaut
Mageia. Pour devenir packageur officiel Mageia, il est ncessaire de trouver un mentor.

Appuy par Anne NICOLAS, jai suivi la procdure pour devenir packageur, prsente sur le wiki de
Mageia : https://wiki.mageia.org/en/Becoming_a_Mageia_Packager

La premire tape pour devenir packageur est de dposer une demande de mentor sur le wiki.
travers celle-ci, on se prsente de manire succincte et lon prsente galement ses comptences
techniques.
Souhaitant intgrer la grande communaut Mageia, il est impratif pour les nouveaux arrivants
dinteragir avec les autres membres de la communaut. Pour ce faire, jai rejoint la mailing-list
relative au dveloppement de la distribution : dev@ml.mageia.org. Cette mailing-list est
particulirement utile pour suivre le dveloppement de Mageia, ainsi que pour poser des questions
propos de la ralisation dun RPM. Dans un mme temps, jai rejoint les deux canaux IRC ddis au
dveloppement et au packaging de Mageia : #mageia-dev on FreeNode et #mageia-mentoring on
FreeNode. Une runion hebdomadaire a lieu tous les mardis 20h00 UTC, sur le premier canal IRC.
Cette runion sadresse tous les packageurs et apprentis packageurs. Durant ces meetings, les
participants abordent des questions relatives lorganisation gnrale de la distribution, les
prochaines versions de release , les orientations prendre pour le dveloppement de la
distribution, etc. Au dbut de chaque runion, il est galement demand chaque apprenti
packageur prsent de se prsenter afin de trouver un mentor. Lors de ma candidature, jai prsent
le projet ALCASAR et ma volont de raliser et dintgrer entre autres un nouveau module noyau la
distribution. Aprs plusieurs changes ce sujet sur la Mailing-List et IRC, un mentor ma t attribu.

48 Mmoire de fin dtudes ESIEA CROSNIER Franois


Mon mentor, Pascal TERJAN, est un packageur confirm issu de Mandriva ayant migr comme
beaucoup chez Mageia. Packageur confirm, il est en charge chez Mageia de la ralisation et le
maintien des scripts permettant la gnration des RPMs partir des DKMS prsents dans les dpts.
Le mentor est un packageur confirm, l pour accompagner et aider lapprenti packageur
raliser des RPMs en bonne et due forme. Le processus dapprentissage comporte plusieurs tapes
valides au fur et mesure par le mentor.

Le tableau ci-dessous est un extrait du suivi de lavancement des apprentis packageurs par leur
mentor. Mon pseudonyme au sein de la communaut Mageia est Crox :

Avant laffectation de mon mentor, javais dores et dj entrepris la ralisation des RPMs vus
prcdemment. Aprs avoir chang avec mon mentor, je lui ai transmis le RPM de la sonde Netflow
(ipt_NETFLOW) que javais ralis. Cette premire version fonctionnait sur ALCASAR, mais
uniquement pour une version de noyau identique celle utilise pour la ralisation du RPM.
Sagissant dun module noyau, mon mentor ma alors conseill dadapter mon RPM en un DKMS :

Aprs plusieurs changes et vrifications de mon DKMS ipt_NETFLOW, mon mentor a valid ce
dernier le 5 octobre. Le DKMS a donc t ajout la distribution en cours de dveloppement savoir

49 Mmoire de fin dtudes ESIEA CROSNIER Franois


Mageia 4 (Cauldron). Le RPM de la sonde sera alors directement intgr dans la prochaine version de
Mageia. Concernant lintgration du DKMS pour les versions 2 et 3 de Mageia, nous devons pour le
moment attendre louverture des dpts backports .

La premire capture ci-dessous montre la prsence du SRPM de la sonde dans les dpts Mageia. La
deuxime capture montre le RPM gnr automatiquement par la distribution partir du SRPM
fournit :

Lintgration de mon DKMS la distribution ne me permet pas encore daccder au statut de


packageur confirm. Pour cela, je dois assurer le suivi de mon DKMS, et galement contribuer la
correction de bugs sur dautres RPMs. Lorsque mon mentor considrera que je dispose dassez
dexprience en matire de packaging, il me donnera laccs officiel au SVN de Mageia.

50 Mmoire de fin dtudes ESIEA CROSNIER Franois


VII - Conclusion
Si je devais effectuer un bilan du travail ralis durant mon stage, je dirais que lobjectif qui mtait
fix est atteint. En effet, la fin de mon stage une nouvelle version dALCASAR (8.0) est prte sortir.
Cette version comportera toutes les modifications que jai pu apporter au projet tout au long de mon
stage, savoir :

Lintgration dun systme de supervision des flux rseau


Lamlioration du systme dimputabilit des accs Internet
La simplification du mcanisme darchivage des preuves
La ralisation des RPMs utiliss par ALCASAR
La scurisation du NAC laide du projet Fail2Ban
La participation au support utilisateur (forum et intervention sur sites)

Dun point de vue technique, ce stage a t pour moi lopportunit de me perfectionner dans le
milieu de la scurit des rseaux et des systmes Linux. Il ma galement permis de dcouvrir plus
en profondeur lunivers communautaire du logiciel libre. Outre le fait de communiquer et de prendre
part lamlioration des diffrents projets libres utiliss par ALCASAR. Mon stage ma surtout permis
de dcouvrir trs concrtement les mandres du dveloppement dune distribution Linux. En effet,
sans mon travail et le temps pass travailler sur le projet ALCASAR, je naurai certainement jamais
eu loccasion daborder les notions de cration et dintgration dun RPM.
Dun point de vue relationnel, le stage ma permis la fois dapprhender le travail collaboratif via un
SVN ainsi que laide aux utilisateurs du projet. Outre laide que jai pu apporter sur le fonctionnement
mme dALCASAR, jai galement d tre lcoute des retours utilisateurs. Par moment ces retours
portant sur un dysfonctionnement du projet, on se devait de mettre en attente notre travail en cours
afin de traiter le problme dans les plus brefs dlais. Durant la dure de mon stage, jai corrig et
contribu la sortie de deux versions intermdiaires du projet (4.7.1 et 4.7.2).

Content des amliorations que jai pu apporter au projet ALCASAR, il reste nanmoins quelques
points que je nai malheureusement pas eu le temps dapprofondir avant la fin de mon stage.
Concernant lintgration de la solution Netflow. Bien que fonctionnent correctement, jaurais aim
avoir davantage de temps pour peaufiner et rsoudre le problme li lincompatibilit de la table
NAT du pare-feu et la sonde Netflow. Une solution existerait peut-tre en remplaant linterface
tun0 par un bridge. Avec davantage de temps, on pourrait galement mettre en place un filtrage
des utilisateurs plus fin. Sappuyant sur lauthentification Radius, des paramtres de filtrage
pourraient tre rcuprs dans le Base MariaDB pour crer des rgles dynamiques correspondantes
dans le pare-feu. Une autre amlioration envisageable serait, dintgrer un systme de blocage
dadresse MAC. Lajout de nouveaux modules Iptables permettant le filtrage MAC directement par le
pare-feu.

Pour conclure, jajouterai que jai pass six mois de stage trs enrichissant et intressant, que ce soit
techniquement ou humainement. Mon seul regret est de ne pas avoir eu le temps daborder en
profondeur lauthentification Radius. Une notion que je ne dsespre pas daborder un jour, en
esprant pouvoir continuer apporter ma contribution au projet ALCASAR dans le futur.

51 Mmoire de fin dtudes ESIEA CROSNIER Franois


Bibliographie
GNU/Linux Magazine France N143, article A la dcouverte de RRDtool , Marc Falzon

Edition : ed-diamond (novembre 2011)

MISC Magazine N47, article Netflow, protocole de tlmtrie rseau

Edition : ed-diamond (janvier 2010)

Webographie
alcasar.net, Site officiel du projet ALCASAR,
http://www.alcasar.net/

Nfdump Sourceforge, Site officiel du projet Nfdump.


http://nfdump.sourceforge.net/

Nicolargo, Tutoriel dinstallation de NfSen,


http://blog.nicolargo.com/2010/03/installation-de-nfsen-un-front-end-pour-nfdump.html

Nfsen Sourceforge, Site officiel du projet NfSen,


http://nfsen.sourceforge.net/

Coova.org, Site officiel du projet Coova-Chilli,


http://coova.org/CoovaChilli

RRDtool, Site officiel du projet RRDtool,


http://oss.oetiker.ch/rrdtool/index.en.html

Wiki-monitoring RRDtool, Documentation et tutoriel dinstallation de RRDtool,


http://wiki.monitoring-fr.org/supervision/rrdtool

Wiki Mageia, Packaging guidelines, Introduction au packaging pour Mageia


https://wiki.mageia.org/en/Packaging_guidelines

Wiki Mageia, Packaging Tutorial, Tutoriel de ralisation dun RPM sous Mageia,
https://wiki.mageia.org/en/Packagers_RPM_tutorial

Wiki Mageia, RPM Spec File, Rgles pour la ralisation dun fichier de spcification Mageia,
https://wiki.mageia.org/en/RPM_Spec_file_policy

52 Mmoire de fin dtudes ESIEA CROSNIER Franois


Wiki Mageia, Groups policy, Rgles concernant les diffrents groupes pour le RPM Mageia,
https://wiki.mageia.org/en/RPM_groups_policy

Wiki Mageia, DKMS packaging policy, Rgles concernant les DKMS sous Mageia,
https://wiki.mageia.org/en/DKMS_packaging_policy

Lea-Linux, HowTo DKMS, Documentation sur la ralisation dun DKMS,


http://lea-linux.org/documentations/HOWTO_Dkms

Wiki Mageia, Becoming a Mageia Packager, Procdure pour devenir packageur Mageia +
dport candidature,
https://wiki.mageia.org/en/Becoming_a_Mageia_Packager

53 Mmoire de fin dtudes ESIEA CROSNIER Franois


Glossaire
Adresse MAC : Media Acces Control, Identifiant physique stock dans une carte rseau afin de
lidentifier de manire unique sur un rseau.

ANSSI : Agence Nationale de la scurit des systmes dinformation

Brute force : Attaque par brute force consiste essayer toute les combinaisons sur un systme
protg

CDP : Consolidated Data Point, Conservation dune tendance (moyenne) pertinente des PDP lors de
lutilisation dune base RRD.

CNIL : Commission Nationale de lInformatique et des Liberts

Dmon : Programme ou processus informatique sexcutant en tche de fond sur un systme

FAI : Fournisseur dAccs Internet

LAN : Local Area Network, Rseau informatique local, qui relie des ordinateurs dans une zone
limite.

NAC : Network Access Control, Dispositif permettant de soumettre laccs un rseau


lidentification des utilisateurs.

Obfuscation : Ajout dinformations superflues dans le but de rendre le contenu initial


incomprhensible.

PDP : Primary Data Point, Correspond toutes les valeurs brutes insres dans une base RRD.

PKI : Public Key Infrastructure, permet de gnrer et de signer la chaine des certificats

RRA : Round Robin Archive, Archive contenant la concatnation de CDP appartement une mme
base RRD.

RRD : Round Robin DataBase, Base de donnes permettant laccumulation dun grand nombre de
donnes tout en minimisant lespace de stockage.

RPM : RedHat Package Management, Gestionnaire de paquet sous distribution RedHat

SCTP : Stream Control Transmission Protocol, Protocol TCP mettant une communication multi-flux
(VOIP, SMS, tlphonie, etc.).

TCP : Transmission Control Protocol, protocole de transport rseau fiable permettant notamment la
vrification de lintgrit des trames changes.

UDP : User Datagram Protocol, similaire au protocole TCP noffrant aucune vrification lors de la
communication.

URL : Uniform Ressource Locator, chaine de caractre utilise pour adresser une ressource sur Internet.

54 Mmoire de fin dtudes ESIEA CROSNIER Franois


Annexes

ANNEXE N1 : Architecture interne dALCASAR (issu de la documentation technique)

ANNEXE N2 : Mcanisme complet de gestion et darchivage des traces

55 Mmoire de fin dtudes ESIEA CROSNIER Franois


ANNEXE N1 : Architecture interne dALCASAR (issu de la documentation technique)
ANNEXE N2 : Mcanisme complet de gestion et darchivage des traces

Nfsen --expire 62d LogRotate

Conservs pendant /var/log/nfsen/profiles-data/live/ipt_netflow/date /var/log/firewall/tracability.log Tous les dimanches


2 mois 0h22

Netfilter / Iptables
alcasar-netflow.sh Tous les lundis 5h05 alcasar-log.sh --export Tous les lundis 5h00

/var/Save/logs/firewall/tracability_WEB.log-date.gz
/var/Save/logs/firewall/tracability.log-date.tar.gz

alcasar-archive.sh --now
alcasar-archive.sh --now
Tous les lundis 5h35
/tmp/archives-date/ tracability.log-date.tar.gz Tous les lundis 5h35 /tmp/archives-date/tracability_WEB.log-date.gz

+
Sauvegarde base utilisateur ( .SQL )

/var/Save/archives/archives-date.tar.gz

Conserves pendant 1 an

Netflow Ulog
alcasar-archive.sh --clean

You might also like