Comment vérifier les ports ouverts sur Ubuntu : commandes essentielles et conseils de sécurité

1. Introduction

Dans la gestion de réseau et les opérations serveur, comprendre avec précision l’état des ports est essentiel. En particulier sous Ubuntu, vérifier quels ports sont ouverts et quels processus les utilisent permet de renforcer la sécurité et d’accélérer le dépannage.

Cet article explique les commandes et outils de base utilisés pour vérifier les ports sous Ubuntu. Il fournit des étapes pratiques et faciles à comprendre pour les débutants et les utilisateurs intermédiaires, alors assurez‑vous de lire jusqu’à la fin.

2. Qu’est‑ce qu’un port ?

2.1 Concept de base des ports

Un port est un point d’extrémité de communication virtuel que les ordinateurs et les appareils réseau utilisent pour envoyer et recevoir des données. Concrètement, lorsque plusieurs applications communiquent simultanément sur la même adresse IP, les ports identifient et dirigent les données vers l’application correcte.

Par exemple, un serveur web utilise le port 80 pour le trafic HTTP. Si le même serveur autorise l’accès SSH, il utilise le port 22. Comme les services sont différenciés par les numéros de port, vérifier l’état des ports est crucial dans la gestion de réseau.

2.2 Types et rôles des ports

Les ports sont classés en trois groupes principaux :

  1. Ports bien connus (0–1023)
  • Numéros de port standardisés mondialement attribués aux services couramment utilisés. wp:list /wp:list

    • Exemples :
    • HTTP : 80
    • HTTPS : 443
    • SSH : 22
  1. Ports enregistrés (1024–49151)
  • Ports utilisés par des applications ou des entreprises spécifiques. wp:list /wp:list

    • Exemples :
    • MySQL : 3306
    • PostgreSQL : 5432
  1. Ports dynamiques (49152–65535)
  • Ports temporairement utilisés par les applications, généralement dans les communications côté client.

Comprendre cette classification facilite la détermination de l’usage de chaque numéro de port.

3. Comment vérifier les ports sous Ubuntu

Ubuntu propose plusieurs outils pour vérifier l’état des ports. Cette section explique quatre commandes particulièrement utiles.

3.1 Utilisation de la commande ss

La commande ss est un outil puissant de gestion réseau pour les systèmes Linux. Elle s’exécute rapidement et fournit des informations détaillées sur les connexions.

Commande de base :

sudo ss -ltn

Détails des options :

  • -l : Affiche uniquement les ports en état LISTEN.
  • -t : Affiche uniquement le protocole TCP.
  • -n : Affiche les adresses et numéros de port sous forme numérique.

Exemple de sortie :

State       Recv-Q Send-Q      Local Address:Port        Peer Address:Port  
LISTEN      0      128              0.0.0.0:22               0.0.0.0:*

3.2 Utilisation de la commande netstat

La commande netstat a longtemps été utilisée comme outil de gestion réseau. Bien qu’elle soit progressivement remplacée par ss, elle reste disponible sur de nombreux systèmes.

Commande de base :

sudo netstat -ltn

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

3.3 Utilisation de la commande lsof

lsof est utile pour identifier les processus qui utilisent des ports spécifiques.

Vérifier un port précis :

sudo lsof -i :80

Exemple de sortie :

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
apache2   1234  www    4u   IPv4  12345 0t0      TCP *:http (LISTEN)

3.4 Utilisation de la commande nmap

nmap est un outil de scan réseau souvent utilisé pour le diagnostic de sécurité.

Scanner le localhost :

sudo nmap localhost

Exemple de sortie :

Starting Nmap 7.80 ( https://nmap.org ) at 2024-12-21 18:00 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http

Points clés :

  • Les ports ouverts et leurs services associés sont listés.
  • Il est possible de scanner des serveurs externes, mais une autorisation appropriée est requise.

4. Vérification des paramètres du pare‑feu

Sur Ubuntu, les pare-feux sont couramment utilisés pour renforcer la sécurité. ufw (Uncomplicated Firewall), en particulier, est un outil de gestion simple mais puissant largement utilisé à cette fin. Cette section explique comment vérifier l’état des ports et modifier les configurations à l’aide de ufw.

4.1 Vérifier le statut d’ufw

Commande pour vérifier le statut du pare-feu :

sudo ufw status verbose

Exemple de sortie :

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere

Explication :

  • Status: active — indique que le pare-feu est activé.
  • Logging: on — la journalisation est activée et l’activité du pare-feu est enregistrée.
  • Default: deny (incoming), allow (outgoing) — les connexions entrantes sont refusées par défaut, tandis que les connexions sortantes sont autorisées.
  • ALLOW — montre les ports ou services explicitement autorisés (par ex., SSH et HTTP).

Astuce :
Si le pare-feu est désactivé (Status: inactive), activez-le avec la commande suivante :

sudo ufw enable

4.2 Autoriser ou bloquer des ports

Commande pour autoriser un port :

sudo ufw allow 22/tcp

Explication :

  • Autorise les connexions TCP sur le port 22 (SSH).

Commande pour bloquer un port :

sudo ufw deny 80/tcp

Explication :

  • Bloque l’accès au port 80 (HTTP).

Exemple : Autoriser l’accès uniquement depuis une adresse IP spécifique

sudo ufw allow from 192.168.1.100 to any port 22 proto tcp

Explication :

  • Autorise les connexions SSH uniquement depuis l’adresse IP 192.168.1.100.

4.3 Réinitialiser et revoir les paramètres

Pour réinitialiser la configuration du pare-feu et recommencer, exécutez la commande suivante :

sudo ufw reset

Cela supprime toutes les règles et ramène le pare-feu à son état par défaut. Si vous réinitialisez les paramètres, assurez‑vous de revoir et de réappliquer les règles nécessaires.

5. Exemple pratique : Vérifier le statut d’un port spécifique

Cette section fournit un exemple pratique utilisant SSH (port 22) pour montrer comment vérifier le statut d’un port.

5.1 Vérifier le statut du port

Commande d’exemple :

sudo ss -ltn | grep ':22'

Exemple de sortie :

LISTEN      0      128        0.0.0.0:22            0.0.0.0:*

Points clés :

  • Si LISTEN apparaît dans la sortie, le port est ouvert et attend des connexions.
  • 0.0.0.0 indique que les connexions sont acceptées depuis toutes les adresses IP.

5.2 Vérifier le processus en cours d’exécution

Commande d’exemple :

sudo lsof -i :22

Exemple de sortie :

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd      1234  root   3u   IPv4  56789 0t0      TCP *:ssh (LISTEN)

Points clés :

  • sshd est le processus daemon qui gère les connexions SSH.
  • Vous pouvez arrêter ou redémarrer le processus en utilisant son identifiant de processus (PID).

Exemple d’arrêt d’un processus :

sudo kill 1234

5.3 Exemple de dépannage

Problème : Que faire lorsqu’un port est fermé ou inaccessible.

Étapes :

  1. Vérifier les paramètres du pare-feu.
    sudo ufw status verbose
    
  1. Si le port est bloqué, autorisez‑le.
    sudo ufw allow 22/tcp
    
  1. Vérifier le statut du service et redémarrer si nécessaire.
    sudo systemctl restart ssh
    

6. Gestion des ports et sécurité

La gestion des ports est directement liée à la sécurité du réseau. Cette section explique les points clés concernant l’ouverture et la fermeture des ports ainsi que le maintien de configurations sécurisées.

6.1 Fermer les ports inutilisés

Les ports qui ne sont pas utilisés doivent être fermés afin de réduire le risque d’accès non autorisé.

Exemple : Fermer le port 80

sudo ufw deny 80/tcp

6.2 Contre‑mesures contre le scan de ports

Le scan de ports est une technique que les attaquants utilisent pour identifier les vulnérabilités d’un système. Les méthodes suivantes aident à protéger votre serveur :

  1. Renforcer les règles du pare-feu :
    sudo ufw default deny incoming
    
  1. Surveiller les journaux :
    sudo tail -f /var/log/ufw.log
    
  1. Installer des outils de détection de scan de ports : Utilisez des outils comme fail2ban pour bloquer automatiquement les tentatives d’accès non autorisées.

7. Résumé

Cet article a expliqué des méthodes et des commandes spécifiques pour vérifier les ports sur Ubuntu. Il a également couvert la gestion du pare‑feu avec ufw et des mesures de sécurité pratiques.

7.1 Points clés

  • Concepts de base et catégories de ports : Les ports servent de points d’entrée de communication et sont classés en ports bien connus, enregistrés et dynamiques.
  • Comment vérifier les ports : Des commandes telles que ss, netstat, lsof et nmap fournissent des informations sur l’état des ports et des processus.
  • Gestion du pare‑feu : En utilisant ufw, vous pouvez autoriser ou bloquer des ports pour renforcer la sécurité du système.
  • Importance de la sécurité : Fermer les ports inutilisés, surveiller les journaux et utiliser des outils de sécurité aident à maintenir un environnement réseau sûr.

7.2 Application pratique

La gestion des ports est un aspect fondamental de la sécurité réseau. Appliquez les connaissances acquises dans cet article pour maintenir un serveur sécurisé et stable.

FAQ : Questions fréquentes sur la vérification des ports sous Ubuntu

Q1. Que faire si un port n’est pas ouvert sur Ubuntu ?

R :
Essayez les étapes suivantes :

  1. Vérifier les paramètres du pare‑feu :
    sudo ufw status verbose
    

Si le port est bloqué, autorisez‑le avec :

sudo ufw allow [portnumber]/tcp
  1. Vérifier que le service est en cours d’exécution :
    sudo systemctl status [servicename]
    

Exemple pour SSH :
sudo systemctl status ssh

Redémarrez si nécessaire :

sudo systemctl restart [servicename]
  1. Confirmer que le bon port est configuré : Vérifiez le fichier de configuration du service, tel que /etc/ssh/sshd_config pour SSH, afin de valider le numéro de port approprié.

Q2. Quelle est la différence entre ss et netstat ?

R :
Les deux outils servent à vérifier les connexions réseau, mais ils diffèrent comme suit :

  • ss : L’outil recommandé pour les systèmes Linux modernes. Plus rapide et fournit des informations plus détaillées. Exemple : sudo ss -ltn
  • netstat : Un outil plus ancien, progressivement obsolète, mais encore largement disponible sur les systèmes hérités. Exemple : sudo netstat -ltn

Pour les systèmes récents, ss est recommandé.

Q3. Comment détecter un scan de ports ?

R :
Utilisez les méthodes suivantes :

  1. Vérifier les journaux du pare‑feu :
    sudo tail -f /var/log/ufw.log
    

Recherchez des adresses IP suspectes ou des tentatives d’accès répétées.

  1. Installer des outils IDS/IPS :
  • Utilisez des outils comme fail2ban ou Snort pour bloquer automatiquement les tentatives d’accès non autorisées.
  1. Scanner votre propre serveur avec nmap :
    sudo nmap localhost
    

Identifiez les ports ouverts inutiles et fermez‑les.

Q4. Comment vérifier quel processus utilise un port spécifique ?

R :
Utilisez la commande lsof :

sudo lsof -i :[portnumber]

Exemple pour le port 80 :

sudo lsof -i :80

Exemple de sortie :

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
apache2   1234  www    4u   IPv4  12345 0t0      TCP *:http (LISTEN)

Q5. Comment autoriser uniquement une adresse IP spécifique avec ufw ?

R :
Utilisez la commande suivante :

sudo ufw allow from [IP address] to any port [portnumber] proto tcp

Exemple : autoriser l’accès SSH depuis 192.168.1.100 :

sudo ufw allow from 192.168.1.100 to any port 22 proto tcp

Q6. Comment changer le numéro de port ?

R :
Modifiez le fichier de configuration du service concerné.
Exemple pour SSH :

  1. Modifier le fichier de configuration :
    sudo nano /etc/ssh/sshd_config
    
  1. Trouver la directive Port et définir un nouveau numéro de port :
    Port 2222
    
  1. Redémarrer le service SSH :
    sudo systemctl restart ssh
    
  1. Autoriser le nouveau port dans le pare‑feu :
    sudo ufw allow 2222/tcp
    

Q7. Puis‑je autoriser plusieurs ports en même temps ?

R :
Oui, vous pouvez autoriser plusieurs ports en utilisant les méthodes suivantes :

  1. Autoriser une plage de ports :
    sudo ufw allow 1000:2000/tcp
    

Explication : Autorise les ports de 1000 à 2000.

  1. Autoriser les ports individuellement :
    sudo ufw allow 22/tcp
    sudo ufw allow 80/tcp