Ce document me sert de mémo pour lister les commandes permettant d’analyser un réseau informatique.<h2>But de ce document</h2>
<p class="spip">Ce document me sert de mémo pour lister les commandes permettant d’analyser un réseau informatique.</p>

<h2>Configuration réseau sous Debian</h2>
<p class="spip">Le nom de l’ordinateur est enregistré dans « <strong class="spip">/etc/hostname</strong> »</p>

<p class="spip">La commande « <strong class="spip"> hostname </strong> » retourne le nom de l’ordinateur</p>

<p class="spip">Le fichier « <strong class="spip">/etc/resolv.conf</strong> » contient le domaine et les serveurs DNS</p>

<p class="spip">La commande « <strong class="spip"> ifconfig </strong> » donne la configuration du réseau et l’adresse IP en particulier</p>

<p class="spip">La commande « <strong class="spip"> ifconfig </strong> » permet également de configurer le réseau temporairement</p>

<p class="spip">Le fichier « <strong class="spip">/etc/network/interfaces</strong> » contient la configuration réseau sous Debian</p>

<p class="spip">Le fichier « <strong class="spip">/etc/services</strong> » contient la liste des ports standards</p>

<h2>Quelques commandes de base</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Commande</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>arp</td><td>Permet de consulter ou modifier la table arp de la machine (correspondance entre adresse IP et adresse MAC)</td></tr>
<tr class="row_odd"><td>dsniff</td><td>Permet 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. </td></tr>
<tr class="row_even"><td>ping</td><td>Permet de vérifier que le réseau fonctionne. L’option « -s » de la commande « <strong class="spip"> ping </strong> » permet d’indiquer la taille des paquets pour charger le réseau.</td></tr>
<tr class="row_odd"><td>ngrep</td><td>Recherche des motifs dans des trames réseaux. Intéressant pour retrouver des mots de passe :<div style='text-align: left;' class='spip_code' dir='ltr'><code><br />
ngrep 'USER|PASS'<br />
ngrep -d eth0 'USER|PASS'<br />
</code></div><br />
</td></tr>
<tr class="row_even"><td>telnet</td><td>Permet d’effectuer des diagnostics sur des services réseaux.</td></tr>
<tr class="row_odd"><td>route</td><td>Permet de consulter ou modifier la table de routage.</td></tr>
<tr class="row_even"><td>traceroute</td><td>Permet de voir par quelle route les paquets passent pour arriver à une destination.</td></tr>
<tr class="row_odd"><td>whois</td><td>Permet d’obtenir des informations sur un nom ou sur une adresse IP (ex :  whois www.google.fr)</td></tr>
<tr class="row_even"><td>nslookup</td><td>Permet également d’obtenir des informations sur un nom ou une adresse IP.</td></tr>
<tr class="row_odd"><td>dig</td><td>Remplace la commande « <strong class="spip"> nslookup </strong> » qui n’est plus maintenue</td></tr>
<tr class="row_even"><td>host</td><td>Permet de retrouver l’adresse IP à partir d’un nom</td></tr>
</tbody>
</table>
<h2>Tableau récapitulatif des commandes permettant d’analyser le réseau</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Programmes</strong></th><th scope='col'><strong class="spip">Utilisation</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>cheops</td><td>Construire le plan du réseau</td></tr>
<tr class="row_odd"><td>etherape</td><td>Visualise en temps réel l’utilisation du réseau + statistiques rapides</td></tr>
<tr class="row_even"><td>wireshark (anciennement ethereal) </td><td>Logiciel libre d’analyse de protocoles, ou « packet sniffer ». Analyse de trames en live ou en différé.</td></tr>
<tr class="row_odd"><td>fuser</td><td>Permet d’obtenir la liste des processus ouverts (ex : <strong class="spip">fuser -auv -n tcp 80</strong>)</td></tr>
<tr class="row_even"><td>iftop</td><td>Analyse de la charge réseau par adresse IP et par port sur une interface donnée :# iftop -BP -i eth0</td></tr>
<tr class="row_odd"><td>iptraf</td><td>Permet 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 : <a href="http://cebu.mozcom.com/riker/iptraf/doc.html" class="spip_out">http://cebu.mozcom.com/riker/iptraf/doc.html</a></td></tr>
<tr class="row_even"><td>lsof</td><td>Permet de connaître les fichiers ouverts par les processus. Elle permet également de connaître les processus liés à un port (ex : <strong class="spip">lsof -i tcp:80</strong>)</td></tr>
<tr class="row_odd"><td>nessus</td><td>Pour rechercher les failles d’une ou plusieurs machines</td></tr>
<tr class="row_even"><td>netcat</td><td>Pour tout ce qui touche aux clients/serveurs et ports </td></tr>
<tr class="row_odd"><td>netperf</td><td>Pour le calcul de vitesse sur le réseau (ex : pour comparer avec ou sans un fireWall)</td></tr>
<tr class="row_even"><td>netpipe</td><td>Pour calcul de vitesse suivant la taille des paquets envoyés ( ex d’utilisation : comparer avec ou sans un firewall)</td></tr>
<tr class="row_odd"><td>netstat</td><td>Permet d’avoir des statistiques sur les paquets envoyés ou reçus et de connaître les ports ouverts (ex : netstat -nutpl AdresseIP).</td></tr>
<tr class="row_even"><td>ngrep</td><td>Recherche d’informations précises (surtout chaîne de caractères) dans des trames</td></tr>
<tr class="row_odd"><td>nmap</td><td>Permet d’analyser les ports ouverts sur un poste</td></tr>
<tr class="row_even"><td>nmapfe</td><td>Interface graphique à « <strong class="spip"> nmap </strong> »</td></tr>
<tr class="row_odd"><td>nstreams</td><td>Permet d’analyser des flux réseaux</td></tr>
<tr class="row_even"><td>ntop</td><td>Outil de statistiques complet sur le trafic réseau (en temps réel)</td></tr>
<tr class="row_odd"><td>nikto</td><td>Permet de scanner un ordinateur pour trouver ses vulnérabilités</td></tr>
<tr class="row_even"><td>rpcinfo</td><td>Permet d’obtenir des infos sur les services RPC utilisés </td></tr>
<tr class="row_odd"><td>tcpdump</td><td>Analyse les paquets envoyés ou reçus en live</td></tr>
<tr class="row_even"><td>tcpstat</td><td>Statistiques rapides sur le trafic (en temps réel)</td></tr>
<tr class="row_odd"><td>wireshark (ex ethereal)</td><td>Analyse de trame (pas en live) </td></tr>
<tr class="row_even"><td>mii-tool et ethtool </td><td>Outils pour connaître les capacités des cartes réseaux et savoir si le câble est branché.</td></tr>
</tbody>
</table>
<h2>Installation et utilisation de ntop</h2>
<h3>Présentation</h3>
<p class="spip">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).</p>

<p class="spip">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.
<br /></p>
<li> <a href="http://doc.ubuntu-fr.org/ntop" class="spip_out">http://doc.ubuntu-fr.org/ntop</a>
<h3>Installation</h3>
<p class="spip">Installation :</p>

<p class="spip"><code class='spip_code' dir='ltr'># aptitude install ntop</code></p>

<p class="spip">Changer l’interface en écoute :</p>

<p class="spip"><code class='spip_code' dir='ltr'># dpkg-reconfigure ntop </code></p>

<p class="spip">Définir le mot de passe de l’administrateur « admin » de NTop :</p>

<p class="spip"><code class='spip_code' dir='ltr'># ntop -A admin </code></p>

<p class="spip"><strong class="spip">Remarque</strong> : Ce mot de passe est demandé pour configurer NTop via l’interface Web</p>

<p class="spip">Démarrer ou redémarrer NTop :</p>

<p class="spip"><code class='spip_code' dir='ltr'># /etc/init.d/ntop restart </code></p>

<p class="spip">Voire les résultats :
<br /></p>
<li> <a href="http://localhost:3000/" class="spip_out">http://localhost:3000/</a>
<h3>Affichage de la carte du trafique</h3>
<p class="spip">La carte du trafique est consultable avec ce menu :
<br /></p>
<li> IP / Local / Network Traffic Map
<p class="spip">Si le programme renvoi ce message :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>Missing 'dot' tool (expected /usr/local/bin/dot). Please set its path (key<br />
 dot.path) here.</code></div>
<p class="spip">Il faut installer ce paquet qui contient le programme « dot » :</p>

<p class="spip"><code class='spip_code' dir='ltr'># aptitude install graphviz</code></p>

<p class="spip">Et ajouter la clé « <strong class="spip">dot.path = /usr/bin/dot</strong> » dans « <strong class="spip">Admin / Configure Préférences</strong> »</p>

<h3>Les informations importantes par menu</h3>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Menu</strong></th><th scope='col'><strong class="spip">Informations</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>Summary / Traffic</td><td>Ré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</td></tr>
<tr class="row_odd"><td>Summary / Hosts</td><td>Bande passante utilisée par adresse IP -> Très intéressant</td></tr>
<tr class="row_even"><td>Summary / Network Load</td><td>Graphiques 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</td></tr>
<tr class="row_odd"><td>All protocols / Traffic</td><td>Vue instantanée de la bande passante utilisée par host et par protocole</td></tr>
<tr class="row_even"><td>All protocols / Throughput :</td><td>Vue instantanée de la bande passante utilisée par host -> Intéressant</td></tr>
<tr class="row_odd"><td>All protocols / Activity</td><td>Trafic par ordinateur et par heure -> Pas bien compris</td></tr>
<tr class="row_even"><td>IP / Summary / Traffic</td><td>Trafic par ordinateur et par port  -> Très intéressant</td></tr>
<tr class="row_odd"><td>IP / Summary / Internet Domain</td><td>Trafic par domaine</td></tr>
<tr class="row_even"><td>IP / Local / Port used</td><td>Ports utilisés par les clients et par les serveurs</td></tr>
<tr class="row_odd"><td>IP / Local / Network Trafic Map</td><td>Représentation graphique du réseau et des échanges entres les postes</td></tr>
<tr class="row_even"><td>IP / Local / Local Matrix</td><td>Matrice du trafic entre les ordinateurs   -> Très intéressant</td></tr>
</tbody>
</table>
<h2>Exemples d’utilisation de tcpdump</h2>
<p class="spip">Le programme tcpdump permet d’analyser les paquets envoyés ou reçus sur une interface réseau.</p>

<p class="spip">Affiche les paquets qui passent sur la première interface :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># tcpdump<br />
Donne la liste des interfaces<br />
# tcpdump -D<br />
1.eth0<br />
2.tun0<br />
.any (Pseudo-device that captures on all interfaces)<br />
4.lo</code></div>
<p class="spip">Paquets qui passent par toutes les interfaces :</p>

<p class="spip"><code class='spip_code' dir='ltr'># tcpdump -i any</code></p>

<p class="spip">Paquets qui passent par l’interface tun0 :</p>

<p class="spip"><code class='spip_code' dir='ltr'># tcpdump -i tun0</code></p>

<p class="spip">Affichage détaillé :</p>

<p class="spip"><code class='spip_code' dir='ltr'># tcpdump -v</code></p>

<p class="spip">Affichage encore plus détaillé :</p>

<p class="spip"><code class='spip_code' dir='ltr'># tcpdump -vv</code></p>

<p class="spip">Affiche le contenu des paquets (Permet de voir le contenu d’une page HTML)</p>

<p class="spip"><code class='spip_code' dir='ltr'># tcpdump -A</code></p>

<p class="spip">Paquets en provenance de l’adresse 10.5.3.12 :</p>

<p class="spip"><code class='spip_code' dir='ltr'>tcpdump src host 10.5.3.12</code></p>

<p class="spip">Paquets en provenance du réseau 10.5.3.x :</p>

<p class="spip"><code class='spip_code' dir='ltr'>tcpdump src net 10.5.3.0 mask 255.255.255.0</code></p>

<p class="spip">ou plus simplement :</p>

<p class="spip"><code class='spip_code' dir='ltr'>tcpdump src net 10.5.3</code></p>

<p class="spip">Il est possible d’utiliser grep pour filtrer l’affichage</p>

<p class="spip"><code class='spip_code' dir='ltr'>tcpdump | grep 10.5.3</code></p>

<p class="spip">Cette commande permet d’analyser uniquement les paquets en provenance de l’adresse 192.168.0.1</p>

<p class="spip"><code class='spip_code' dir='ltr'># tcpdump src 192.168.0.1</code></p>

<p class="spip">Analyser uniquement le port 80 de la source 192.168.0.1</p>

<p class="spip"><code class='spip_code' dir='ltr'># tcpdump src 192.168.0.1 and port 80</code></p>

<p class="spip">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 :</p>

<p class="spip"><code class='spip_code' dir='ltr'># tcpdump -x -X -s 0 src host 192.168.0.1 and dst host 212.208.225.1 and port 53 and udp</code></p>

<p class="spip">La commande suivante permet d’écouter sur l’interface tun0 les paquets en provenance de 10.8.0.1 de type icmp (ping)</p>

<p class="spip"><code class='spip_code' dir='ltr'>tcpdump -i tun0 src 10.8.0.1 and icmp</code></p>

<p class="spip">Tester le port source :</p>

<p class="spip"><code class='spip_code' dir='ltr'>tcp[0:2] < 1024</code></p>

<p class="spip">Tester le port de destination :</p>

<p class="spip"><code class='spip_code' dir='ltr'>udp[2:2] > 1023</code></p>

<p class="spip">Tester le bit SYN :</p>

<p class="spip"><code class='spip_code' dir='ltr'>tcp[13]&2!=0</code></p>

<p class="spip">Tester le bit ACK :</p>

<p class="spip"><code class='spip_code' dir='ltr'>tcp[13]&16 !=0 </code></p>

<h2>Exemples d’utilisation de netstat</h2>
<p class="spip">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 :</p>

<p class="spip"><code class='spip_code' dir='ltr'>netstat -an | egrep ".*:80" | tr -s " " | cut -f6 -d " " | sort | uniq -c </code></p>

<p class="spip">On peut également afficher toutes les connexions tcp et sur quelles adresses distantes :</p>

<p class="spip"><code class='spip_code' dir='ltr'>netstat -tn </code></p>

<p class="spip">Tous les ports en attente de connexion tcp (et donc ouvert) avec le programme associé :</p>

<p class="spip"><code class='spip_code' dir='ltr'>netstat -lptn </code></p>

<p class="spip">Ou encore, obtenir des statistiques :</p>

<p class="spip"><code class='spip_code' dir='ltr'>netstat -s</code></p>

<h2>Retrouver les adresses Mac et le hostname des machines</h2>
<p class="spip">Sur le serveur DHCP, ce fichier permet de retrouver les adresses mac et les hostname des machines du réseau</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>less /var/lib/dhcp3/dhcpd.leases <br />
lease 192.0.0.210 {<br />
  starts 4 2008/01/03 15:50:15;<br />
  ends 4 2008/01/03 16:50:15;<br />
  tstp 4 2008/01/03 16:50:15;<br />
  binding state free;<br />
  hardware ethernet 00:0d:60:fd:ed:81;<br />
  uid "\001\000\015`\375\355\201";<br />
}</code></div>
<h2>Liens intéressants</h2>
<p class="spip">Un autre article de Gnunux : 
<br /></p>
<li> <a href="http://www.coagul.org/article.php3?id_article=93" class="spip_out">http://www.coagul.org/article.php3 ?id_article=93</a>
<p class="spip">Article recensant les principaux outils :
<br /></p>
<li> <a href="http://www.cri74.org/docs/sniffer_linux/Linux_sniffer.html" class="spip_out">http://www.cri74.org/docs/sniffer_linux/Linux_sniffer.html</a>
<h2>Historique des modifications</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Version</strong></th><th scope='col'><strong class="spip">Date</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>0.1</td><td>02/09/07</td><td>Création par Tony GALMICHE</td></tr>
<tr class="row_odd"><td>0.5</td><td>31/05/08</td><td>Mise en ligne</td></tr>
<tr class="row_even"><td>0.6</td><td>22/06/08</td><td>Mise à jour suite aux remarques de Gnunux et Claude</td></tr>
</tbody>
</table>