5.8. Vérification de l'identité des ports en attente de requêtes

Une fois les services configurés sur le réseau, il est important de connaître les ports qui sont en attente de requêtes sur les interfaces réseau du système. Tout port ouvert peut faire l'objet d'une intrusion.

Il existe deux approches de base pour établir la liste des ports en attente de requêtes sur le réseau. L'approche la moins fiable consiste à interroger la pile réseau en tapant des commandes telles que netstat -an ou lsof -i. Cette méthode est moins fiable dans la mesure où ces programmes ne connectent pas l'ordinateur au réseau, mais vérifient seulement ce qui est exécuté sur le système. Pour cette raison, ces applications sont des cibles fréquentes de remplacement par des agresseurs. De cette manière, des craqueurs tentent de dissimuler leurs traces en ouvrant des ports réseau non-autorisés.

Une manière plus sûre de vérifier l'identité des ports en attente de requêtes sur le réseau consiste à utiliser un scanneur de ports tel que nmap.

La commande suivante exécutée à partir de la console détermine les ports en attente de connexions TCP depuis le réseau.

nmap -sT -O localhost

La sortie de cette commande ressemble à l'extrait suivant :

Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1596 ports scanned but not shown below are in state: closed)
Port       State       Service
22/tcp     open        ssh
111/tcp    open        sunrpc
515/tcp    open        printer
834/tcp    open        unknown
6000/tcp   open        X11
Remote OS guesses: Linux Kernel 2.4.0 or Gentoo 1.2 Linux 2.4.19 rc1-rc7)

Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds

Cette sortie montre que le système exécute portmap en raison de la présence du service sunrpc. Toutefois, un service mystère existe également sur le port 834. Afin de vérifier si ce port est associé à la liste officielle des services connus, tapez :

cat /etc/services | grep 834

Cette commande ne renvoie aucune sortie. Ce qui signifie que, bien qu'étant dans la plage réservée (c'est-à-dire de 0 à 1023) et nécessitant un accès super-utilisateur pour son ouverture, il n'est pas associé à un service connu.

Vous pouvez ensuite rechercher des informations sur les ports à l'aide de netstat ou lsof. Pour vérifier les informations sur le port 834 à l'aide de netstat, utilisez la commande suivante :

netstat -anp | grep 834

La commande renvoie la sortie suivante :

tcp   0    0 0.0.0.0:834    0.0.0.0:*   LISTEN   653/ypbind

La présence du port ouvert dans netstat est rassurante car un craqueur ouvrant soudainement un port sur un système sous son contrôle ne permettrait certainement pas au port d'être exposé par cette commande. De plus, l'option [p] révèle l'id du processus (PID) du service qui a ouvert le port. Dans le cas présent, le port ouvert appartient à ypbind (NIS) qui est un service RPC traité de concert avec le service portmap.

La commande lsof révèle des informations semblables puisqu'elle est capable de lier des ports ouverts aux services :

lsof -i | grep 834

Ci-dessous figure la partie pertinente de la sortie de cette commande :

ypbind      653        0    7u  IPv4       1319                 TCP *:834 (LISTEN)
ypbind      655        0    7u  IPv4       1319                 TCP *:834 (LISTEN)
ypbind      656        0    7u  IPv4       1319                 TCP *:834 (LISTEN)
ypbind      657        0    7u  IPv4       1319                 TCP *:834 (LISTEN)

Ces outils révèlent de nombreuses informations sur le statut des services exécutés sur un ordinateur. Ces outils sont flexibles et fournissent une quantité d'informations importante sur les services réseau et leur configuration. Il est par conséquent fortement recommandé de consulter les pages de manuel relatives à lsof, netstat, nmap et services.