Vérification des ports ouverts et à l’écoute sous Linux à l’aide de Netstat et SS
La surveillance des ports ouverts et à l’écoute sur un système Linux est l’une des pratiques les plus fondamentales pour maintenir la sécurité des serveurs, diagnostiquer les problèmes réseau et gérer votre infrastructure efficacement. Que vous exécutiez un serveur web de production, un environnement VPS Hosting, ou un Dedicated Server, comprendre exactement quels ports sont ouverts — et quels services y sont liés — vous donne la visibilité nécessaire pour prévenir les accès non autorisés, détecter les erreurs de configuration et éliminer les surfaces d’attaque inutiles.
Dans ce guide complet, nous vous montrerons comment utiliser les commandes netstat et ss pour vérifier les ports ouverts et à l’écoute sur n’importe quel système Linux, comparer leurs forces et présenter des outils supplémentaires tels que lsof et nmap pour une analyse réseau plus approfondie.
Pourquoi la surveillance des ports ouverts est importante
Chaque port ouvert sur votre serveur représente un point d’entrée potentiel. Les services mal configurés, obsolètes ou simplement oubliés peuvent exposer votre système à l’exploitation. L’audit régulier de vos ports à l’écoute vous permet de :
- Identifier les services non autorisés s’exécutant sur des ports inattendus
- Détecter les tentatives d’intrusion ou les processus compromis
- Vérifier que les règles de pare-feu fonctionnent comme prévu
- Confirmer que les applications nouvellement déployées se lient aux bonnes interfaces
- Fermer les ports inutilisés pour réduire votre surface d’attaque
Ceci est particulièrement critique pour les administrateurs gérant des environnements Shared Web Hosting ou des serveurs multi-locataires où plusieurs services s’exécutent simultanément.
Comprendre les ports et leurs types
Avant de plonger dans les outils, il est important de comprendre la terminologie que vous rencontrerez dans la sortie des commandes.
| Terme | Description |
|---|---|
| Port ouvert | Un port sur lequel une application écoute activement les connexions entrantes |
| Port à l’écoute | Un port lié à un service qui attend le trafic réseau |
| TCP (Transmission Control Protocol) | Orienté connexion, fiable, utilisé par HTTP, SSH, FTP, etc. |
| UDP (User Datagram Protocol) | Sans connexion, plus rapide mais moins fiable, utilisé par DNS, NTP, etc. |
Vérification des ports avec netstat
Qu’est-ce que netstat ?
netstat (statistiques réseau) est un utilitaire classique de ligne de commande qui fournit des informations détaillées sur les connexions réseau, les tables de routage, les statistiques d’interface et les ports à l’écoute. Bien qu’il ait été officiellement déprécié en faveur de ss sur les distributions modernes, il reste largement utilisé et se trouve toujours sur de nombreux systèmes hérités.
Installation de netstat
La commande netstat fait partie du paquet net-tools, qui peut ne pas être installé par défaut sur les distributions Linux modernes.
Debian / Ubuntu :
sudo apt install net-toolsCentOS / RHEL / AlmaLinux / Rocky Linux :
sudo yum install net-toolsUtilisation de netstat pour vérifier les ports ouverts et à l’écoute
Pour afficher tous les ports TCP et UDP à l’écoute sur votre système, exécutez la commande suivante :
sudo netstat -tulnDétail des drapeaux :
| Drapeau | Description |
|---|---|
-t | Afficher les ports TCP |
-u | Afficher les ports UDP |
-l | Afficher uniquement les ports à l’écoute |
-n | Afficher les adresses numériques au lieu de résoudre les noms d’hôtes |
Exemple de sortie
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp6 0 0 :::443 :::* LISTEN
udp 0 0 0.0.0.0:53 0.0.0.0:*Comprendre les colonnes de sortie
- Adresse locale — L’adresse IP et le numéro de port où le service écoute.
0.0.0.0signifie que le service écoute sur toutes les interfaces disponibles. - Adresse distante — L’IP distante et le port pour les connexions actives. Un astérisque (
*) signifie qu’aucune connexion n’est établie. - État — L’état de la connexion.
LISTENindique que le port est ouvert et attend les connexions entrantes.
Filtrage des ports spécifiques avec netstat
Vous pouvez rediriger la sortie via grep pour isoler un port ou un service spécifique. Par exemple, pour vérifier si quelque chose écoute sur le port 80 (HTTP) :
sudo netstat -tuln | grep ":80"Pour vérifier le port 443 (HTTPS), qui est essentiel pour les serveurs avec SSL Certificates installés :
sudo netstat -tuln | grep ":443"Pour afficher également le nom du processus et le PID responsables de chaque connexion, ajoutez le drapeau -p :
sudo netstat -tulnpVérification des ports avec ss
Qu’est-ce que ss ?
ss (statistiques de socket) est le remplaçant moderne de netstat. Il est plus rapide, plus efficace et fournit une sortie plus riche — particulièrement sur les systèmes avec un grand nombre de connexions simultanées. La commande ss est incluse par défaut sur pratiquement toutes les distributions Linux modernes et ne nécessite aucune installation supplémentaire.
Utilisation de ss pour vérifier les ports ouverts et à l’écoute
La syntaxe de ss ressemble étroitement à celle de netstat, ce qui rend la transition simple :
ss -tulnDétail des drapeaux :
| Drapeau | Description |
|---|---|
-t | Afficher les sockets TCP |
-u | Afficher les sockets UDP |
-l | Afficher uniquement les sockets à l’écoute |
-n | Afficher les adresses numériques |
Exemple de sortie
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:*
tcp LISTEN 0 511 [::]:443 [::]:*
udp UNCONN 0 0 0.0.0.0:53 0.0.0.0:*Utilisation avancée de ss
La commande ss offre une gamme d’options de filtrage et d’affichage avancées qui vont bien au-delà de ce que netstat peut fournir.
Afficher uniquement les ports TCP à l’écoute
ss -tlAfficher uniquement les ports UDP à l’écoute
ss -ulAfficher les noms de processus et les PIDs
Pour identifier exactement quel processus utilise un port spécifique, utilisez le drapeau -p :
ss -tulnpC’est l’une des commandes les plus utiles pour le dépannage — elle affiche le nom du processus et le PID à côté de chaque socket à l’écoute, ce qui rend immédiatement clair quelle application possède quel port.
Exemple de sortie avec le drapeau -p
Netid State Local Address:Port Process
tcp LISTEN 0.0.0.0:80 users:(("nginx",pid=1234,fd=6))
tcp LISTEN 0.0.0.0:22 users:(("sshd",pid=987,fd=3))
tcp LISTEN 0.0.0.0:3306 users:(("mysqld",pid=2345,fd=21))Filtrer par un port spécifique
Pour vérifier quel processus écoute sur le port 8080 :
ss -tulnp | grep ":8080"Afficher toutes les connexions TCP établies
ss -tn state establishedAfficher les statistiques récapitulatives
ss -sCela fournit un résumé rapide des sockets totaux par type et état — utile pour détecter les volumes de connexion inhabituels.
netstat vs. ss : Une comparaison directe
| Fonctionnalité | `netstat` | `ss` |
|---|---|---|
| Performance | Plus lent sur les systèmes chargés | Significativement plus rapide |
| Disponibilité par défaut | Nécessite le paquet net-tools | Pré-installé sur les distributions modernes |
| Options de filtrage | Basique (grep requis) | Filtres avancés intégrés |
| Informations sur le processus | Disponible avec -p | Disponible avec -p |
| Détail de la sortie | Standard | Informations de socket plus détaillées |
| Recommandé pour | Systèmes hérités, familiarité | Environnements Linux modernes |
Quand utiliser netstat
- Sur les anciens systèmes Linux où
ssn’est pas disponible - Lors du travail avec des scripts ou de la documentation écrite autour de la syntaxe
netstat - Pour les vérifications rapides sur les systèmes où
net-toolsest déjà installé
Quand utiliser ss
- Sur n’importe quelle distribution Linux moderne (Ubuntu 20.04+, CentOS 8+, Debian 10+, etc.)
- Quand vous avez besoin d’une sortie plus rapide sur les serveurs à fort trafic
- Pour le filtrage avancé et l’analyse détaillée des sockets
Outils supplémentaires pour l’audit des ports
Au-delà de netstat et ss, plusieurs autres utilitaires sont précieux pour un audit complet des ports.
Utilisation de lsof
lsof (lister les fichiers ouverts) traite les sockets réseau comme des fichiers, ce qui en fait un autre moyen puissant d’identifier quel processus utilise un port donné.
Pour vérifier quel processus est lié au port 80 :
sudo lsof -i :80Pour vérifier tous les ports à l’écoute :
sudo lsof -i -P -n | grep LISTENExemple de sortie :
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 1234 root 6u IPv4 23456 0t0 TCP *:80 (LISTEN)
sshd 987 root 3u IPv4 12345 0t0 TCP *:22 (LISTEN)Utilisation de nmap
nmap est un outil puissant d’analyse réseau qui peut détecter les ports ouverts à la fois localement et sur les hôtes distants. Il est particulièrement utile pour vérifier votre configuration de pare-feu d’une perspective externe.
Installez nmap s’il n’est pas déjà présent :
sudo apt install nmap # Debian/Ubuntu
sudo yum install nmap # CentOS/RHELAnalysez tous les ports TCP sur la machine locale :
sudo nmap -sT localhostAnalysez les ports ouverts sur une adresse IP spécifique :
sudo nmap -sV 192.168.1.100Le drapeau -sV tente également de détecter la version du service s’exécutant sur chaque port ouvert, ce qui est inestimable pour identifier les logiciels obsolètes ou vulnérables.
> Note de sécurité : Exécutez uniquement les analyses nmap sur les systèmes que vous possédez ou pour lesquels vous avez une permission explicite.
Flux de travail pratique de sécurité : Audit des ports de votre serveur
Voici un flux de travail étape par étape recommandé pour auditer les ports ouverts sur un serveur Linux
