Commandes Linux pour ouvrir un port avec UFW et firewalld

Quelle commande utiliser pour ouvrir un port sous Linux (UFW, firewalld) ?

À retenir

  • Il n’existe pas de commande universelle : la syntaxe dépend du pare-feu actif.
  • Avec UFW, utilisez par exemple sudo ufw allow 8080/tcp.
  • Avec firewalld, utilisez sudo firewall-cmd –permanent –add-port=8080/tcp, puis sudo firewall-cmd –reload.
  • Vérifiez la règle, l’écoute réelle du service avec sudo ss -lntup et l’accès depuis une autre machine.

Il n’existe pas une commande universelle pour ouvrir un port sous Linux : la syntaxe dépend du pare-feu actif. Avec UFW, utilisez sudo ufw allow 8080/tcp ; avec firewalld, utilisez sudo firewall-cmd --permanent --add-port=8080/tcp, puis rechargez la configuration.


Choisir la commande selon le pare-feu

Ouvrir un port signifie autoriser le trafic entrant dans le pare-feu. Remplacez 8080 par le port réellement utilisé et indiquez toujours le protocole : TCP et UDP nécessitent des règles distinctes.

Pare-feu Syntaxe
UFW sudo ufw allow <port>/<tcp|udp>
firewalld sudo firewall-cmd --permanent --add-port=<port>/<tcp|udp>
iptables/ip6tables Règles bas niveau avec le protocole et --dport

Ces outils ne sont pas interchangeables : utilisez le pare-feu effectivement actif. Une règle autorise le trafic, mais ne démarre pas le service qui doit écouter sur le port.


Avec UFW

La syntaxe générale est :

sudo ufw allow <port>/<tcp|udp>

Pour autoriser le port 8080 en TCP :

sudo ufw allow 8080/tcp

Si le service utilise UDP, ajoutez une règle séparée :

sudo ufw allow 8080/udp

Pour un service HTTPS sur le port 443, la commande est :

sudo ufw allow 443/tcp

Vérifiez la règle avec :

sudo ufw status verbose

Si UFW n’est pas encore activé, utilisez sudo ufw enable après avoir vérifié vos règles, notamment si vous administrez la machine à distance. Pour supprimer une règle, listez-les avec sudo ufw status numbered, puis utilisez son numéro :.

sudo ufw delete <numéro>

Avec firewalld

Pour ajouter une règle persistante, utilisez :

sudo firewall-cmd --permanent --add-port=<port>/<tcp|udp>

Pour autoriser durablement le port 8080 en TCP, puis appliquer la configuration :

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

Pour HTTPS, remplacez le port par 443 :

sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload

Contrôlez la zone réseau utilisée avant de vérifier la règle :

sudo firewall-cmd --get-active-zones
sudo firewall-cmd --list-all

La règle doit se trouver dans la zone associée à l’interface réseau. Une règle ajoutée dans une autre zone peut ne pas autoriser le trafic attendu.


Ouvrir un port ou le réacheminer : deux opérations différentes

L’ouverture simple autorise un port sur la machine. Le réacheminement, lui, transfère un port reçu vers un autre port local et peut aussi cibler une autre adresse.

Avec firewalld, un exemple de redirection du port TCP 8080 vers le port local 80 est :

sudo firewall-cmd --permanent --add-forward-port=port=8080:proto=tcp:toport=80
sudo firewall-cmd --reload

Pour UDP, remplacez proto=tcp par proto=udp. N’utilisez donc pas une redirection lorsque le service écoute déjà directement sur le port à autoriser.


Autres pare-feu : iptables, CSF et APF

Si UFW ou firewalld ne gèrent pas la machine, iptables et ip6tables permettent de définir des règles bas niveau avec le protocole et le port de destination via --dport. Une règle IPv4 ne couvre pas automatiquement IPv6, et la persistance après redémarrage doit être gérée séparément.

Avec CSF, les ports autorisés se configurent dans /etc/csf/csf.conf, notamment dans les listes TCP_IN et UDP_IN, puis la configuration se recharge avec :

sudo csf -r

Avec APF, ajoutez les ports dans /etc/apf/conf.apf, dans les listes correspondantes, puis rechargez APF avec :

sudo apf -r

Dans tous les cas, ne mélangez pas plusieurs gestionnaires sans savoir lequel applique réellement les règles.


Vérifier la règle et l’écoute du service

Une règle de pare-feu ne rend pas automatiquement le service accessible. Vérifiez d’abord l’écoute locale avec :

sudo ss -lntup

Recherchez le port concerné et vérifiez le protocole, l’adresse d’écoute et le processus associé. Cette commande confirme l’écoute locale, mais pas l’accès depuis une autre machine. Pour approfondir cette vérification, consultez notre guide sur vérifier les ports ouverts sous Linux.

Testez ensuite le port depuis une machine cliente située sur le réseau concerné, par exemple avec :

nc -vz <adresse_du_serveur> <port>

Pour qu’un accès distant fonctionne, trois conditions doivent être réunies : la règle autorise le bon couple port/protocole, une application écoute sur une adresse accessible et le chemin réseau ne bloque pas la connexion. Si l’écoute locale est correcte mais que le test externe échoue, vérifiez également le routeur, le pare-feu externe, l’hébergeur cloud ou le groupe de sécurité.


Limiter l’exposition

Autorisez uniquement le port et le protocole nécessaires. Si le service ne doit être accessible que par quelques machines, limitez aussi les adresses ou réseaux sources au lieu d’exposer le port à tout Internet.

Une règle temporaire doit être supprimée lorsque le service n’est plus utilisé. Avec firewalld, vérifiez séparément la configuration active et la configuration persistante ; avec iptables, prévoyez explicitement la sauvegarde et la restauration des règles.


Avis d’Expert

Identifiez le pare-feu actif, autorisez le couple port/protocole requis, puis vérifiez la règle, l’écoute avec ss et l’accès depuis une autre machine. Un port ouvert dans le pare-feu n’est pas forcément un service accessible : l’écoute locale et le chemin réseau doivent également être opérationnels.

Nathan Belmont

Nathan Belmont

Je suis un expert en systèmes d’exploitation (Windows, macOS/iOS, Linux, Android) ainsi qu’en logiciels et matériel informatique. Je propose des tutoriels clairs et pratiques pour résoudre les problèmes du quotidien, des imprimantes aux smartphones.