Association Générale des Utilisateurs de logiciels libres en Côte-d'Or

logo_coagul

Analyse réseau sous Linux

Rubrique : Réseaux
Le : dimanche 22 juin 2008
Par : Tony  
Visites : 11952
Tags : netstat, ntop, Réseau, tcpdump

But de ce document

Ce document me sert de mémo pour lister les commandes permettant d’analyser un réseau informatique.

Configuration réseau sous Debian

Le nom de l’ordinateur est enregistré dans « /etc/hostname »

La commande «  hostname  » retourne le nom de l’ordinateur

Le fichier « /etc/resolv.conf » contient le domaine et les serveurs DNS

La commande «  ifconfig  » donne la configuration du réseau et l’adresse IP en particulier

La commande «  ifconfig  » permet également de configurer le réseau temporairement

Le fichier « /etc/network/interfaces » contient la configuration réseau sous Debian

Le fichier « /etc/services » contient la liste des ports standards

Quelques commandes de base

CommandeCommentaire
arpPermet de consulter ou modifier la table arp de la machine (correspondance entre adresse IP et adresse MAC)
dsniffPermet d’écouter les mots de passe circulant sur un réseau. Ensuite, il suffit de lancer le programme et de lancer un programme de messagerie pour voir apparaître les mots de passe.
pingPermet de vérifier que le réseau fonctionne. L’option « -s » de la commande «  ping  » permet d’indiquer la taille des paquets pour charger le réseau.
ngrepRecherche des motifs dans des trames réseaux. Intéressant pour retrouver des mots de passe :

ngrep 'USER|PASS'
ngrep -d eth0 'USER|PASS'

telnetPermet d’effectuer des diagnostics sur des services réseaux.
routePermet de consulter ou modifier la table de routage.
traceroutePermet de voir par quelle route les paquets passent pour arriver à une destination.
whoisPermet d’obtenir des informations sur un nom ou sur une adresse IP (ex : whois www.google.fr)
nslookupPermet également d’obtenir des informations sur un nom ou une adresse IP.
digRemplace la commande «  nslookup  » qui n’est plus maintenue
hostPermet de retrouver l’adresse IP à partir d’un nom

Tableau récapitulatif des commandes permettant d’analyser le réseau

ProgrammesUtilisation
cheopsConstruire le plan du réseau
etherapeVisualise en temps réel l’utilisation du réseau + statistiques rapides
wireshark (anciennement ethereal) Logiciel libre d’analyse de protocoles, ou « packet sniffer ». Analyse de trames en live ou en différé.
fuserPermet d’obtenir la liste des processus ouverts (ex : fuser -auv -n tcp 80)
iftopAnalyse de la charge réseau par adresse IP et par port sur une interface donnée :# iftop -BP -i eth0
iptrafPermet d’analyser en temps réel le trafic réseau avec une interface texte. Fonctionne un peu comme la commande TOP pour les processusOutil simple et efficace. Son seul inconvénient est d’afficher le trafic par adresse MAC et non pas par non d’ordinateur ou par adresse IPDocumentation : http://cebu.mozcom.com/riker/iptraf/doc.html
lsofPermet de connaître les fichiers ouverts par les processus. Elle permet également de connaître les processus liés à un port (ex : lsof -i tcp:80)
nessusPour rechercher les failles d’une ou plusieurs machines
netcatPour tout ce qui touche aux clients/serveurs et ports
netperfPour le calcul de vitesse sur le réseau (ex : pour comparer avec ou sans un fireWall)
netpipePour calcul de vitesse suivant la taille des paquets envoyés ( ex d’utilisation : comparer avec ou sans un firewall)
netstatPermet d’avoir des statistiques sur les paquets envoyés ou reçus et de connaître les ports ouverts (ex : netstat -nutpl AdresseIP).
ngrepRecherche d’informations précises (surtout chaîne de caractères) dans des trames
nmapPermet d’analyser les ports ouverts sur un poste
nmapfeInterface graphique à «  nmap  »
nstreamsPermet d’analyser des flux réseaux
ntopOutil de statistiques complet sur le trafic réseau (en temps réel)
niktoPermet de scanner un ordinateur pour trouver ses vulnérabilités
rpcinfoPermet d’obtenir des infos sur les services RPC utilisés
tcpdumpAnalyse les paquets envoyés ou reçus en live
tcpstatStatistiques rapides sur le trafic (en temps réel)
wireshark (ex ethereal)Analyse de trame (pas en live)
mii-tool et ethtool Outils pour connaître les capacités des cartes réseaux et savoir si le câble est branché.

Installation et utilisation de ntop

Présentation

Ntop (Network TOP) est un outil de supervision réseau. C’est une application qui produit des informations sur le trafic d’un réseau en temps réel (comme pourrait le faire la commande top avec les processus).

Il capture et analyse les trames d’une interface donnée, et permet d’observer une majeure partie des caractéristiques du trafic (entrant et sortant) et accepte pour cela, notamment deux modes de fonctionnement : Une interface web et un mode interactif.
- http://doc.ubuntu-fr.org/ntop

Installation

Installation :

# aptitude install ntop

Changer l’interface en écoute :

# dpkg-reconfigure ntop

Définir le mot de passe de l’administrateur « admin » de NTop :

# ntop -A admin

Remarque : Ce mot de passe est demandé pour configurer NTop via l’interface Web

Démarrer ou redémarrer NTop :

# /etc/init.d/ntop restart

Voire les résultats :
- http://localhost:3000/

Affichage de la carte du trafique

La carte du trafique est consultable avec ce menu :
- IP / Local / Network Traffic Map

Si le programme renvoi ce message :

Missing 'dot' tool (expected /usr/local/bin/dot). Please set its path (key
dot.path) here.

Il faut installer ce paquet qui contient le programme « dot » :

# aptitude install graphviz

Et ajouter la clé « dot.path = /usr/bin/dot » dans « Admin / Configure Préférences »

Les informations importantes par menu

MenuInformations
Summary / TrafficRépartition de la taille des paquetsRépartition des protocoles (TCP, ICMP,..)Détail par service et par heure (X11, SSH, ..) -> Très intéressantTrafic par port
Summary / HostsBande passante utilisée par adresse IP -> Très intéressant
Summary / Network LoadGraphiques permettant de suivre minute par minute, heure par heure, jour par jour et semaine par semaine le trafic sur le réseau -> Très intéressant
All protocols / TrafficVue instantanée de la bande passante utilisée par host et par protocole
All protocols / Throughput :Vue instantanée de la bande passante utilisée par host -> Intéressant
All protocols / ActivityTrafic par ordinateur et par heure -> Pas bien compris
IP / Summary / TrafficTrafic par ordinateur et par port -> Très intéressant
IP / Summary / Internet DomainTrafic par domaine
IP / Local / Port usedPorts utilisés par les clients et par les serveurs
IP / Local / Network Trafic MapReprésentation graphique du réseau et des échanges entres les postes
IP / Local / Local MatrixMatrice du trafic entre les ordinateurs -> Très intéressant

Exemples d’utilisation de tcpdump

Le programme tcpdump permet d’analyser les paquets envoyés ou reçus sur une interface réseau.

Affiche les paquets qui passent sur la première interface :

# tcpdump
Donne la liste des interfaces
# tcpdump -D
1.eth0
2.tun0
.any (Pseudo-device that captures on all interfaces)
4.lo

Paquets qui passent par toutes les interfaces :

# tcpdump -i any

Paquets qui passent par l’interface tun0 :

# tcpdump -i tun0

Affichage détaillé :

# tcpdump -v

Affichage encore plus détaillé :

# tcpdump -vv

Affiche le contenu des paquets (Permet de voir le contenu d’une page HTML)

# tcpdump -A

Paquets en provenance de l’adresse 10.5.3.12 :

tcpdump src host 10.5.3.12

Paquets en provenance du réseau 10.5.3.x :

tcpdump src net 10.5.3.0 mask 255.255.255.0

ou plus simplement :

tcpdump src net 10.5.3

Il est possible d’utiliser grep pour filtrer l’affichage

tcpdump | grep 10.5.3

Cette commande permet d’analyser uniquement les paquets en provenance de l’adresse 192.168.0.1

# tcpdump src 192.168.0.1

Analyser uniquement le port 80 de la source 192.168.0.1

# tcpdump src 192.168.0.1 and port 80

La commande suivante avec un maximum de paramètres permet d’afficher les informations en clair pour éventuellement récupérer les mots de passe qui circulent en clair avec une messagerie :

# tcpdump -x -X -s 0 src host 192.168.0.1 and dst host 212.208.225.1 and port 53 and udp

La commande suivante permet d’écouter sur l’interface tun0 les paquets en provenance de 10.8.0.1 de type icmp (ping)

tcpdump -i tun0 src 10.8.0.1 and icmp

Tester le port source :

tcp[0:2] < 1024

Tester le port de destination :

udp[2:2] > 1023

Tester le bit SYN :

tcp[13]&2!=0

Tester le bit ACK :

tcp[13]&16 !=0

Exemples d’utilisation de netstat

La commande netstat a des fonctionnalités bien pratiques. Elle permet par exemple de connaître le nombre exact de connexions sur un port donné. Ici, on veut afficher le nombre de connexions sur le port 80 :

netstat -an | egrep ".*:80" | tr -s " " | cut -f6 -d " " | sort | uniq -c

On peut également afficher toutes les connexions tcp et sur quelles adresses distantes :

netstat -tn

Tous les ports en attente de connexion tcp (et donc ouvert) avec le programme associé :

netstat -lptn

Ou encore, obtenir des statistiques :

netstat -s

Retrouver les adresses Mac et le hostname des machines

Sur le serveur DHCP, ce fichier permet de retrouver les adresses mac et les hostname des machines du réseau

less /var/lib/dhcp3/dhcpd.leases
lease 192.0.0.210 {
 starts 4 2008/01/03 15:50:15;
 ends 4 2008/01/03 16:50:15;
 tstp 4 2008/01/03 16:50:15;
 binding state free;
 hardware ethernet 00:0d:60:fd:ed:81;
 uid "\001\000\015`\375\355\201";
}

Liens intéressants

Un autre article de Gnunux :
- http://www.coagul.org/article.php3 ?id_article=93

Article recensant les principaux outils :
- http://www.cri74.org/docs/sniffer_linux/Linux_sniffer.html

Historique des modifications

VersionDateCommentaire
0.102/09/07Création par Tony GALMICHE
0.531/05/08Mise en ligne
0.622/06/08Mise à jour suite aux remarques de Gnunux et Claude
Version imprimable de l'article

Forum


Site réalisé sous Spip. Merci à NFrance pour son hébergement gracieusement offert. Tous les articles de ce site sont sous licence Creative Commons by-nc-sa (CC).