04.07.2013 Views

TP Analyse des flux - Gt-metro

TP Analyse des flux - Gt-metro

TP Analyse des flux - Gt-metro

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>TP</strong> <strong>Analyse</strong> <strong>des</strong> <strong>flux</strong><br />

<strong>TP</strong> <strong>Analyse</strong> <strong>des</strong> <strong>flux</strong><br />

Contexte :<br />

Simulation d’un routeur exportant <strong>des</strong> enregistrements de <strong>flux</strong> (trames netflow version 5) vers<br />

plusieurs collecteurs :<br />

L’analyse <strong>des</strong> <strong>flux</strong> est réalisée avec le logiciel nfdump qui fonctionne en ligne de commande.<br />

Si le temps le permet, nfsen (outil graphique se basant sur nfdump) sera abordé.<br />

Dispositif :<br />

Le PC Intervenant utilise les flowtools afin de rejouer 3Go de données netflow<br />

(enregistrements de <strong>flux</strong> anonymisés) vers les 10 PCs stagiaires. Après l’installation de<br />

nfdump, les PCs stagiaires collectent les trames netflow en écoutant sur le port 33333, les<br />

stockent dans le répertoire /tmp/netflow puis effectuent <strong>des</strong> mesures et <strong>des</strong> statistiques sur les<br />

<strong>flux</strong>.<br />

Nfdump :<br />

(Cf. Annexe et man pour les options de chacun <strong>des</strong> outils) - http://nfdump.sourceforge.net<br />

Nfdump est un ensemble d’outils en ligne de commande permettant la collecte, le stockage et<br />

le traitement <strong>des</strong> enregistrements de <strong>flux</strong>, compatibles avec netflow v5, v7, v9 et sflow :<br />

nfcapd - Capture <strong>des</strong> netflow :<br />

1


<strong>TP</strong> <strong>Analyse</strong> <strong>des</strong> <strong>flux</strong><br />

Collecte les données netflow envoyées par le(s) routeur(s) et les stocke sous forme de fichiers.<br />

Une rotation automatique sur les fichiers s’effectue (par défaut toutes les 5mn.). La capture<br />

<strong>des</strong> données sflow (non traitée dans ce <strong>TP</strong>) est réalisée avec sfcapd.<br />

nfdump – Traitement <strong>des</strong> enregistrements de <strong>flux</strong><br />

Récupère les enregistrements de <strong>flux</strong> stockés par nfcapd pour effectuer <strong>des</strong><br />

mesures/statistiques (top N par IP, ports…). La syntaxe d’utilisation est similaire à celle de<br />

tcpdump (« pcap like ») pour appliquer <strong>des</strong> filtres (dst net 10.0.0.1/24 and proto tcp or …) et<br />

restreindre les mesures.<br />

nfprofile – Création de profils de mesures<br />

A l’aide d’un filtrage spécifique, nfprofile crée un profil pour lequel nfdump récupère les<br />

enregistrements de <strong>flux</strong> correspondant et les stocke dans <strong>des</strong> fichiers dédiés à ce profil.<br />

nfreplay – Rejoue d’enregistrements de <strong>flux</strong><br />

Export <strong>des</strong> enregistrements de <strong>flux</strong> stockés par nfcapd vers d’autres collecteurs.<br />

Les enregistrements de <strong>flux</strong> collectés sont stockés, par défaut toutes les 5 mn, dans un<br />

nouveau fichier sous la forme : nfcapd.YYYYMMddhhmm. Par exemple, le fichier<br />

nfcapd.200709181140 contient les données collectées le 18 sept. 2007 de 11h40 à 11h45.<br />

Pour distinguer les enregistrements de <strong>flux</strong> provenant de routeurs différents, on les réparti<br />

dans <strong>des</strong> répertoires différents. Pour le <strong>TP</strong>, un seul routeur exporte <strong>des</strong> trames netflow qui sont<br />

stockées dans le répertoire /tmp/nfdump.<br />

La collecte est effectuée par nfcpad en écoute sur le port (UDP 33333 pour le <strong>TP</strong>) à<br />

<strong>des</strong>tination duquel le PC Intervenant exporte ses enregistrements de <strong>flux</strong> :<br />

nfcapd –w –D –l /tmp/nfdump –p 33333<br />

-D : mode Daemon<br />

-w : permet de faire une rotation <strong>des</strong> fichiers de manière arrondie. Pour une valeur par défaut<br />

de l'intervalle de rotation qui est de 5mn, la rotation <strong>des</strong> fichiers s'alignera sur 0, 5,10...<br />

-l /tmp/nfdump : répertoire de stockage <strong>des</strong> données reçues sous forme de fichier nfcapd.*.<br />

-p en écoute sur le port 33333<br />

L’analyse <strong>des</strong> données netflow avec nfdump peut être faite sur un simple fichier (option –r)<br />

ou sur un ensemble de fichier (option –R) :<br />

nfdump –r /tmp/netflow/nfcapd.YYYYMMddhhmm<br />

nfdump –R /tmp/netflow/nfcapd.YYYYMMddhh00:nfcapd.YYYYMMddhh55<br />

Le résultat est soit affiché en texte ASCII soit stocké dans un autre fichier nfcapd.*. Dans ce<br />

cas, les fichiers résultant peuvent être retraités ultérieuement avec nfdump.<br />

Le format d’affichage avec l’option –o peut se faire sous plusieurs formes :<br />

-o raw : Affiche la totalité <strong>des</strong> informations contenues dans un enregistrement de <strong>flux</strong> pour<br />

chaque <strong>flux</strong> sous forme de colonnes<br />

-o line : format par défaut en ligne, il affiche un <strong>flux</strong> par ligne selon le format suivant :<br />

Date flow start/Duration/Proto/Src IP Addr:Port/Dst IP Addr:Port/Packets/Bytes/Flows<br />

-o long : format identique au line avec ajout d’informations comme TCP flags, ToS<br />

-o extended : format étendu ajoutant les informations pps (packet per second) bps (bits per<br />

second), bps (bytes per packet).<br />

2


<strong>TP</strong> <strong>Analyse</strong> <strong>des</strong> <strong>flux</strong><br />

-o fmt : format customisé, sélection <strong>des</strong> informations à afficher. Par exemple, le format<br />

long s’execute par -o “fmt:%ts %td %pr %sap -> %dap %pkt %byt %fl" (Cf.<br />

« man nfdump »).<br />

Pour simplifier le format d’affichage, on peut agréger les <strong>flux</strong> grâce à l’option –a qui<br />

réunie sur une même ligne les <strong>flux</strong> ayant les mêmes caractéristiques suivantes : protocole,<br />

adresse IP source et <strong>des</strong>tination, port source et <strong>des</strong>tination. Il est possible de n’agréger qu’en<br />

fonction de certaines caractéristiques avec l’option –A , par exemple n’agréger les<br />

<strong>flux</strong> qu’en fonction de l’adresse IP src et du port <strong>des</strong>tination s’exécute avec l’option –a -A<br />

srcip,dstport.<br />

En fonction <strong>des</strong> besoins (<strong>Analyse</strong> d’incident, détection de scans, pistage d’une machine,<br />

métrologie par port/srcip.../tos), nfdump filtre les <strong>flux</strong> affichés à l’aide d’une syntaxe (Cf.<br />

Annexe) identique à celle utilisée avec tcpdump (pcap). Le filtre est à positionner à la fin de la<br />

ligne de commande entre ‘..’. Par exemple, si on ne souhaite afficher que le trafic http à<br />

<strong>des</strong>tination du serveur 10.0.2.3 sur une période d’1/2h :<br />

nfdump –R /tmp/netflow/nfcapd.Y…hh00:nfcapd.Y…hh30 ‘dst ip 10.0.2.3<br />

and dst port 80’.<br />

Statistiques Top N : L’option -s type[/orderby] permet de faire <strong>des</strong> top N sur les<br />

enregistrements de <strong>flux</strong> (où N est configurable avec l’option –n num, -n 0 affiche tous les<br />

enregistrements) en fonction d’une caractéristique (type : record, ip, proto, dstip, srcip,<br />

srcport…) et de manière ordonnée (orderby : décroissant par nombre de <strong>flux</strong>, nombre<br />

d’octets, de paquets…).<br />

Figure 1: Schéma général de fonctionnement de nfdump<br />

Excercices :<br />

Le choix <strong>des</strong> fichiers à analyser est libre, c’est la durée sur laquelle ils sont à analyser qui est<br />

fixe. Il n’y a donc pas de résultats fixés, il s’agit de trouver les bonnes comman<strong>des</strong> pour les<br />

recherches demandées.<br />

- Télécharger nfdump depuis le serveur F<strong>TP</strong> local et l’installer dans /tmp :<br />

tar –zxvf nfdump-1.5.5.tar.gz<br />

./configure<br />

3


make<br />

make install<br />

- Créer le répertoire /tmp/nfdump<br />

<strong>TP</strong> <strong>Analyse</strong> <strong>des</strong> <strong>flux</strong><br />

- Commencer la collecte en lançant nfcapd en mode daemon, en écoute sur le port<br />

33333. Stocker les enregistrements de <strong>flux</strong> dans /tmp/netflow avec une rotation de<br />

5mn.<br />

nfcapd –w –D –l /tmp/netflow –p 33333<br />

- Pour un fichier d’enregistrement de <strong>flux</strong> de 5mn : listing…<br />

o Afficher les statistiques par protocole.<br />

nfdump -r nfcapd.* –s proto/bytes nfcapd.**<br />

o Afficher les 30 premiers <strong>flux</strong> dans le temps (option –c) au format d’affichage<br />

long<br />

nfdump -r nfcapd.* -c 20 –o long<br />

o Afficher les <strong>flux</strong> de manière agrégée et repérer le couple srcip, dstip<br />

comportant le plus de <strong>flux</strong><br />

nfdump -r nfcapd.* -a<br />

o Afficher les <strong>flux</strong> de manière agrégée par protocole, comparer aux résultats du<br />

1 er point.<br />

nfdump --r nfcapd.* -a –A proto<br />

- Sur une période de 10mn : filtres…recherche<br />

o Afficher les <strong>flux</strong> à <strong>des</strong>tination du port tcp 80 puis mesurer la quantité de trafic<br />

correspondante en utilisant un filtre et une agrégation sur le protocole<br />

nfdump -R nfcapd.*:nfcapd.*** -a –A proto ‘dst port 80’<br />

o Trouver l’adresse IP <strong>des</strong> serveurs DNS, Web et N<strong>TP</strong> grâce aux options<br />

d’agrégation et de filtres<br />

nfdump -R nfcapd.*:nfcapd.*** -a –A dstip,dstport ‘dst port<br />

80’<br />

nfdump -R nfcapd.*:nfcapd.*** -a –A dstip,dstport ‘dst port<br />

53’<br />

nfdump -R nfcapd.*:nfcapd.*** -a –A dstip,dstport ‘dst port<br />

123’<br />

- Sur une période de 15mn : statistiques top N…<br />

o Afficher le Top 20 par nombre d’octets <strong>des</strong> <strong>flux</strong> udp<br />

nfdump -R nfcapd.*:nfcapd.*** -n 20 –s record/bytes ‘proto<br />

UDP’<br />

o Afficher le Top 10 par nombre de <strong>flux</strong> <strong>des</strong> AS <strong>des</strong>tination<br />

nfdump -R nfcapd.*:nfcapd.*** -n 10 –s dstas/flows<br />

o Afficher le Top 20 <strong>des</strong> services par nombre de <strong>flux</strong>, en quelle position arrive<br />

DNS, Web, N<strong>TP</strong> et SM<strong>TP</strong>. Faire la même chose par quantité de trafic, que<br />

constate-t’on quant à la taille moyenne d’un <strong>flux</strong> pour ces 4 services.<br />

nfdump -R nfcapd.*:nfcapd.*** -n 20 –s port/flows<br />

nfdump -R nfcapd.*:nfcapd.*** -n 20 –s port/bytes<br />

Ces 4 services sont parmis ceux qui sont les plus utilisés mais le rapport entre le nombre de<br />

<strong>flux</strong> et la quantité de trafic en octet en fait de petits consommateurs de bande passante<br />

puisque la taille moyenne d’un <strong>flux</strong> pour ces 4 services est faible.<br />

4


<strong>TP</strong> <strong>Analyse</strong> <strong>des</strong> <strong>flux</strong><br />

o Afficher le Top 15 <strong>des</strong> adresses IP les plus consommatrices en débit. Donner la<br />

nature du trafic émit par la station la plus consommatrice.<br />

nfdump -R nfcapd.*:nfcapd.*** -n 20 -s ip/bps<br />

o Afficher le Top 3 <strong>des</strong> réseaux /24 échangeant le plus de trafic<br />

nfdump -R nfcapd.*:nfcapd.*** -n 3 -A srcip4/24,dstip4/24 -s<br />

record/bytes<br />

- Sur une période de 20mn : recherche de scans…métrologie<br />

o Mesurer la quantité de trafic dans la classe de service Best Effort (DSCP = 0,<br />

ToS = 0). Y’a-t-il du trafic Better than best Effort (DSCP 34, ToS = 136) et du<br />

trafic Premium IP (DSCP 46, ToS = 184).<br />

nfdump -R nfcapd.*:nfcapd.**** ‘tos 0’ –s ip/bytes<br />

nfdump -R nfcapd.*:nfcapd.**** ‘tos 184’ –s ip/bytes<br />

o Rechercher les scans (hauteur ou largeur) de port (trouver une combinaison<br />

entre les options permettant de caractériser du trafic pouvant être du scan de<br />

port).<br />

On peut par exemple reconnaître un scan si le <strong>flux</strong> :<br />

• n’est pas de l’icmp<br />

• n’excède pas 100 octets<br />

• comporte un nombre de bits par paquets < 100<br />

• n’excède pas 5 paquets<br />

• ne concerne pas les ports 80, 53, 110, 123<br />

En hauteur : Scan effectué par 1 machine vers n machines sur un port.<br />

En largeur : Scan effectué par 1 machine vers 1 machine sur plusieurs<br />

port.<br />

nfdump -R nfcapd.*:nfcapd.**** -a -A srcip,dstport -s<br />

record/packets 'not proto icmp and bytes < 100 and bpp < 100<br />

and packets < 5 and not port 80 and not port 53 and not port<br />

110 and not port 123'<br />

Le premier est : 2.7.29.210<br />

Faisons une recherche complémentaire <strong>des</strong>sus : pour cette source, afficher les <strong>flux</strong> agrégés<br />

sur l’adresse ip <strong>des</strong>tination et le port, si le nombre de <strong>des</strong>tination est très élevé et le port<br />

toujours le même ; c’est un scan en hauteur, si le nombre de <strong>des</strong>tination n’est pas élevé et les<br />

ports différents, c’est un scan en largeur.<br />

nfdump -R nfcapd.*:nfcapd.**** -a -A dstip,dstport 'src ip<br />

2.7.29.210'<br />

Annexes :<br />

• Quelques options de nfcapd :<br />

-p portnum<br />

Specifies the port number to listen. Default port is 9995<br />

-l base_directory<br />

Specifies the base directory to store the output files. Default is /var/tmp If a sub hierarchy is<br />

specified with -S the final directory is concatenated to base_directory/sub_hierarchy<br />

-t interval<br />

Specifies the time interval in seconds to rotate files. The default value is 300s ( 5min ).<br />

5


<strong>TP</strong> <strong>Analyse</strong> <strong>des</strong> <strong>flux</strong><br />

-w Align file rotation with next n minute ( specified by -t ) interval.<br />

Example: If interval is 5 min, sync at 0,5,10... wall clock minutes<br />

Default: no alignment.<br />

-D Daemon mode : fork to background and detach from terminal. Nfcapd terminates on<br />

signal TERM, INT and HUP.<br />

-h Print help text to stdout with all options and exit.<br />

• Syntaxe <strong>des</strong> filtres pour le traitement <strong>des</strong> enregistrements de <strong>flux</strong> avec nfdump :<br />

expr and expr, expr or expr, not expr, ( expr ).<br />

expr can be one of the following filter primitives:<br />

protocol version<br />

inet or ipv4 for IPv4 and inet6 or ipv6 for IPv6 flows only<br />

protocol<br />

TCP, UDP, ICMP, GRE, ESP, AH, RSVP or PROTO where num is the protocol<br />

number.<br />

IP address<br />

[SourceDestination] IP a.b.c.d or<br />

[SourceDestination] HOST a.b.c.d with a.b.c.d as any valid IP address. SourceDestination<br />

may be omitted.<br />

SourceDestination<br />

defines the IP address to be selected and can be SRC, DST or any combination of SRC<br />

and|or DST. Omitting SourceDestination is equivalent to SRC or DST.<br />

network<br />

[SourceDestination] NET a.b.c.d m.n.r.s<br />

[SourceDestination] NET a.b.c.d / num with a.b.c.d as network number, m.n.r.s as netmask<br />

or num as maskbits respectively. The network may be given as a.b, a.b.c, where a B or Cclass<br />

equivalent netmask is assumed.<br />

Port<br />

[SourceDestination] PORT [comp] num with num as a valid port number. If comp is<br />

omitted, '=' is assumed.<br />

Interface<br />

[inout] IF num with num as an interface number.<br />

inout<br />

defines the interface to be selected and can be IN or OUT.<br />

Flags<br />

flags tcpflags with tcpflags as a combination of:<br />

A ACK.<br />

S SYN.<br />

F FIN.<br />

R Reset.<br />

6


<strong>TP</strong> <strong>Analyse</strong> <strong>des</strong> <strong>flux</strong><br />

P Push.<br />

U Urgent.<br />

X All flags on.<br />

The ordering of the flags is not relevant. Flags not mentioned are treated as don't care. In<br />

order to get those flows with only the SYN flag set, use the syntax 'flags S and not flags<br />

AFRPU'.<br />

TOS Type of service: tos value with value 0..255.<br />

Packets<br />

packets [comp] num [scale] to specify the packet count in the netflow record.<br />

Bytes<br />

bytes [comp] num [scale] to specify the byte count in the netflow record.<br />

Packets per second: Calculated value.<br />

pps [comp] num [scale] to specify the pps of the flow.<br />

Duration: Calculated value<br />

duration [comp] num to specify the duration in milliseconds of the flow.<br />

Bits per second: Calculated value.<br />

bps [comp] num [scale] to specify the bps of the flow.<br />

Bytes per packet: Calculated value.<br />

bpp [comp] num [scale] to specify the bpp of the flow.<br />

AS [SourceDestination] AS num with num as a valid AS number.<br />

scale Scaling factor. Maybe k m g. Factor is 1024<br />

comp The following comparators are supported:<br />

=, ==, >,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!