Analyser et tester le réseau ...



Cette page regroupe divers outils utiles pour faire des analyses ou des tests réseaux.
Vous trouverez :
  1. Un outil de traitement des fichiers .cap très volumineux (trop volumineux pour être travaillés avec Wireshark) ;
  2. Un outil de test de bande passante/gigue/délai de transmission/d'intégrité/fiabilité/ordonnancement ;
  3. Un outil de génération de fichier d'une taille donnée composés de caractères aléatoires.

Sommaire :

  1. Dernières infos
  2. Les étapes du projet :
  3. Comment se procurer ce programme ? :
  4. Installation et configuration :
  5. Utilisation
  6. Manuel d'utilisation
  7. Sous quelle licence se trouve ce programme ? Quel est son coût ? :
  8. Me contacter :

Dernières infos

20/03/2010
    Ajout d'un article sur les questions à se poser avant d'utiliser Wireshark et dumpcap ou tout autre analyseur réseau.

18/02/2010
    Publication de la page web.

Traitement des fichiers .cap


Pour réaliser une analyse, Wireshark est un super outil. Malheureusement il a quelques limites :
L'analyse réseau requiert à la fois de la méthode, des connaissances techniques et les bons outils. Concernant les connaissances, vous trouverez des formations sur ce site, mais seule l'entrainement et l'expérience vous permettront d'être efficace. Concernant la méthode et les outils, cette page devrait vous aider.

Les étapes du projet :

         Étape 0 : Développement non commencé = Pas de nouveau besoin pour le moment. Projet arrêté (pas nécessairement définitivement).
         Étape 1 : Développement commencé = De nouveaux besoins exprimés. Début du développement d'une nouvelle version.
         Étape 2 : Développement en cours = Implémentation des fonctionnalités. Attente de nouveaux besoins et implémentation de ceux-ci.
         Étape 3 : Phase de tests = Toutes les fonctionnalités recherchées sont implémentées et plus de nouveaux besoins exprimés depuis plusieurs jours. Tests en environnement de production.
         Étape 4 : Publication = Logiciel stable et documenté, prêt à être mis en production.

Comment se procurer ce programme ? :

Disponible ici.

Installation et configuration :

Le programmes utilise les modules Date::Calc qw (Time_to_Date), DBI et Getopt::Long. Sous GNU/Linux Debian, cela demande d'installer libdate-calc-perl et libdbi-perl.

Créer une base de données appellée pcap selon le script suivant :

CREATE DATABASE pcap ;
use pcap ;

DROP TABLE STAT ;
CREATE TABLE STAT (
   ST_Type CHAR(50),
   ST_Timestamp BIGINT(10),
   ST_Debit BIGINT(10)
) ;

DROP TABLE STATHEURE ;
CREATE TABLE STATHEURE (
    SH_Type CHAR(50),
    SH_Timestamp BIGINT(10),
    SH_Debit BIGINT(10)
) ;

DROP TABLE CAPTURE ;
CREATE TABLE CAPTURE (
  CA_Timestamp BIGINT(10),
  CA_Incl_len BIGINT(10),
  CA_Orign_len BIGINT(10),
  CA_Eth_MacSrc CHAR(12),
  CA_Eth_MacDst CHAR(12),
  CA_Eth_Type CHAR(4),
  CA_LLC_Type CHAR(1),
  CA_LLC_DSAP CHAR(2),
  CA_LLC_SSAP CHAR(2),
  CA_LLC_CTRL CHAR(4),
  CA_LLC_DATA LONGTEXT,
  CA_ARP_TypeMat CHAR(4),
  CA_ARP_Proto CHAR(4),
  CA_ARP_TailleAdrPhy INT(4),
  CA_ARP_TailleAdrRx INT(4),
  CA_ARP_Operation CHAR(4),
  CA_ARP_AdrPhySrc CHAR(12),
  CA_ARP_AdrRxSrc CHAR(16),
  CA_ARP_AdrPhyDst CHAR(12),
  CA_ARP_AdrRxDst CHAR(16),
  CA_IP_Version CHAR,
  CA_IP_LongHeader INT(4),
  CA_IP_DSCP INT(6),
  CA_IP_ECN INT(2),
  CA_IP_LongPaq INT(4),
  CA_IP_IdPaq INT(5),
  CA_IP_Flag_OffFrg CHAR(16),
  CA_IP_TTL INT(3),
  CA_IP_Proto CHAR(2),
  CA_IP_ChecksumPaq CHAR(4),
  CA_IP_AdrIPSrc CHAR(16),
  CA_IP_AdrIPDst CHAR(16),
  CA_TCP_PortSrc INT(4),
  CA_TCP_PortDst INT(4),
  CA_TCP_Seq BIGINT(20),
  CA_TCP_Ack CHAR(8),
  CA_TCP_Offset CHAR,
  CA_TCP_Res_Contrl CHAR(3),
  CA_TCP_Win INT(7),
  CA_TCP_Checksum CHAR(4),
  CA_TCP_UrgPt CHAR(4),
  CA_TCP_Opt_pad CHAR(64),
  CA_UDP_PortSrc CHAR(4),
  CA_UDP_PortDst CHAR(4),
  CA_UDP_LongSeg CHAR(4),
  CA_UDP_Checksum CHAR(4),
  CA_ICMP_Type CHAR(2),
  CA_ICMP_CodeErr CHAR(2),
  CA_ICMP_Checksum CHAR(4),
  CA_ICMP_Donnees TEXT
) ;

Configurer les droits d'accès à la base de données. Reporter ces informations (login, mot de passe et type de base de données) dans le code source, au niveau des variables :
$LOGINBD  # Login pour se connecter à la base de données.
$MDPBD  # Mot de passe pour se connecter à la base de données.
$TYPEBD # Type de la base de données.

Donner les droits en exécution et le charger en console (cf paragraphe suivant).

Utilisation

Taper ./Sonde.pl -help  pour accéder à l'aide (cf. Manuel d'utilisation ci-dessous). Voici quelques exemples d'utilisation :

0) Supprimer tous les enregistrements de captures et les statistiques de la base de données :
./Sonde.pl -init

1) Intégrer la capture (fichier au format libpcap) dans une base de données :
./Sonde.pl -pcap -file /tmp/MaCapture.cap

La commande ci-dessous va rajouter les informations dans la base. Si toute ou partie du fichier a déjà été intégrée, nous aurons des doublons. Soit nous réinitialisons l'ensemble de la base de données en rajoutant l'option -init ou nous n'insérons que les données plus récentes que ce que contient la base de données en utilisant l'option -ajout.

2) Générer les statistiques (stockées dans la base de données pour certaines, écrites dans des fichiers pour d'autres) :
./Sonde.pl -stat

La commande ci-dessous va rajouter les informations dans la base en supprimant tous les enregistrements de statistiques qui s'y trouvaient. Pour seulement ajouter des statistiques (sur des trames plus récentes que celles sur lesquelles les statistiques ont déjà été faites), utiliser l'option -ajout.

3) Générer les graphiques basiques (sans arguments) pour un lien d'une bande-passante de 700Ko.
./Sonde.pl -graph -bp 700000

4) Générer les graphiques personnalisées (fichier /tmp/ReportingMonFichier.svg, abscisse de 60 pc, ordonnée de 20 pc, granularité d'affichage de 10 secondes sur 7200 secondes au total, pour une bande-passante maximale de 700Ko) :
./Sonde.pl -gpers -nom MonFichier.svg -abscisse 60 -ordo 20 -granu 10 -duree 7200 -bp 700000

Manuel d'utilisation

Le manuel ci-dessous est accessible par la commande : ./Sonde.pl -help
                             -= MANUEL D'UTILISATION =-                                 
-help : Affichage de cet aide.


==============================
=MODES ET OPTIONS POUR CHACUN=
-rec : (Non codé) Utilisation en tant que sonde uniquement (RECord traffic).
  -interface <Nom Interface> : Interface réseau sur laquelle la sonde se met en écoute (mode promiscuité).
  -file <Nom Fichier> : Chemin et nom du fichier dans lequel enregistrer la capture.

-surv : Surveillance du trafic pour détecter une coupure d'un flux. Entre 2 apparitions de flux, le trafic est enregistré dans un fichier.
  -interface <Nom Interface> : Interface réseau sur laquelle la sonde se met en écoute (mode promiscuité).
  -chaine <RegExp> : Chaîne de caractère identifiant le flux à surveiller.
  -file <Nom Fichier> : Chemin et nom des fichiers où est loggué le trafic lorsqu'il y a un problème. Le programme rajoute une extension pour distinguer les enregistrements s'il y a une série de problèmes.
  -freq <Nombre> : Délai maximum, en seconde, d'apparition de la chaîne de caractère. Si depuis la dernière apparition il s'est passé plus de temps que défini ici, alos le mode alarme est enclenché : le trafic depuis la dernière apparition est enregistré dans un fichier jusqu'à la prochaine réapparition.

-init : Suppression de tous les enregistrements des tables CAPTURE, STAT et STATHEURE.

-pcap : Réaliser le stockage des informations des trames (du fichier indiqué par -file) dans la base de données.
  -ajout : Seuls les paquets, stockés dans le fichier de capture, plus récents que le plus récent des paquets stockés dans la BD, sera insérer dans la base de données. Cela permet de rajouter seulement les paquets non traités d'un fichier, sans doublon ni perte de temps à faire ce qui a déjà été fait.
  -file <Nom Fichier> : Chemin et nom du fichier à traiter par -pcap.
  -v : Mode verbeux. Afficher dans la console les en-têtes des trames traitées.
  -vv : Mode très verbeux. Afficher dans la console les en-têtes et le contenu des trames traitées.

-stat : Générer les statistiques sur les paquets capturés et stockés dans la base de données. Stocket le résultat dans la base de données. On peut indiquer la granularité du calcul (impactant seulement les stats moyennées) :
  -ajout : Seules les statistiques non encore générées sur la période donnée sont calculées. Les autres sont gardées. Généralement utile après un "-ajout -cap".
  -stgranularite <Nombre> : 10 par défaut. Durée en secondes. Les stats qui sont moyennées seront calculées sur des intervalles allant de (t) à (t + granularité).

-graph : Générer les graphiques standards (sur les dernières minutes).
  -bp <Nombre> : Bande-passante du lien. Permet de dimensionner l'échelle de l'axe des ordonnées.

-gpers : Générer les graphiques personnalisés (infos concaténées, mais affichées sur plusieurs heures). Temps de génération plus long, utile seulement pour une vision globale. Il est nécessaire d'indiquer les options supplémentaires suivantes :
  -nom <Nom Fichier> : Nom du fichier avec extension. Le programme y rajoute automatiquement "Reporting".
  -duree <Nombre> : Durée à afficher. S'exprime en secondes.
  -bp <Nombre> : Bande-passante du lien. Permet de dimensionner l'échelle de l'axe des ordonnées.
  -abscisse <Nombre> : Taille de l'abscisse en pixels.
  -ordonnee <Nombre> : Taille de l'ordonnée en pixels.
  -granularite <Nombre> : Durée en secondes. Une valeur affichée représente le min/moy/max des valeurs prises entre (t) et (t + granularite).


=========
=OPTIONS=
-abscisse <Nombre> : Voir le mode -gpers.
-ajout : Voir les modes -pcap et -stat.
-bp <Nombre> : Voir les modes -graph et -gpers.
-chaine <RegExp> : Voir le mode -surv.
-duree <Nombre> : Voir le mode -gpers.
-file <Nom Fichier> : Voir les modes -rec, -surv et -pcap.
-freq <Nombre> : Voir le mode -surv.
-granularite <Nombre> : Voir le mode -gpers.
-interface <Nom Interface> : Voir les modes -rec et -surv.
-nom <Nom Fichier> : Voir le mode -gpers.
-ordonnee <Nombre> : Voir le mode -gpers.
-stgranularite <Nombre> : Voir le mode -gpers.
-v : Voir le mode -pcap.
-vv : Voir le mode -pcap.


=================
=!! Attention !!=
-init annule l'effet de -ajout
-cap (sans -ajout) ne fait pas de nettoyage de la BD. Exécuter 2 fois la commande sur le même fichier va créer des doubons ! Utiliser -init la deuxième fois si l'on veut retraiter tout le fichier mais en nettoyant la BD avant.
-stat (sans -ajout) nettoie la base de données. Il n'est donc pas utile de rajouter -init.



Tester la bande-passante, l'ordonnacement, le taux de pertes, ...

Les étapes du projet :

         Étape 0 : Développement non commencé = Pas de nouveau besoin pour le moment. Projet arrêté (pas nécessairement définitivement).
         Étape 1 : Développement commencé = De nouveaux besoins exprimés. Début du développement d'une nouvelle version. <==
         Étape 2 : Développement en cours = Implémentation des fonctionnalités. Attente de nouveaux besoins et implémentation de ceux-ci.
         Étape 3 : Phase de tests = Toutes les fonctionnalités recherchées sont implémentées et plus de nouveaux besoins exprimés depuis plusieurs jours. Tests en environnement de production.
         Étape 4 : Publication = Logiciel stable et documenté, prêt à être mis en production.

Comment se procurer ce programme ? :

!! À Venir !!

Installation et configuration :

XXXX

Utilisation

XXXX

Manuel d'utilisation

XXXX




Créer des fichiers de taille fixe contenant des caractères aléatoires

Cet outil permet de créer des fichiers d'une taille donnée. Sa particularité réside dans le fait qu'il permet de créer plusieurs fichiers d'un coup et surtout que ces fichiers contiennent des caractères aléatoires. J'ai utilisé ces fichiers pour tester des boîtiers de compression réseaux. Ces boîtiers avaient des caches ; il fallait donc des fichiers qui ne soient pas identiques (ni le nom ni le contenu) et dont le contenu devait beaucoup différer (pas d'en-tête commune contrairement à 2 fichiers MS Word dont on aurait changé le contenu seulement en passant par l'éditeur). Ces boîtiers faisaient également de la compression ; avoir un fichier rempli de "0 ou de x fois la chaîne "abcdefghij ..." auraient donné un cas idéal de compression loin de la réalité.
Ce logiciel rempli les fichiers avec des caractères alphanumériques + de ponctuation + des symboles. On pourrait avoir à peu près la même diversité avec un fichier chiffré.


Les étapes du projet :

         Étape 0 : Développement non commencé = Pas de nouveau besoin pour le moment. Projet arrêté (pas nécessairement définitivement).
         Étape 1 : Développement commencé = De nouveaux besoins exprimés. Début du développement d'une nouvelle version.
         Étape 2 : Développement en cours = Implémentation des fonctionnalités. Attente de nouveaux besoins et implémentation de ceux-ci.
         Étape 3 : Phase de tests = Toutes les fonctionnalités recherchées sont implémentées et plus de nouveaux besoins exprimés depuis plusieurs jours. Tests en environnement de production.
         Étape 4 : Publication = Logiciel stable et documenté, prêt à être mis en production.

Comment se procurer ce programme ? :

Disponible ici.

Installation et configuration :

XXXX

Utilisation

XXXX

Manuel d'utilisation

XXXX

Méthodologie d'analyse réseau

Voici un article qui indique comment utiliser wireshark pour effectuer une analyse réseau, et quelles questions se poser avant de se lancer.
Lire l'article.


Sous quelle licence se trouvent ces programmes ? Quel est leurs coûts ? :

  Ces logiciels sont gratuits, mais tout encouragement ou retour d'expérience est apprécié.
  Il est sous licence GPL version 3. Sauf contre rémunération convenue au préalable, je ne suis aucunement responsable de ce que vous pourriez en faire ou les problèmes que vous pourriez rencontrer suite à l'utilisation de ces logiciels.

Me contacter :

voir http://lehmann.free.fr, en bas de page