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 d’é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
C’est particulièrement critique pour les administrateurs gérant des environnements d’hébergement web partagé 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 d’é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 en 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 d’é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 d’écoute
Pour afficher tous les ports TCP et UDP d’é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 d’é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 sur lesquels le service est à l’écoute.
0.0.0.0signifie que le service est à l’é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 encore établie. - État — L’état de la connexion.
LISTENindique que le port est ouvert et en attente de connexions entrantes.
Filtrage de 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 est à l’é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 des certificats SSL 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 reflète é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 en écoute
ss -tlAfficher uniquement les ports UDP en écoute
ss -ulAfficher les noms de processus et les PID
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 en é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 des volumes de connexion inhabituels.
netstat vs. ss : 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 les 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 des vérifications rapides sur les systèmes où
net-toolsest déjà installé
Quand utiliser ss
- Sur toute 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 de port approfondi.
Utilisation de lsof
lsof (list open files) 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 en é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 puissant outil de scan réseau qui peut détecter les ports ouverts 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/RHELScannez tous les ports TCP sur la machine locale :
sudo nmap -sT localhostScannez les ports ouverts sur une adresse IP spécifique :
sudo nmap -sV 192.168.1.100Le flag -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 les scans nmap uniquement sur les systèmes que vous possédez ou pour lesquels vous avez une permission explicite.
Flux de travail de sécurité pratique : audit des ports de votre serveur
Voici un flux de travail étape par étape recommandé pour auditer les ports ouverts sur un serveur Linux :
- Lister tous les ports en écoute avec les informations de processus :
ss -tulnp- Vérifier chaque port par rapport aux services attendus. Si vous voyez un processus inconnu sur un port inattendu, enquêtez immédiatement.
- Vérifier les services en écoute sur toutes les interfaces (
0.0.0.0) qui devraient être accessibles uniquement localement. Par exemple, un serveur de base de données (port 3306) devrait généralement se lier à127.0.0.1, pas à0.0.0.0.
- Vérifier vos règles de pare-feu avec
iptables -L -nouufw status verbosepour vous assurer que seuls les ports prévus sont exposés en externe.
- Utiliser
nmapdepuis un hôte externe pour confirmer quels ports sont réellement accessibles depuis Internet, car les règles de pare-feu peuvent différer de ce quessrapporte localement.
- Fermer ou restreindre les ports qui ne sont pas nécessaires en utilisant votre pare-feu ou en arrêtant le service associé.
Référence rapide : Commandes les plus utiles
# List all listening TCP and UDP ports (modern, recommended)
ss -tuln
# List listening ports with process names and PIDs
ss -tulnp
# List all listening ports using netstat (legacy)
sudo netstat -tulnp
# Check which process is using port 443
ss -tulnp | grep ":443"
# Check open ports with lsof
sudo lsof -i -P -n | grep LISTEN
# Scan local machine for open ports with nmap
sudo nmap -sT localhostConclusion
L’audit régulier des ports ouverts et à l’écoute est une partie non négociable de l’administration des serveurs Linux. Des outils comme netstat et ss vous donnent une visibilité immédiate et détaillée sur les services en cours d’exécution, les ports qu’ils occupent et si quelque chose d’inattendu est présent sur votre système.
Pour les environnements Linux modernes, ss est le choix évident — il est plus rapide, plus capable et disponible par défaut. Cependant, netstat reste un secours fiable pour les systèmes hérités ou les administrateurs déjà à l’aise avec sa syntaxe. Compléter ces outils avec lsof et nmap fournit une image complète de l’exposition réseau de votre serveur.
Que vous durcissiez un déploiement VPS Hosting, gériez une flotte de Dedicated Servers ou sécurisiez un environnement Email Hosting, maîtriser l’audit des ports est une compétence essentielle qui contribue directement à la sécurité et à la fiabilité de votre infrastructure.
sur tous les services d'hébergement