Professional Documents
Culture Documents
&
MEMOIRE DE MASTERE SPECIALISE N&IS
CROSNIER Franois 2013
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
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.
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.
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.
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
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
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).
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.
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 :
La synchronisation de la base de temps. Sassurer dune date et heure commune tous les
fichiers de logs dans le temps.
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
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 :
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)
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.
Le tableau suivant synthtise ces diffrents aspects pour les cinq NAC cits prcdemment :
Solution Standalone
Simplicit d'installation
Simplicit d'utilisation
La liste des fonctionnalits offertes par ALCASAR mon arrive tait la suivante :
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
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.
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
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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)
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
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
Rseau de consultation
Points de congestion
probable
Internet
Sondes
Rseau de consultation
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 :
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.
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
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 :
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.
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
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
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 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.
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.
Flux Netflow
perdus
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
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 :
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.
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
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 :
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.
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
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
+
Sauvegarde base utilisateur ( .SQL )
alcasar-archive.sh --now
LogRotate
Tous les lundis 0h35
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.
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
Internet
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
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
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).
#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 :
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.
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
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 :
%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.
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.
alcasar.sh
alcasar-urpmi.sh alcasar-conf.sh
alcasar-uninstal.sh alcasar-iptbles.sh
etc.
etc. alcasar-mysql.sh
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
Les ressources dont jai eu besoin pour la ralisation des RPMs sont :
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
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.
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 :
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
#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
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
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.
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.
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.
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.
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
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 :
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.
Webographie
alcasar.net, Site officiel du projet ALCASAR,
http://www.alcasar.net/
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
Wiki Mageia, DKMS packaging policy, Rgles concernant les DKMS sous Mageia,
https://wiki.mageia.org/en/DKMS_packaging_policy
Wiki Mageia, Becoming a Mageia Packager, Procdure pour devenir packageur Mageia +
dport candidature,
https://wiki.mageia.org/en/Becoming_a_Mageia_Packager
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.
LAN : Local Area Network, Rseau informatique local, qui relie des ordinateurs dans une zone
limite.
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.
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.
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