[Guide complet] Comment vérifier les ports ouverts sur Ubuntu et résoudre les problèmes

1. Introduction

En gestion de réseau et administration de serveurs, comprendre avec précision l’état des ports est essentiel. En particulier sous Ubuntu, vérifier les ports ouverts et les processus actifs contribue à renforcer les mesures de sécurité et permet un dépannage rapide.

Cet article fournit une explication détaillée des commandes et outils fondamentaux utilisés pour vérifier les ports sous Ubuntu. Conçu pour les utilisateurs débutants à intermédiaires, il propose des étapes pratiques et faciles à suivre, 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 une passerelle de communication virtuelle utilisée par les ordinateurs et les appareils réseau pour envoyer et recevoir des données. Plus précisément, il permet à plusieurs applications de communiquer simultanément sur la même adresse IP en identifiant et en dirigeant les données vers l’application appropriée.

Par exemple, un serveur web utilise le port 80 pour les communications HTTP. Si le même serveur autorise également les connexions SSH, il utilise le port 22. Étant donné que les différents services sont distingués par leurs numéros de port, vérifier l’état des ports est essentiel pour la gestion du réseau.

2.2 Types et rôles des ports

Les ports sont classés en trois grands types :

  1. Ports bien connus (0–1023)
  • Normalisé à l’échelle mondiale et attribué à des services largement utilisés.
    • Exemples:
    • HTTP: 80
    • HTTPS: 443
    • SSH : 22
  1. Ports enregistrés (1024–49151)
  • Utilisé par des applications ou organisations spécifiques.
    • Exemples:
    • MySQL: 3306
    • PostgreSQL: 5432
  1. Ports dynamiques (49152–65535)
  • Ports temporaires souvent utilisés pour la communication côté client.

Comprendre ces classifications facilite la détermination de l’utilisation d’un port.

3. Comment vérifier les ports sous Ubuntu

Ubuntu propose divers outils pour vérifier l’état des ports. Ici, nous expliquerons quatre commandes pratiques.

3.1 Utilisation de la ss Commande

La commande ss est un outil puissant de gestion réseau sous Linux. Elle est rapide et fournit des informations détaillées sur les connexions.

Commande de base :

sudo ss -ltn

Explication des options :

  • -l: Affiche uniquement les ports d’écoute.
  • -t : Affiche uniquement les connexions du protocole TCP.
  • -n: Affiche les adresses et les numéros de port au format 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 netstat Commande

La commande netstat est un outil traditionnel 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 lsof Commande

La commande lsof est utile pour identifier les processus utilisant un port spécifique.

Vérifier un port spécifique :

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 nmap Commande

L’outil nmap se spécialise dans l’analyse réseau et le diagnostic de sécurité.

Analyser 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 :

  • Affiche les ports ouverts et leurs services associés.
  • L’analyse des serveurs externes nécessite une autorisation préalable.

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

Sous Ubuntu, les pare-feux sont couramment utilisés pour renforcer la sécurité. ufw (Uncomplicated Firewall) est un outil largement utilisé, simple mais puissant. Cette section explique comment vérifier et modifier les autorisations de ports à l’aide de ufw.

4.1 Vérification de l’état du pare-feu

Vérifier l’état 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 :

  • Statut: actif: Le pare-feu est activé.
  • Journalisation : activée: Consigne l’activité du pare-feu.
  • Par défaut : refuser (entrant), autoriser (sortant): Refuse les connexions entrantes par défaut tout en autorisant les connexions sortantes.
  • AUTORISER: Spécifie quels ports/services sont autorisés (par ex., SSH et HTTP).

Remarque : Si le pare-feu est désactivé (Statut : inactif), activez-le avec :

sudo ufw enable

4.2 Autoriser ou bloquer des ports

Autoriser un port spécifique :

sudo ufw allow 22/tcp

Explication :

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

Bloquer un port spécifique :

sudo ufw deny 80/tcp

Explication :

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

Autoriser uniquement 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éinitialisation et révision des paramètres du pare-feu

Pour réinitialiser les paramètres du pare-feu et repartir de zéro, utilisez la commande suivante :

sudo ufw reset

Cette commande supprime toutes les règles et restaure le pare-feu à son état par défaut. Examinez toujours les règles après avoir effectué des modifications.

5. Exemple pratique : Vérification d’un port spécifique

Ici, nous allons montrer comment vérifier l’état de SSH (port 22) à titre d’exemple.

5.1 Vérification de l’état 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 la sortie montre LISTEN, le port est ouvert et en attente de connexions.
  • 0.0.0.0 signifie que le serveur accepte les connexions depuis n’importe quelle adresse IP.

5.2 Identification du processus utilisant le port

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 démon qui gère les connexions SSH.
  • L’ID de processus (PID) peut être utilisé pour arrêter ou redémarrer le service.

Pour arrêter le processus :

sudo kill 1234

5.3 Exemples de dépannage

Problème : Le port n’est pas ouvert ou ne peut pas être accédé.

Étapes pour résoudre :

  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érifiez et redémarrez le service si nécessaire:
sudo systemctl restart ssh

6. Meilleures pratiques de sécurité des ports

La gestion des ports est directement liée à la sécurité du réseau. Voici les points clés pour renforcer la sécurité.

6.1 Fermeture des ports inutiles

Les ports inutilisés doivent être fermés pour prévenir les attaques potentielles.

Exemple : fermeture du port 80

sudo ufw deny 80/tcp

6.2 Prévention du balayage de ports

Le balayage de ports est une technique utilisée par les attaquants pour détecter les vulnérabilités d’un système. Les mesures suivantes peuvent aider à le prévenir :

  1. Renforcement des règles du pare-feu :
sudo ufw default deny incoming
  1. Surveillance des journaux :
sudo tail -f /var/log/ufw.log
  1. Utilisation d’outils de détection d’intrusion :
  • Des outils comme fail2ban peuvent bloquer automatiquement les tentatives d’accès suspectes.

7. Conclusion

Cet article a fourni des étapes détaillées pour vérifier les ports sur Ubuntu, gérer les paramètres du pare-feu en utilisant ufw, et mettre en œuvre des mesures de sécurité.

7.1 Points clés

  • Compréhension des ports : Les ports agissent comme des passerelles de communication et sont classés en ports bien connus, enregistrés et dynamiques.
  • Utilisation de commandes pour vérifier les ports :
  • Des commandes comme ss, netstat, lsof, et nmap aident à vérifier l’état du port et les processus en cours.
  • Gestion du pare-feu:
  • ufw peut être utilisé pour autoriser ou bloquer des ports spécifiques, améliorant la sécurité.
  • Mesures de sécurité:
  • Fermer les ports inutiles, surveiller les journaux et utiliser des outils de sécurité aident à maintenir un environnement réseau sûr.

7.2 Applications futures

La gestion des ports est un aspect fondamental de la sécurité réseau. Appliquez les connaissances de ce guide pour maintenir un environnement serveur sécurisé.

FAQ : Questions fréquemment posées sur la vérification des ports sous Ubuntu

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

A:
Si un port n’est pas ouvert, suivez ces étapes :

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

Si le pare-feu bloque le port, autorisez‑le avec la commande suivante :

sudo ufw allow [port number]/tcp
  1. Vérifiez que le service correspondant est en cours d’exécution :
sudo systemctl status [service name]

Exemple : pour SSH, utilisez :

sudo systemctl status ssh

Si le service n’est pas en cours d’exécution, redémarrez‑le :

sudo systemctl restart [service name]
  1. Vérifiez si le service utilise le port correct :

Vérifiez le fichier de configuration (par ex., pour SSH, consultez /etc/ssh/sshd_config) afin de vous assurer que le bon port est défini.

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

A:
ss et netstat sont tous deux des outils pour vérifier les connexions réseau, mais ils présentent des différences majeures :

  • ss:
  • Recommandé pour les systèmes Linux modernes.
  • Plus rapide et fournit des informations plus détaillées.
  • Commande d’exemple : sudo ss -ltn
  • netstat:
  • Un outil plus ancien qui est progressivement en cours de dépréciation.
  • Toujours disponible sur de nombreux systèmes pour la compatibilité.
  • Commande d’exemple : sudo netstat -ltn

Pour les systèmes plus récents, ss est le choix privilégié.

Q3. Comment détecter si quelqu’un scanne mes ports ?

A:
Pour détecter un scan de ports, essayez les méthodes suivantes :

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

Recherchez des adresses IP inhabituelles ou des tentatives de connexion répétées.

  1. Utilisez un système de détection d’intrusion (IDS) :
  • Installez et configurez des outils comme fail2ban ou Snort pour bloquer automatiquement les accès malveillants.
  1. Scannez votre propre serveur en utilisant nmap :
sudo nmap localhost

Vérifiez les ports ouverts et fermez ceux qui ne sont pas nécessaires.

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

A:
Utilisez la commande lsof pour identifier les processus utilisant un port spécifique :

sudo lsof -i :[port number]

Exemple : pour vérifier 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 ?

A:
Pour autoriser l’accès uniquement depuis une adresse IP spécifique, utilisez la commande suivante :

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

Exemple : autoriser l’accès SSH (port 22) uniquement depuis l’adresse IP 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 d’un service ?

A:
Pour changer le numéro de port d’un service, modifiez son fichier de configuration. Voici un exemple pour SSH :

  1. Ouvrez le fichier de configuration:
sudo nano /etc/ssh/sshd_config
  1. Trouvez le paramètre Port et modifiez le 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 ?

A:
Oui, vous pouvez autoriser plusieurs ports en même temps en utilisant les méthodes suivantes :

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

Explication : autorise les connexions TCP sur les ports 1000 à 2000.

  1. Autoriser plusieurs ports spécifiques :
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp