Tous les services opérationnels Devise EUR Aucun frais de mise en service Vous êtes à La Réunion ?
‹ Serveurs VPS et Docker

Ouvrir un port sur un serveur Linux, sans risque

Pour ouvrir un port sur un serveur Linux, vérifiez d'abord qu'un service écoute dessus avec ss -tlnp, puis autorisez-le dans le pare-feu du serveur, par exemple sudo ufw allow 8080, et dans celui de votre hébergeur s'il en place un en amont. Avant d'ouvrir quoi que ce soit, demandez-vous si un proxy HTTPS sur le port 443 ne suffirait pas.

Par Jonathan Dewaele · publié le

Cet article s'appuie sur la documentation d'Ubuntu sur les pare-feu et sur la page de Docker sur le filtrage des paquets, relues le 14 octobre 2026. Les commandes valent pour Ubuntu 24.04 et 26.04 ; ufw s'installe aussi sur Debian 12 et 13 avec sudo apt install ufw.

Faut-il vraiment ouvrir un port ?

Chaque port ouvert est une porte supplémentaire à surveiller. Une application web n'a presque jamais besoin du sien : un proxy inverse (Nginx Proxy Manager, Caddy, Traefik) reçoit tout le trafic sur 80 et 443 et le transmet à chaque application selon le nom de domaine, avec un certificat HTTPS. Une interface d'administration, une base de données ou un tableau de bord interne ne devraient jamais être ouverts à tout Internet en clair.

Un port à ouvrir se justifie pour un service qui n'est pas du web : un serveur de jeu, un VPN comme WireGuard (en UDP), un serveur de messagerie, un protocole métier.

Vérifier qu'un service écoute

Un port ouvert dans le pare-feu ne sert à rien si rien n'écoute derrière. Sur le serveur :

sudo ss -tlnp

La commande liste les ports TCP en écoute (-u à la place de -t pour l'UDP) et le programme qui les tient. Regardez l'adresse : 127.0.0.1:8080 signifie que le service n'écoute que sur le serveur lui-même, et qu'aucune règle de pare-feu ne le rendra joignable de l'extérieur. 0.0.0.0:8080 signifie qu'il écoute sur toutes les adresses.

Ouvrir un port avec ufw

ufw est l'outil de pare-feu d'Ubuntu. Il est désactivé tant que vous ne l'activez pas.

  1. Autoriser SSH avant tout, faute de quoi l'activation vous couperait du serveur : sudo ufw allow 22
  2. Autoriser le port voulu, en précisant le protocole s'il est connu : sudo ufw allow 51820/udp pour WireGuard, sudo ufw allow 8080/tcp pour un service web.
  3. Activer le pare-feu, s'il ne l'est pas déjà : sudo ufw enable
  4. Vérifier les règles : sudo ufw status numbered
  5. Retirer une règle devenue inutile, par son numéro : sudo ufw delete 3

Pour n'autoriser qu'une adresse, celle de votre bureau par exemple : sudo ufw allow proto tcp from 198.51.100.7 to any port 5432.

Le piège de Docker

Un port publié par Docker passe à côté d'ufw. Selon la documentation de Docker, Docker et ufw utilisent les règles du pare-feu de façons incompatibles, et le trafic vers un conteneur est aiguillé avant que les règles d'ufw ne s'appliquent. Un ports: - "5432:5432" dans un fichier compose ouvre donc la base à tout Internet, même avec ufw actif et aucune règle pour ce port.

Pour qu'un conteneur ne soit joignable que depuis le serveur, publiez-le sur 127.0.0.1 :

services:
  base:
    image: postgres:17
    ports:
      - "127.0.0.1:5432:5432"

Mieux encore, ne publiez rien : les conteneurs d'un même fichier compose se joignent par leur nom de service, sans port publié. Voir Docker Compose : décrire et lancer vos conteneurs.

Le pare-feu de l'hébergeur

Beaucoup d'hébergeurs placent un pare-feu réseau devant le serveur, réglé depuis leur interface. Ce pare-feu agit avant que le trafic n'atteigne le serveur, et il s'applique aussi aux ports publiés par Docker. Si un port reste fermé alors que le service écoute et qu'ufw l'autorise, c'est souvent là qu'il faut regarder.

Vérifier depuis l'extérieur

Depuis votre ordinateur, et non depuis le serveur, testez le port :

nc -zv 203.0.113.10 8080

« succeeded » ou « open » indique que le port répond. Un délai dépassé signifie qu'un pare-feu bloque encore, un refus qu'il n'y a rien derrière.

Sur un VPS Hubspace

Un pare-feu réseau est placé devant votre serveur : seuls les ports 22 (SSH), 80 (HTTP) et 443 (HTTPS) sont ouverts depuis Internet. Tous les autres sont fermés, y compris ceux que Docker publie, ce qui vous protège du piège décrit plus haut. Il n'y a pas d'ufw sur le serveur : le filtrage se fait en amont. Les connexions SSH répétées sont bloquées par fail2ban, actif à la livraison.

Pour ouvrir un autre port, rendez-vous dans votre espace client Hubspace, sur votre VPS, onglet « Firewalls » : vous créez un pare-feu avec votre règle, et elle s'ajoute aux nôtres. Les ports 25 et 465 sortants restent bloqués contre le spam : une application qui envoie des courriels passe par un service d'envoi.

Questions fréquentes

Pourquoi mon port reste-t-il fermé alors qu'ufw l'autorise ?

Trois causes, dans cet ordre : le service n'écoute que sur 127.0.0.1 (vérifiez avec sudo ss -tlnp), un pare-feu de l'hébergeur bloque en amont, ou votre propre réseau bloque le port en sortie. Testez depuis une autre connexion pour écarter la dernière.

Faut-il changer le port de SSH ?

Ça réduit le bruit dans les journaux, pas le risque. Une connexion par clé seulement, avec un outil comme fail2ban qui bannit les adresses trop insistantes, protège bien mieux qu'un port déplacé.

Comment ouvrir un port pour une seule adresse IP ?

Avec ufw : sudo ufw allow proto tcp from 198.51.100.7 to any port 5432. Dans le pare-feu d'un hébergeur, en indiquant l'adresse source dans la règle. C'est la bonne façon d'ouvrir une base de données ou une interface d'administration à votre seul bureau.

Articles liés