Cette page regroupe divers outils utiles
pour faire des analyses ou des tests réseaux.
Vous trouverez :
- Un outil de traitement des fichiers .cap très volumineux
(trop volumineux pour être travaillés avec Wireshark) ;
- Un outil de test de bande passante/gigue/délai de
transmission/d'intégrité/fiabilité/ordonnancement ;
- Un outil de génération de fichier d'une taille
donnée composés de caractères aléatoires.
Sommaire
:
- Dernières
infos
- Les
étapes du projet :
- Comment
se
procurer ce programme ? :
- Installation et
configuration :
- Utilisation
- Manuel d'utilisation
- Sous
quelle licence se trouve ce programme ? Quel est son coût ? :
- 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 :
- le traitement de fichiers de capture très volumineux (>
1Go) le fait planter (sous MS Windows) ou atteint les limites en RAM
avant de figer
la machines (sous GNU/Linux).
- il n'est pas multi-threadé ce qui fait que le traitement
d'un fichier de capture est long (CPU chargé) mais nous ne
pouvons pas réduire ce temps en travaillant avec des CPU
multi-coeurs ou des machines multi-processeurs.
- le stockage d'une capture sous forme d'un fichier plat
entraîne un temps de traitement plus long que si l'on travaillait
sur une base de données.
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 :
