À 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.



