Filière
Option
Elaboré par
Mohamed Es-said ELARIB
Khadija Zakraoui
Pour cela notre rapport est divisé en quatre chapitres le premier consiste à
présenter le contexte générale de notre stage. Le deuxième concerne l‟étude et le
critique du réseau CNRST, et la proposition d‟une solution compatible. Le
troisième présente la conception de la solution Netflow avec NfSen et la mise en
place complète de la solution. Enfin, dans le dernier chapitre nous abordons le
teste de Netflow.
C'est pourquoi les administrateurs réseau font appel à des logiciels de surveillance et
de supervision de réseaux. Ces logiciels vérifient l'état du réseau ainsi que des machines
connectées et permettent à l'administrateur d'avoir une vue d'ensemble en temps réel de
l'ensemble du parc informatique sous sa responsabilité. Il peut être aussi informé par email en
cas de problème. Grâce à un tel système, les délais d'interventions sont fortement réduits.
C‟est donc dans ce contexte que Monsieur Redouane MERROUCH chef de la division
technologies, informations et de communications du CNRST nous a proposé Netflow comme
sujet de stage d‟application au sein du CNRST.
Après une brève description du réseau de CNRST, nous reviendrons sur cette
problématique puis nous présenterons le déroulement du projet avec ces trois phases : collecte
des données, stockage des données et interface de présentation. Enfin nous aborderons un test
sur le fonctionnement de cette solution.
1.1 Missions
Les missions du CNRST sont en relation étroite avec les nouvelles orientations qui lui
sont confiées. Il sera notamment chargé :
1.2 Administration
Le Conseil scientifique ;
Les Comités scientifiques ;
Le Département des Affaires scientifiques et techniques ;
Le Conseil scientifique, présidé par le Directeur du Centre, est placé sous l'autorité
directe du Conseil d'administration. Il est, conformément aux dispositions de l'article 10 de la
loi précitée, chargé des questions scientifiques relatives aux activités du Centre.
1.4 Départements
Moroccan Academic and Research Wide Area Network, plus connu sous l'acronyme
de « MARWAN » est le réseau informatique national à but non lucratif, dédié à l'éducation, à
la formation et à la recherche. Il a pour objectif de mettre en place une infrastructure
d'information et de communication entre les établissements de formation et d'enseignement.
Depuis sa création en 1998, MARWAN a permis aux universités marocaines de développer
de nouveaux services en matière d'enseignement, de transfert de technologie et de recherche
scientifique.
Figure 2: Organigramme
3. Planning
2. Problématiques
Les meilleurs dispositifs de sécurité ne peuvent pas protéger de façon optimale un
réseau s‟ils ne sont pas correctement supervisés. Ainsi, la sécurité d‟un réseau repose d‟une
part sur l‟architecture et son adéquation aux besoins des composants qui le constituent, mais
aussi sur l‟administration et la supervision.
Aussi toute panne ou incident peut entrainer de lourdes conséquences sur le système
d'information:
Financières ;
Organisationnelles ;
Crédibilité.
Et dans le cas d‟un réseau complexe, il est impossible de faire une surveillance manuelle.
3. Proposition de solution
Le CNRST développe une multitude d'applications liées à l'évolution croissante du
réseau informatique, qu‟il administre. Ces différentes applications font l'objet des projets
proposés aux stagiaires.
Le projet qui nous a été confié concerne la métrologie en temps réel sur le réseau Ethernet.
D'un point de vue général, la supervision est une fonction dont l'objectif est la
surveillance du bon fonctionnement d'un système ou d'une activité. En informatique, la
supervision fait partie de l'un des cinq domaines fonctionnels de l'administration des réseaux
et des systèmes.
L'extraction des informations des éléments du réseau au moyen d'outil. C'est la récolte
ou collecte d'un grand nombre d'information ;
La réduction du volume d'information au moyen de filtres de façon à ne garder qu'une
sélection d'informations significatives ;
Le stockage des informations retenues ;
Des traitements sur ces informations ;
Des interfaces utilisateur et d'administration sur ces informations.
Heure de début ;
Heure de fin ;
Adresse IP source ;
Adresse IP destination ;
Port destination ;
Protocole ;
Taille des données.
C‟est une technologie créée par Cisco, il est devenue pour de nombreux clients le standard de
fait pour collecter des données IP opérationnelles. Ceci permet de:
La technologie Netflow peut être utilisée dans une grande variété d‟applications. Les
utilisations principales sont :
Réduction des pics de trafic WAN Utilisation des statistiques de NetFlow pour
mesurer le trafic WAN et comprendre qui
utilise le réseau (top talkers/top applications).
Détection du trafic WAN non autorisé Éviter les mises à jour coûteuses de bande
passante en identifiant les applications
responsables de la congestion.
Le concept de flow est utilisé par Cisco pour optimiser, au sein de ses équipements de
routage, le traitement des flux de données. En effet, l'échange entre deux machines est
généralement constitué de plusieurs trames de données, et le calcul effectué pour le premier
paquet doit pouvoir être réutilisé pour les paquets suivants, afin de minimiser les temps de
calcul du routeur. Un système de cache est donc mis en œuvre, afin de mémoriser la route
calculée. Les routeurs Cisco offrent la possibilité d'exporter le contenu de ce cache, sous
forme de datagrammes UDP.
En effet, dans le routage dit « classique », lorsqu‟un paquet entre dans le routeur, celui-ci doit
le remonter jusqu‟à sa CPU et consulter sa table de routage qui lui indique vers quelle
interface rediriger le paquet et il fait cette manipulation pour tous les paquets.
Par contre, dans le routage dit « accélérer », lorsqu‟un paquet entre dans le routeur, celui-ci
consulte son cache Netflow pour savoir si le paquet n‟appartient pas à un flux existant.
Si ce n‟est pas le cas, le paquet suit la même procédure que dans le routage « classique » et le
routeur crée dans son cache Netflow une entrée pour le flux qu‟il vient de détecter. Cette
entrée indique quel chemin doit emprunter tous les paquets appartenant à ce flux.
Pour récolter les informations sur les flux en cours, il suffit donc d‟envoyer le contenu
du cache Netflow à une machine de collecte sous la forme des paquets Netflow. Cependant,
l‟envoi de ces paquets ne se fait que lorsqu‟un flux est terminé, ce qui peut poser problème
par exemple dans le cas de protocoles non orientés connexion comme UDP qui ne signale pas
quand une communication est terminée. Il existe donc différentes manières de gérer le cache :
Terminaison d‟un flux après une période d‟inactivité (à définir), utile pour les flux UDP ;
Terminaison d‟un flux après une période d‟activité (à définir), utile pour les longues
connexions TCP.
Ces deux options sont très utiles dans le cas où on souhaite faire de la métrologie en « temps
réel ».
Le routeur utilisé pour ces tests est un routeur cisco 2800 .C‟est un routeur combinent
les communications voix, données, vidéo et les services sans fil dans un seul appareil
parfaitement sécurisé et fiable et offrent une modularité qui permettre d'ajouter de nouveaux
équipements pour s'adapter à l'évolution de notre besoins Il a été configuré de la manière
suivante :
$ telnet 192.168.5.100
Username: cisco
Password:
Router1>enable
Password:
Enter the enable password...
Configure FastEthernet0/0 to generate Netflow:
NetflowCNRST# configure terminal
NetflowCNRST(config)# ip flow-export source fastethernet 0/0
NetflowCNRST(config)# ip flow-export destination 192.168.5.101 9999
NetflowCNRST(config)# ip flow-export version 5
NetflowCNRST(config)# ip flow-cache timeout active 5
NetflowCNRST(config)# snmp-server ifindex persist
NetflowCNRST(config)#ip flow-top-talkers
NetflowCNRST(config-flow-top-talkers)#top 20
NetflowCNRST(config-flow-top-talkers)#sort-by bytes
NetflowCNRST(config-flow-top-talkers)#exit
La commande “show ip flow top-talkers” permet d‟analyser en fonction des plusieurs critères,
la volumétrie des données
La version utilisée ;
L‟adresse du serveur et le port d‟écoute ;
Un ensemble de statistiques sur l‟état et l‟utilisation de protocole.
1.2 Conclusion
Les paquets Netflow est envoyés à notre machine collectrice 192.168.5.101. Afin de
pouvoir stoker et visualiser le résultat de notre collecte de flux, nous procédons à installer
NFDump sur cette machine, car NFDump est une bonne solution, open source, simple a
mettre en place, et permettant un paramétrage adapté à beaucoup de situations.
Pour chaque paquet, des informations sont affichées à l'écran : les machines source et
destination, les ports source et destination, le type de paquet, les données brutes du paquet,
etc… En analysant ces informations, on peut reconstituer les données transmises sur le réseau.
Comme tous les paquets ne sont pas forcément intéressants, il est possible de définir des
filtres pour ne prendre en compte que ceux qui paraissent utiles au phénomène que l‟on
étudie. On peut filtrer les adresses source ou destination Ethernet, les adresses source ou
destination IP de machines ou de réseaux, les numéros de ports, les types de protocole (dans
notre cas, seul les paquets de type TCP, UDP et ICMP sont traités).
Le principe est d'utiliser des outils qui vont construire des fichiers afin d'en exploiter
les données. Et c'est justement avec les paquets NFDump que nous allons pouvoir
travailler. De ce paquet découle plusieurs commandes dont nfcapd qui va collecter et stocker
les données toutes les cinq minutes sous un format nfcapd, nfprofile qui comme son nom
l'indique va créer des profiles en fonction d'un filtrage spécifique etc.
Toutes les données envoyées par le routeur sont stockées sur le disque, avant d'être
analysées. C'est ce qui sépare le processus de stockage et d'analyse des données. Les données
-l /Netflow : répertoire de stockage des données reçues sous forme de fichier nfcapd.
-p en écoute sur le port 9999.
Cette commande pour lire et stocker les données provenant du réseau Netflow dans des
fichiers situés dans un répertoire qu‟on a déjà créé.
ubuntu@collector:~$ ls Netflow/
nfcapd.201206081051 nfcapd.201206081135 nfcapd.201206081220
nfcapd.201206081055 nfcapd.201206081140 nfcapd.201206081225
nfcapd.201206081100 nfcapd.201206081145 nfcapd.201206081230
nfcapd.201206081105 nfcapd.201206081150 nfcapd.201206081235
nfcapd.201206081110 nfcapd.201206081155 nfcapd.201206081240
nfcapd.201206081115 nfcapd.201206081200 nfcapd.201206081245
nfcapd.201206081120 nfcapd.201206081205 nfcapd.201206081250
nfcapd.201206081125 nfcapd.201206081210 nfcapd.201206081255
nfcapd.201206081130 nfcapd.201206081215
nfprofile – Création de profils de mesures : Lire les données Netflow à partir des fichiers
stockés par nfcapd. Filtres les données Netflow selon les ensembles spécifiés de filtre (profils)
et stocke les données filtrées dans des fichiers pour une utilisation ultérieure.
Les flux transformés peuvent être imprimés en format ASCII sur la sortie standard ou écrit
dans un fichier. Le fichier binaire peut être relu par NFDump pour un traitement ultérieur.
NFDump a quatre formats de sortie fixes qu'on peut déterminer avec l‟option -o :
Le format de sortie raw qui affiche la totalité des informations contenues dans un
enregistrement de flux pour chaque flux sous forme de colonnes. C'est la vue la plus
détaillée sur un flux ;
Le format de sortie line, c‟est le format de sortie par défaut. Il affiche les informations
sur les détails de connexion, ainsi que le nombre de paquets, d‟octets et des flux ;
Le format de sortie long, identique au format line, et contient des informations
supplémentaires telles que les indicateurs TCP et type de service ;
1.4 Conclusion
Après l‟analyse et le stockage des paquets Netflow envoyé par le routeur par le
collecteur avec l‟outil NFDump, nous avons constaté qu‟il est difficile d‟interpréter les
données facilement, et qu‟il faut utiliser des différentes commandes pour un affichage
spécifique des résultats d‟analyse.
C‟est donc dans ce contexte que notre encadrant nous a demandé de mettre en place la
solution NfSen, qui permet d'ajouter a l'analyseur NFDump (qui est en mode console) une
interface graphique pour retranscription des statistiques Netflow.
NfSen est développé par le réseau Suisse de la recherche SWITCH et rempli les fonctions
suivantes :
Afficher les données NetFlow: flux, paquets et les octets en utilisant RRD (Round
Robin Database) ;
Afficher l'état du trafic réseau;
Analyser les données NetFlow en utilisant le web;
Naviguer facilement dans les données NetFlow;
Isoler des statistiques dans un intervalle de temps donné ;
Traiter les données NetFlow dans le laps de temps spécifié;
Créer un historique ainsi que des profils d‟analyse ;
Configurer des alertes en fonction de diverses conditions ;
Créer des extensions pour analyser les enregistrements de flux de manière spécifique ;
Créer un bon nombre de statistiques NTop.
Notre collecteur est une machine Ubuntu 12.04 lts server. Pour installer NfSen on doit avoir
sur cette machine les dépendances suivante :
PHP et Perl: NfSen est écrit en PHP et Perl. Le premier « Hypertext Preprocessor » est
un langage de scripts libre, principalement utilisé pour produire des pages Web
dynamiques via un serveur HTTP, mais pouvant également fonctionner comme n'importe
quel langage interprété de façon locale, et le deuxième est un langage interprété,
polyvalent, et particulièrement adapté au traitement et à la manipulation de fichiers texte.
Outils de RRD: Tous ce qu'est graphiques dans NfSen nécessite RRD. C‟est est un outil
de gestion de base de données RRD (round-Robin database). Il est utilisé par de nombreux
Mise en place une solution NetFlow avec le collecteur NfSen 31
outils open source, pour la sauvegarde de données cycliques et le tracé de graphiques, de
données chronologiques. Cet outil a été créé pour superviser des données serveur, telles la
bande passante et la température d'un processeur. Le principal avantage d'une base RRD
est sa taille fixe. RRDTool inclut également un outil permettant de représenter
graphiquement les données contenues dans la base.
Un serveur Web supportant le PHP : on a utilisé Apache qu‟est un simple logiciel libre
fourni sous la licence spécifique Apache, capable d'interpréter les requêtes HTTP arrivant
sur le port associé au protocole http.
Les outils NFDump: sont les outils d'arrière-plan pour NfSen et permettra de recueillir et
de traiter les données NetFlowet quelques librairies.
Toutes les données NetFlow est stocké sous PROFILEDATADIR. Donc, il faut un
espace disque suffisant pour ce répertoire. Le fichier de configuration par défaut est
nfsen.conf. Les graphiques eux-mêmes sont stockés dans un répertoire „profiles-stat‟.
Définition correcte des utilisateurs afin qu'Apache puisse accéder aux fichiers :
$WWWUSER = 'www-data';
$WWWGROUP = 'www-data'
$PREFIX = '/usr/bin';
Spécification d‟un tampon de petite taille, de façon à ce que les données soient rapidement
visibles.
$BUFFLEN = 2000;
Et d‟autre modification :
$BASEDIR = "/var/nfsen";
$BINDIR="${BASEDIR}/bin";
$LIBEXECDIR="${BASEDIR}/libexec";
$CONFDIR="${BASEDIR}/etc";
$HTMLDIR = "/var/www/nfsen/";
$DOCDIR="${HTMLDIR}/doc";
$VARDIR="${BASEDIR}/var";
$PROFILESTATDIR="${BASEDIR}/profiles-stat";
$PROFILEDATADIR="${BASEDIR}/profiles-data";
$BACKEND_PLUGINDIR="${BASEDIR}/plugins";
$FRONTEND_PLUGINDIR="${HTMLDIR}/plugins";
$syslog_facility = 'local3';
@plugins = (
# profile # module
# [ '*', 'demoplugin' ],
['live', 'PorTracker'],
);
%PluginConf = (
# For plugin demoplugin
demoplugin => {
# scalar
param2 => 42,
# hash
param1 => { 'key' => 'value' },
},
# for plugin otherplugin
otherplugin => [
# array
'mary had a little lamb'
],
);
$MAIL_FROM = ‘mr.elarib@gmail.com’;
$SMTP_SERVER = 'localhost';
$MAIL_BODY = q{
Alert '@alert@' triggered at timeslot @timeslot@
};
1;
7. Démarrage de NfSen
/var/nfsen/bin./nfsen start
Interface Web ;
Interface de ligne de commande.
On peut accéder à l‟interface graphique de NfSen par l‟utilisation d‟un navigateur par
exemple Mozilla firefox, et entrer comme url :
http://192.168.14.244/nfsen/nfsen.php
Le laps de temps disponible du graphe peut être changé en utilisant le menu déroulant.
Parfois, il est souhaitable de choisir et de traiter plus d'un créneau horaire unique de cinq min,
donc il faut sélectionner Time Window.
Le résumé statistique peut être commuté entre la somme totale de l‟intervalle de temps
sélectionné, ou les valeurs de taux par seconde. Les colonnes individuelles peuvent être
réduites ou dépensé au besoin, en cliquant sur les triangles bleus. Les statistiques peuvent être
affichées ou masquées en cliquant sur le triangle jaune.
Linéaire axe y
Logarithmique axe y.
Type de graphique:
Stacked: Toutes les sources sont tirées sur le dessus les uns des autres.
Ligne: Toutes les sources sont tirées indépendamment.
Le changement de l'option d'affichage est réalisé en cliquant sur les boutons radio
appropriés dans le coin inférieur droit du graphe principal. On peut repérer plus facilement les
pics de quelques-unes des sources en optant pour l'option d'affichage graphique linéaire.
Un filtre souvent utilisé peut être enregistré et utilisé à tout moment plus tard, lors du
traitement de flux. Le filtre personnalisé est enregistré on cliquant sur le symbole de
disquette. Après avoir réussi la sauvegarde, le filtre est disponible dans la boîte de sélection.
Créer un profil
Un profil est une vue spécifique sur les données NetFlow, défini par son nom, son
type et un ou plusieurs filtres, qui sont des filtres valides acceptés par NFDump. Le profil est
toujours disponible et est utilisé pour stocker nos données NetFlow entrants sans filtrage. On
peut choisir n'importe quel profil en utilisant le menu déroulant dans le coin supérieur droit
de la page Web.
Nfsen permet de définir des profiles, c'est-à-dire de créer des filtres et d‟afficher des
graphiques selon une ou plusieurs caractéristiques. Par exemple on peut choisir de représenter
graphiquement que les flux d‟un port particulier. Le profil „live‟ représente tous les flux, sans
filtrage.
A partir d‟un profile particulier ou du profile „live‟, il est possible de définir des
alarmes, généralement basée sur des seuils. Dès qu‟une condition est atteinte, une alarme est
levée. Les conditions peuvent être définies à partir de l‟observation des flux dans leur totalité,
à partir d‟une caractéristique mesurée par Nfsen (nombre de paquets) ou à partir de données
renvoyées par un plug-in.
NFSen est modulaire, il est possible d‟y ajouter des plug-ins qui réalisent des calculs à
partir des flux. D‟autres plug-ins permettent d‟exécuter une action (exécution de script,
journalisation dans une base de données de l‟alerte…) .
Alertes
Conditions
Déclencheurs
Actions
Après la mise en œuvre de NfSen avec son interface graphique, il faut tester le
fonctionnement de cette solution afin de le mettre en place dans le réseau réel
de CNRST.
On Testé le fonctionnent de NfSen dans un sous réseau pour n‟est pas perturbé le
réseau CNRST, et utilisé deux clients passent par notre routeur, qui envoie a son tour les
paquets a un autre routeur qu‟est connecté au réseau CNRST afin de pouvoir sortir vers
Internet. Dans notre cas on a utilisé un seule routeur donc on a dans les graphes un seule
couleur.
Les trois graphes dans la même ligne présente le même intervalle de temps avec des
échelles statistiques différentes (flux, paquets, octets), on cliquant sur un des graphes on passe
vers la vue « Graphs ».
Afin de filtrer les données Netflow on utilise le formulaire processus qui offre plusieurs
options pour des traitements spécifique des informations. Par exemple l‟affichage des vingt
premiers lignes trié par flux.
Figure 30 : Filtre
Les conditions sont basées sur le nombre total de flux, les paquets ou d'octets qui passent le filtre. Les chiffres
peuvent être comparés à une valeur absolue, ou relative à divers basés sur le temps des valeurs moyennes, qui
sont calculés automatiquement. Cela permet de créer facilement des filtres adaptatifs.
2. Conclusion
L'interface de NfSen permet à l'utilisateur d'avoir les différents niveaux de visualisation nécessaires à
une analyse du réseau en temps réel. Elle permet aussi la configuration des données pour avoir une analyse
adaptée aux besoins des administrateurs.
L'avantage d'une interface graphique est que cela permet l'intégration des nouveaux plugins pouvant
contenir d'autres analyses statistiques développées.
Le stage a été une bonne opportunité d‟utiliser nos connaissances réseau pour
l‟analyse des paquets, la configuration des routeurs CISCO ainsi que pour étudier
l‟organisation du réseau du CNRST. D‟un point de vue personnel, nous sommes heureux
d‟avoir fait des recherches et mis en place une solution permettant d‟avoir des informations
en temps réel sur un réseau privé. Nous avons en plus acquis une certaine autonomie de
travail ainsi qu‟une plus grande assurance dans les choix techniques.
Ce stage à été aussi une solide expérience au niveau de travail d‟équipe et cela grâce a
la contribution dans l‟organisation des Journées Internationales d‟IPv6 organisé par MISOC
en collaboration avec le Centre National pour la Recherche Scientifique et Technique
(CNRST
En ce qui concerne la vie en entreprise, il nous a été facile de nous intégrer dans un
service composé d‟une équipe accueillante, toujours prête à répondre à nos questions.
http://blog.nicolargo.com/
http://nfdump.sourceforge.net/
http://nfsen.sourceforge.net/
http://www.cisco.com
doc.ubuntu-fr.org/tutoriel/apache2
http://oss.oetiker.ch/rrdtool/
http://www.marwan.ma/
http://www.cnr.ac.ma/