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

UFW : le pare-feu d'Ubuntu et ses limites

UFW, pour « Uncomplicated Firewall », est l'outil d'Ubuntu qui règle le pare-feu du système en quelques commandes : sudo ufw allow 22 ouvre le port SSH, sudo ufw enable met le pare-feu en marche. Il est installé mais désactivé par défaut. Sa limite : Docker publie ses ports en passant avant lui, et un conteneur reste joignable même quand UFW semble le bloquer. Sur un serveur Docker, un pare-feu placé en amont, dans l'infrastructure, est plus sûr.

Par Jonathan Dewaele · publié le

Les commandes suivent la page des pare-feu d'Ubuntu Server et la page de Docker sur le filtrage des paquets, relues le 14 octobre 2026.

Les commandes utiles

CommandeEffet
sudo ufw status verboseétat du pare-feu et règles en place
sudo ufw allow 22ouvre le port 22
sudo ufw allow proto tcp from 192.168.0.2 to any port 22ouvre le port 22 pour une seule adresse
sudo ufw deny 22ferme le port 22
sudo ufw delete deny 22retire une règle
sudo ufw status numberedrègles numérotées, pour les retirer par leur numéro
sudo ufw app listprofils d'applications connus
sudo ufw disablearrête le pare-feu

Les noms de service du fichier /etc/services remplacent les numéros : sudo ufw allow ssh revient à ouvrir le port 22.

Le mettre en marche sans se couper l'accès

Sur un serveur distant, l'ordre compte : activer UFW avant d'avoir ouvert SSH vous coupe de votre propre machine.

  1. Ouvrez d'abord SSH : sudo ufw allow 22.
  2. Ouvrez les ports de vos services, par exemple sudo ufw allow 80 et sudo ufw allow 443.
  3. Activez le pare-feu : sudo ufw enable.
  4. Vérifiez depuis une seconde session SSH, sans fermer la première, que vous pouvez toujours vous connecter.

Le piège de Docker

Docker publie les ports des conteneurs en réécrivant le trafic dans la table nat, avant que les règles d'UFW ne s'appliquent. La documentation de Docker le dit : les deux outils sont incompatibles, et le trafic d'un conteneur dont les ports sont publiés échappe aux réglages d'UFW. Concrètement, ports: - "5432:5432" dans un fichier compose expose la base de données sur Internet, même si ufw status affiche le port 5432 fermé.

Trois parades, de la plus simple à la plus technique :

  1. Ne pas publier ce qui doit rester privé. Les conteneurs d'un même fichier compose se joignent par leur nom, sans ports:. Pour un accès d'administration, publiez sur l'adresse locale : "127.0.0.1:5432:5432", puis passez par un tunnel SSH.
  2. Un pare-feu en amont du serveur, dans l'infrastructure de l'hébergeur, que Docker ne peut pas contourner puisqu'il n'est pas sur la machine.
  3. Des règles dans la chaîne `DOCKER-USER`, que Docker consulte avant ses propres règles. C'est la voie que décrit sa page sur iptables, mais elle demande de connaître iptables ou nftables.

Sur un VPS Hubspace

Nos VPS n'utilisent pas UFW, et c'est voulu. Le pare-feu est placé en amont du serveur, dans le réseau : il ne laisse passer que les ports 22, 80 et 443 en TCP, et il s'applique aussi aux ports que Docker publie. Une base de données lancée dans un conteneur n'est donc pas exposée par accident.

Pour ouvrir un autre port, vous ajoutez une règle dans l'onglet « Firewalls » de votre espace client, de préférence limitée à votre adresse IP. La marche à suivre est dans Ouvrir un port sur son VPS. Les tentatives de connexion répétées sur SSH sont, elles, traitées par fail2ban, installé à la livraison ; voir Fail2ban.

Vous pouvez installer UFW en plus, rien ne l'empêche, mais il ne protégera pas vos conteneurs et une erreur de règle peut vous couper l'accès SSH. Si vous le faites, gardez la règle allow 22 et ouvrez une seconde session avant d'activer. Les autres réglages de sécurité de la livraison sont détaillés dans Sécuriser un serveur VPS.

Questions fréquentes

UFW est-il actif par défaut sur Ubuntu ?

Non. La documentation d'Ubuntu indique qu'il est désactivé au départ. sudo ufw status répond « Status: inactive » tant que vous ne l'avez pas activé.

Me suis-je coupé l'accès en activant UFW : que faire ?

Si SSH n'était pas ouvert, la session tombe et aucune nouvelle connexion ne passe. Il faut un accès qui ne passe pas par SSH, comme la console de l'hébergeur, pour lancer sudo ufw allow 22 ou sudo ufw disable. Sur un VPS Hubspace, écrivez-nous depuis votre espace client.

UFW suffit-il à protéger un serveur ?

Il filtre les ports, ce qui est utile, mais il ne remplace ni les mises à jour, ni la connexion SSH par clé, ni la vigilance sur ce que vos conteneurs publient. Sur un serveur Docker, il ne voit même pas les ports publiés.

Articles liés