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.
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.
Posted: mars 16th, 2008 under Réseau, Ubuntu.
Comments: 5
Tweet
Comments
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.
Comment from bkc
Time: 11 octobre 2008, 23 h 41 min
merci pour se tutoriel