Ouvrir des ports sous Linux est une tâche essentielle qui permet à certains services ou applications d’échanger des données sur le réseau.
 
Les ports agissent comme des canaux de communication, autorisant l’accès aux services approuvés tout en bloquant les connexions non autorisées. Une bonne gestion des ports est indispensable pour garantir la sécurité, la stabilité et les performances du système.
Les ports sont des points de terminaison logiques de communication réseau où les appareils peuvent envoyer et recevoir des informations.
Exemples courants :
HTTP utilise le port 80
HTTPS utilise le port 443
SSH utilise le port 22
Un port ouvert signifie qu’un service écoute les connexions entrantes sur ce port. Un port fermé bloque la communication. Gérer correctement les ports ouverts sous Linux est essentiel pour maintenir la disponibilité et la sécurité du réseau.
Avant d’ouvrir un port, il est conseillé de vérifier quels ports sont déjà actifs.
Plusieurs outils et commandes Linux permettent de le faire.
Pour afficher les ports ouverts :
netstat -tulnL’option -tuln limite la sortie aux ports TCP et UDP sans résolution des noms d’hôte.

Remarque : si netstat n’est pas installé :
sudo apt install net-toolsLa commande ss est plus moderne et plus rapide que netstat :
ss -tuln
Elle affiche les ports utilisés et les informations sur les sockets correspondants.
Pour une analyse détaillée des ports ouverts :
nmap localhostnmap scanne l’hôte spécifié (ici, localhost) afin d’identifier les ports ouverts. C’est un outil pratique pour déterminer quels services sont exposés à la connexion externe.

Remarque : installez nmap avec :
sudo apt install nmapPour autoriser l’accès via un port spécifique, il faut modifier les règles du pare-feu. Linux propose plusieurs outils pour cela : iptables, ufw et firewalld.
Voici comment les utiliser.
iptables est un utilitaire puissant et bas-niveau offrant un contrôle précis sur le trafic réseau.
Exemple : ouvrir le port 8080 (HTTP) :
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPTExplications :
sudo : exécute la commande avec les droits administrateur
-A INPUT : ajoute la règle à la chaîne d’entrée (trafic entrant)
-p tcp : s’applique au protocole TCP
--dport 8080 : définit le port concerné
-j ACCEPT : autorise le trafic correspondant à la règle
Ces modifications sont temporaires : elles seront perdues après un redémarrage.

Rendre la règle permanente. Ces commandes sauvegardent la configuration actuelle pour qu’elle soit appliquée automatiquement au démarrage.
sudo apt install iptables iptables-persistentsudo netfilter-persistent save
This directive preserves current iptables or nftables rules such that they are preserved during reboots.
Recharger les règles
sudo netfilter-persistent reload
ufw est une interface simplifiée d’iptables permettant de gérer facilement les règles du pare-feu.
sudo ufw enable
Si ufw n’est pas installé :
sudo apt install ufwExemple : ouvrir le port 22 pour SSH :
sudo ufw allow 22/tcpCela autorise le trafic TCP sur le port 22, utilisé pour les connexions SSH.

Vérifier l’état du pare-feu
sudo ufw statusAffiche toutes les règles actives et les ports ouverts.

firewalld est un démon de pare-feu dynamique, plus simple à configurer qu’iptables.
Exemple : autoriser le port 443 (HTTPS) :
sudo firewall-cmd --permanent --add-port=443/tcp
Installez et activez firewalld :
sudo apt install firewalldsudo systemctl enable firewalld
sudo systemctl start firewalldRecharger le pare-feu
sudo firewall-cmd --reload
Vérifier les ports ouverts
sudo firewall-cmd --list-allAffiche toutes les zones et les règles actives, y compris les ports ouverts.

Après avoir ouvert un port, il est essentiel de vérifier qu’il est bien accessible.
Avec telnet
telnet localhost port_numberUne connexion réussie signifie que le port est ouvert et fonctionne correctement.

nmap -p port_number localhostPermet de vérifier si le port spécifié est bien accessible sur la machine locale.

curl localhost:port_numberUne réponse valide confirme que le service fonctionne sur le port ouvert.

Si l’ouverture d’un port échoue :
Vérifiez les règles du pare-feu :
Vérifiez l’état du service :
Selon le service, il peut être nécessaire d’utiliser TCP ou UDP.
Exemple : autoriser le trafic MySQL sur le port 3306 :
sudo ufw allow 3306/tcp
Exemple : autoriser le trafic SNMP sur le port 161 :
sudo ufw allow 161/udp
Le protocole UDP offre une communication plus rapide et sans connexion, idéale pour les outils de supervision.
Restreindre l’accès à une adresse IP spécifique
sudo ufw allow from 192.168.1.100 to any port 22Autorise l’accès SSH au port 22 uniquement depuis l’adresse IP spécifiée, renforçant ainsi la sécurité.

sudo ufw deny 80/tcpBloque le trafic entrant sur le port 80 (HTTP).

Choose your server now!
Vérifier et ouvrir les ports sous Linux est une étape essentielle pour optimiser le fonctionnement réseau et assurer la sécurité des services. Avec des outils comme iptables, ufw et firewalld, il est possible de contrôler le trafic de manière précise et sécurisée. Testez toujours vos configurations avec nmap, curl ou telnet pour confirmer que les ports fonctionnent comme prévu.
Une bonne gestion des ports garantit des serveurs stables, des connexions sécurisées et des performances fiables.
