Main menu:

Site search

Categories

mars 2008
L M M J V S D
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Archive

ping, traceroute et nmap

Lorsque vous devez tester un réseau, il y a plusieurs commandes que vous pouvez utiliser.

Ping

La plus simple des commandes mais sans doute aussi la plus utile pour tester si une connexion existe entre deux machines. ping vous dira si la connexion est établie pour autant que la machine que vous pingez soit configurée pour y répondre.

$ ping 192.168.8.1
PING 192.168.8.1 (192.168.8.1) 56(84) bytes of data.
64 bytes from 192.168.8.1: icmp_seq=1 ttl=64 time=0.733 ms
64 bytes from 192.168.8.1: icmp_seq=2 ttl=64 time=0.719 ms
...

Traceroute

Une deuxième possibilité est d’utiliser la commande traceroute qui vous donne le chemin parcouru pour arriver jusqu’à une machine ou adresse. Cela correspond à une liste de machine, routeurs par où on passe pour arriver à la machine demandée. Par exemple voici le résultat d’un traceroute sur www.ubuntu-fr.org:

$ traceroute www.ubuntu-fr.org
traceroute to www.ubuntu-fr.org (213.95.41.13), 30 hops max, 40 byte packets
1  192.168.8.1 (192.168.8.1)  1.755 ms  2.491 ms  3.158 ms
2  1.114-67-87.adsl-dyn.isp.belgacom.be (87.67.114.1)  10.724 ms  12.454 ms  14.002 ms
3  93.251-244-81.adsl-static.isp.belgacom.be (81.244.251.93)  17.766 ms  19.006 ms  20.737 ms
4  ge0-0.intlstr1.isp.belgacom.be (194.78.0.46)  23.415 ms ge1-0.intlstr1.isp.belgacom.be (194.78.0.146)  23.968 ms  25.596 ms
5  80.84.20.34 (80.84.20.34)  28.274 ms  29.891 ms  31.404 ms
6  80.84.18.26 (80.84.18.26)  38.934 ms  15.355 ms  15.928 ms
7  80.84.18.24 (80.84.18.24)  23.469 ms  24.521 ms  25.561 ms
8  gec1-rt1-ffm2.core.noris.net (80.81.192.88)  28.011 ms  29.210 ms  31.862 ms
9  vl604-rt3-nbg3.core.noris.net (213.95.0.197)  36.367 ms  39.095 ms  39.801 ms
10  vl31-rt1-nbg3.access.noris.net (62.128.25.137)  41.825 ms  43.582 ms  44.712 ms
11  lisa.ubuntu-eu.org (213.95.41.13)  46.736 ms  50.008 ms  51.416 ms

On part de mon PC pour arriver d’abord sur mon routeur (192.168.8.1). Ensuite on a un ensemble de machines appartenant à mon FAI, d’autres encore pour finalement arriver sur lisa qui est la machine hébergeant le serveur web de Ubuntu-fr.org.

Traceroute donne des renseignements intéressants dans ce sens que si la connexion est coupée, il nous indique où.

Nmap

Il y a une autre commande moins connue mais très intéressante, nmap. C’est un scanner de ports. il est capable d’utiliser plusieurs méthodes pour cela. Il vous dira quels sont les ports ouverts sur quelle machine et peut même vous dire le système d’exploitation utilisé. Mais tout d’abord, il faut l’installer parce que cet outil ne l’est pas par défaut dans Ubuntu:

$ sudo aptitude install nmap

Pour faire son scan des ports c’est à dire détecter les ports qui sont ouverts qur une machine, nmap utilise les caractéristiques des connexions TCP. TCP étant orienté connexion, un échange est entamé avec le serveur chaque fois qu’on désire se connecter sur ce serveur.

Connexion TCP

Pour débuter la connexion, le client envoie au serveur un paquet IP contenant le flag SYN. Le serveur lui répond en renvoyant un paquet IP et mettant à 1 les flags SYN et ACK de ce paquet. ACK signifie qu’il a compris la demande. Il indique toujours une confirmation. Le client ensuite envoie lui-aussi un ACK et l’échange de données peut commencer avec le serveur. Lorsque le client en a terminé et veut arrêter la connexion avec le serveur, il envoie un paquet au serveur contenant les flags FIN et ACK. Le serveur répond par un ACK disant qu’il a compris et envoie à son tour la demande de de fin de la connexion en envoyant au client un paquet contenant les flag FIN et ACK. Le client lui répond par un ACK et la connexion est terminée.

nmap se base sur cet échange pour proposer plusieurs type de scan:

  • scan complet avec établissement de la connexion
  • scan SYN, seul un paquet contenant le flag SYN est envoyé au serveurscan FIN, un paquet est envoyé au serveur. La norme spécifie qu’un port fermé doit répondre à ce paquet alors que les ports ouverts l’ignorent.
  • scan ACK, même principe que pour le scan FIN

La commande nmap accepte un certain nombre de switches dont les principaux sont les suivants:

  • -sP ping scan
  • -sL n’envoie rien, fait juste un reverse DNS sur l’adresse spécifiée
  • -sS SYN scan
  • -sT TCP connect scan. Etablit une connexion complète avec le serveur
  • -sA ACK scan
  • -sO protocol scan
  • -sU scan en UDP
  • -O détection du système d’exploitation
  • -Tx timing. La valeur x (de 1 à 5) détermine le temps de réponse accepté
  • -A détection du système d’exploitation de la version et traceroute
  • -p x spécifie le port

Il y a bien d’autres possibilités. Je vous renvoie à la man page de nmap pour une description de toutes les possibilités de nmap.

A titre d’exemple voici le résultat de la commande suivante appliquée à mon réseau chez oi (scan des adresses 192.168.8.1 à 192.168.8.20):

$ sudo nmap -A -T4 192.168.8.1-20

Starting Nmap 4.53 ( http://insecure.org ) at 2008-03-08 13:22 CET
SCRIPT ENGINE: rpcinfo.nse is not a file.
SCRIPT ENGINE: Aborting script scan.
Interesting ports on 192.168.8.1:
Not shown: 1712 filtered ports
PORT   STATE SERVICE VERSION
23/tcp open  telnet  Cisco or Edge-core switch telnetd
80/tcp open  http    Apache httpd 0.6.5
MAC Address: 00:xx:xx:xx:xx:xx (Aceex)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: broadband router
Running: Aceex embedded
OS details: Aceex BR41 broadband router
Network Distance: 1 hop
Service Info: Device: switch

Interesting ports on 192.168.8.2:
Not shown: 1712 filtered ports
PORT    STATE SERVICE      VERSION
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds Microsoft Windows XP microsoft-ds
MAC Address: 00:xx:xx:xx:xx:xx (Asustek Computer)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows XP
OS details: Microsoft Windows XP SP2
Network Distance: 1 hop
Service Info: OS: Windows

SCRIPT ENGINE: rpcinfo.nse is not a file.
SCRIPT ENGINE: Aborting script scan.
Interesting ports on 192.168.8.3:
Not shown: 1711 closed ports
PORT    STATE SERVICE     VERSION
139/tcp open  netbios-ssn Samba smbd 3.X (workgroup: HOME)
445/tcp open  netbios-ssn Samba smbd 3.X (workgroup: HOME)
631/tcp open  ipp         CUPS 1.2
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.22 - 2.6.23
Uptime: 0.125 days (since Sat Mar  8 10:22:31 2008)
Network Distance: 0 hops

SCRIPT ENGINE: rpcinfo.nse is not a file.
SCRIPT ENGINE: Aborting script scan.
Interesting ports on 192.168.8.5:
Not shown: 1711 filtered ports
PORT    STATE SERVICE     VERSION
135/tcp open  msrpc       Microsoft Windows RPC
139/tcp open  netbios-ssn
445/tcp open  netbios-ssn
MAC Address: 00:xx:xx:xx:xx:xx (Quanta Computer)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows Vista
OS details: Microsoft Windows Vista, Microsoft Windows Vista Home Basic
Uptime: 0.059 days (since Sat Mar  8 11:57:45 2008)
Network Distance: 1 hop
Service Info: OS: Windows

All 1714 scanned ports on 192.168.8.10 are closed
MAC Address: 00:xx:xx:xx:xx:xx (Apple)
Device type: phone|media device|general purpose|web proxy|specialized
Running: Apple embedded, Apple Mac OS X 10.2.X|10.3.X|10.4.X|10.5.X, Blue Coat SGOS 5.X, FreeBSD 4.X, VMWare ESX Server 3.0.X
Too many fingerprints match this host to give specific OS details
Network Distance: 1 hop
OS and Service detection performed. Please report any incorrect results at http://insecure.org/nmap/submit/ .
Nmap done: 20 IP addresses (5 hosts up) scanned in 60.653 seconds

Outre les ports ouverts pour le partage de fichiers et d’imprimantes, on voit sur le routeur qui a l’adresse 192.168.8.1 que les ports 23 telnet et 80 web sont ouverts. Ce sont les deux ports qui permettent la gestion du routeur.
La commande révèle aussi les MAC Address des PC et le système d’exploitation. Vous pouvez voir que mon réseau est constitué d’une machine sous Linux, d’une machine sous Windows XP, d’une autre sous Windows Vista et finalement d’une quatrième sous Mac OSX (Apple). Même le routeur est détecté correctement.

Comments

Comment from bkc
Time: 11 octobre 2008, 23 h 41 min

merci pour se tutoriel

Comment from BB
Time: 19 août 2010, 16 h 06 min

salut,
je voulais savoir comment limiter le nombre de paquets envoyés lors d’un test ping.
Merci.

Comment from BB
Time: 19 août 2010, 16 h 19 min

resalut,

J’ai trouvé une solution pour arrêter la transmission des paquets illimités, il suffit de taper Ctrl+c.

Comment from mouloud
Time: 20 novembre 2010, 11 h 09 min

ping -c4 adresseIP ==> envoie 4 paquets

Comment from cedric
Time: 21 juillet 2011, 22 h 40 min

Je connaissais pas nmap mais c’est assez utile. J’ai pu voir qu’une machine de mon réseau que je soupçonnais d’intrus correspond à ma neuf box xD
Sinon j’ai pas mal d’ordinateur connecté à ma neuf box. Quelqu’un sait comment je pourrait :
1) Voir qu’elle machine monopolise ma connexion internet quand elle est ralenti.
2) Bloquer le protocole UDP à certaines heures de la journée car j’ai un petit frère qui ne sait pas se contrôler sur son MMORPG.