Les ports réseaux

Dans cet article, nous abordons les ports réseaux : qu’est-ce que c’est, à quoi cela sert et leurs états.
Quelques éléments de sécurité aussi autour de ces ports réseaux.
Une fois n’est pas coutume, cet article s’adresse aussi bien aux utilisateurs Windows qu’aux utilisateurs sous GNU/Linux.

De plus cet article vous explique la notion de port ouverts et les points de sécurité qui importe.

Pour les utilisateurs Windows, vous pouvez aussi lire en parallèle : Lister les connexions établies sur Windows
Pour les lenteurs réseaux, il est aussi conseillé de lire le sujet : Lenteur/Problème connexion/WEB

Qu’est ce que sont les ports réseaux ?

Un port est un point d’entré réseau lié à un service comme un service WEB, service DNS, service MAIL,…) en cours de fonctionnement sur un équipement (PC, serveur, routeur, etc).
Ce dernier se caractérise par un numéro, par exemple le port 139, le port 445.
Concrètement chaque ordinateur possède un peu plus de 65000 ports.

Lorsque vous établissez une connexion vers un serveur, ordinateur etc, vous vous connectez à un port particulier où tourne un service réseau.
Comme un serveur WEB, un serveur FTP, un serveur de jeux, etc.
Cela permet à une seule machine de faire tourner plusieurs services sur des ports différents.

La notion de port ouvert et la sécurité

Sur Windows, le fichier C:\Windows\System32\drivers\etc\services liste les ports avec les services.
Ainsi le port pour les connexions HTTP est le port 80.

Les états des ports : ouverts, fermés..

Un port ouvert correspond donc à une application en écoute sur ce dernier et qui attend une connexion.
Par exemple, un serveur WEB ouvre les ports 80 et 443 par défaut et attends que des clients (navigateurs WEB) s’y connecte pour délivrer les pages WEB.

Par défaut Windows ou Linux ouvre des ports liés à des services réseaux (RPC, etc), il est donc normal d’avoir des ports ouverts.
Ainsi cela ne sert à rien de tenter de fermer tous les ports ouverts à tout prix.

En réalité les ports réseaux ont plusieurs états.

Ouvert

Une application en cours de fonctionne ouvre un port dans le système d’exploitation.
Elle accepte alors les connexions entrantes vers ce dernier.
On peut ouvrir un port sur différents protocoles, par exemple TCP ou UDP.

Fermé

Le port est fermé (closed) est n’accepte aucune connexion entrante.

Filtré

Une application ou équipement empêche d’atteindre le port.
En général, il s’agit d’un pare-feu ou une règle de routage qui ne transmet pas le paquet.

Non filtré

On peut accéder au port mais on ne connaît pas l’état ouvert ou fermé.

Les ports et malwares

Deux aspects sont donc prendre en compte.
Puisque le service est en court de fonctionnement et en attente de connexion, ce dernier peut permettre une intrusion.
Si le service compte une vulnérabilité, un attaquant peut exploiter celle-ci pour exécuter un logiciel malveillant ou s’introduire dans le système.
Une technique d’attaque et de découverte consiste à vérifier tous les ports ouverts d’une machine pour énumérer les applications et services en cours de fonctionnement.
On appelle cela le scan de ports ou balayage de ports, plus d’informations : Scan de ports réseaux
Enfin les vers informatiques (worms) tirent partie de cela en visant des vulnérabilités connues sur des services par défaut de Windows ou Linux.

Dans les années 2000, les backdoor fonctionnaient en mode serveur sur les ordinateurs infectés.
C’est à dire qu’un port de attente de connexion était ouvert, le pirate se connectait à ce dernier et donc à la backdoor pour contrôler l’ordinateur infecté.
Seulement, avec la multiplication des routeurs, ce fonctionnement n’a pu perdurer.

De nos jours, les trojan et autres menaces informatiques n’ouvrent plus de port en écoute et ne fonctionne plus en mode serveur.
Cela a cause des routeurs ou box qui empêche la connexion direct vers l’ordinateur infecté.

Ainsi ces derniers établissent des connexions sortantes vers un serveur de contrôle que l’on nomme C&C .
En général il s’agit d’un serveur WEB avec des pages spécifiques.
Le pirate contrôle alors les ordinateurs en donnant des ordres aux ordinateurs infectés depuis le serveur via une liste d’attente de tâche.
Enfin, le cheval de troie récupère les ordres en se connectant à ce dernier.
Plus d’informations : Comment fonctionnent les trojans

Lister les ports ouverts

Les scans depuis internet

Il existe des services en ligne qui permettent de vérifier les ports ouverts.
Il faut bien comprendre que cela va tester les ports ouverts de votre routeur ou box depuis internet et non votre ordinateur.
En effet, ce dernier n’étant pas directement accessible puisqu’il est placé derrière votre routeur.

Voici quelques services de ports scans :

Par exemple ci-dessous, les ports sont filtrés car le routeur embarque un pare-feu.

scan de port pour lister les ports ouverts

Sous GNU/Linux

Sur Linux, la commande netstat permet de vérifier les connexions établies mais aussi de lister les ports en écoute (LISTENING).
Cette commande netstat accepte beaucoup de paramètres.

Pour lister les connexions en écoute, vous pouvez utiliser le commande netstat de cette manière :

netstat -taupe |grep LISTEN

On obtient alors une liste avec les numéros des ports, le PID du processus (identifiant du processus) et le nom du processus.

root@tuxgateway: ~$ netstat -taupe|grep LISTEN
tcp        0      0 *:2049                  *:*                     LISTEN     root       3006       2014/rpc.nfsd
tcp        0      0 *:4002                  *:*                     LISTEN     root       3021       2016/rpc.mountd
tcp        0      0 *:3335                  *:*                     LISTEN     eggdrop    1030325    23103/eggdrop
tcp        0      0 *:smux                  *:*                     LISTEN     root       2955       1984/snmpd
tcp        0      0 *:mysql                 *:*                     LISTEN     root       2305       1825/mysqld
tcp        0      0 localhost.localho:imap2 *:*                     LISTEN     root       1964       1640/couriertcpd
tcp        0      0 *:sunrpc                *:*                     LISTEN     root       1603       1395/portmap
tcp        0      0 *:www                   *:*                     LISTEN     root       3227       2038/apache
tcp        0      0 *:auth                  *:*                     LISTEN     root       2246       1774/gidentd
tcp        0      0 *:ftp                   *:*                     LISTEN     root       2962       2008/xinetd
tcp        0      0 *:ssh                   *:*                     LISTEN     root       2912       1990/sshd
tcp        0      0 *:921                   *:*                     LISTEN     root       2992       2011/rpc.statd
tcp        0      0 *:smtp                  *:*                     LISTEN     root       2653       1960/master
  • La première colonne affiche le protocole
  • Les colonnes de types : *:2049 affiche l’adresse locale suivi du port, ici * équivaut à toutes les adresses de la machine
  • la colonne *:* équivaut à n’importe quelle adresse distante sur n’importe quel port
  • la colonne LISTEN indique que le port local est en écoute, la colonne suivante indique l’utilisateur a partir duquel le programme ouvrant le port a été lancé
  • L’avant dernière colonne vous donne le PID du processus ayant ouvert le port
  • Enfin la dernière colonne vous donne le nom du processus ayant ouvert le port

Sous Windows

Netstat existe aussi sur Windows mais est plus limité que sur Linux.

Vous devez ouvrir l’invite de commandes puis dans celle-ci, saisissez :

netstat -ao

Les ports en écoute se listent en premier avec comme état LISTENING.

Netstat et lister les ports ouverts dans Windows

Depuis Windows Vista, le moniteur de ressources permet de lister les connexions de manières graphiques.
Bien entendu, il existe de multiples applications pour lister les connexions o ports ouverts.

Pour lister les ports ouverts sur Windows, reportez-vous à ce dernier : Comment vérifier si un port est ouvert ou utilisé sur Windows
Pour lister les connexions établies sur Windows, suivre ce lien : Lister les connexions réseau sur Windows

Ci-dessous les ports en écoute depuis le moniteur de ressources de Windows.

Les ports en écoute depuis le moniteur de ressources de Windows.

Enfin cette vidéo vous montre comment afficher, lister et suivre les connexions réseaux établies par les processus et applications de Windows.

CurrPorts

CurrPorts est un programme qui permet de lister les connexions établies et les ports en écoute comme le fait la commande netstat.
CurrPort permet aussi de fermer une connexion (Close Selected TCP Connections) ou tuer le processus à l’origine de la connexion établie (Kill Processes of Selected Ports).

Vérifier les ports ouverts exploités par les vers

Il est aussi possible de générer un rapport des ports ouverts dans la totalité ou par un processus en particulier.

Vérifier les ports ouverts exploités par les vers

Moniteur de ressources de Windows

Windows est capable de lister et indiquer les connexions établies depuis le Moniteur de ressources.
La liste des connexions par protocole, port et processus source sont indiqués.

Pour accéder au Moniteur de ressources :

  • Ouvrez Menu Démarrer et tapez taskmgr puis clic sur OK.
  • Puis cliquez sur l’onglet Performances puis en bas sur Moniteur de ressources
  • Cliquez sur l’onglet Réseau pour obtenir les connexions réseaux établies.
Pare-feu avancé de Windows Vista

Fermer les ports ouverts

Pour fermer les ports, il suffit simplement d’arrêter le programme à l’origine de l’ouverture du port.
Si vous ne vous servez plus de l’application, le plus simple est de la désinstaller.

Enfin si vous désirez garder l’application, vous pouvez la désactiver du démarrage.

Sous GNU/Linux, ce sont généralement des dameons qui ouvrent des ports, arrêtez alors le daemond :

  • Sur des distributions de type Redhat/Mandrake : chkconfig <daemon> –level 234 off
  • sur des distributions de type Debian : update-rc.d <daemon> -f remove

Avec Windows, vous pouvez désactiver le programme au démarrage : Supprimer les programmes au démarrage de Windows
S’il s’agit d’un service Windows alors passez ce dernier en démarrage manuel :

  • Sur votre clavier, appuyez sur la touche Windows
  • puis dans la fenêtre exécutez, saisissez services.msc
  • Dans la liste, double-cliquez sur le service puis dans type de démarrage, choisissez manuel.

Enfin la dernière solution consiste à filtrer les connexions vers le port afin de prévenir les connexions.
Pour cela, vous devez utiliser un pare-feu ou firewall.

Liens autour des connexions réseaux

Quelques autres articles autour du réseau et notamment sur Windows :

Fiddler permet de monitorer les connexions HTTP par les navigateurs WEB : Fiddler : Monitorer le traffic HTTP

Pour aller plus loin dans l’analyse réseau, vous pouvez utiliser un outil comme WireShark.
Dans ce cas voir la page consacrée à cet outil : WireShark : sniff/analyse réseau

WireShark : Sniff/Analyse réseau
image_pdfimage_print
(Visité 5 418 fois, 1 visites ce jour)