Introducing ZYNOO General Purpose & CPU Optimized Servers   Learn More >

Pare-feu Ubuntu : comment configurer UFW sur un VPS

Configurer le pare-feu Ubuntu avec UFW (Uncomplicated Firewall) permet de protéger votre VPS en autorisant les connexions essentielles et en bloquant le trafic entrant inutile. Quelques commandes suffisent, mais leur ordre est important : autorisez SSH avant d’activer le pare-feu, faute de quoi vous pourriez perdre l’accès à distance.

Ce tutoriel vous montre comment installer UFW, définir des règles par défaut sûres, ouvrir les ports nécessaires à votre site web, activer le pare-feu, puis gérer ses règles.

Points clés à retenir

  • UFW permet de gérer simplement le pare-feu Ubuntu en ligne de commande.
  • Autorisez le port SSH que vous utilisez réellement avant d’activer UFW sur un VPS distant.
  • Bloquez par défaut le trafic entrant non sollicité, puis ouvrez uniquement les ports nécessaires à vos services.
  • Vérifiez l’accès depuis une seconde connexion et passez les règles en revue chaque fois que vous ajoutez ou supprimez des applications.

Qu’est-ce qu’UFW sur Ubuntu ?

UFW est un outil de configuration de pare-feu qui gère les règles du système de filtrage des paquets du noyau Linux. Plutôt que d’écrire des règles de bas niveau, vous pouvez autoriser ou refuser des connexions avec des commandes comme ufw allow et ufw delete.

Sur un VPS d’hébergement web classique, vous autoriserez SSH pour l’administration et les ports 80 et 443 pour les visiteurs. Les ports des bases de données et des applications internes doivent généralement rester inaccessibles depuis Internet.

Avant de configurer le pare-feu Ubuntu

Vous aurez besoin d’un VPS Ubuntu avec un accès sudo et une connexion SSH fonctionnelle. Si vous débutez dans l’administration à distance, consultez le guide de ZYNOO sur les commandes SSH pour débutants.

Gardez votre session SSH actuelle ouverte. Vérifiez que la console web ou de récupération de votre fournisseur de VPS fonctionne. Les pare-feu réseau gérés par le fournisseur sont distincts d’UFW et peuvent également nécessiter des règles adaptées.

Ces instructions supposent qu’UFW vient d’être installé ou qu’il est inactif. Si UFW est déjà actif, examinez ses règles et les besoins de vos services avant de modifier la politique par défaut.

Configuration du pare-feu d’un VPS Ubuntu avec UFW

Étape 1 : vérifier et installer UFW

Vérifiez si UFW est disponible :

sudo ufw status

Status: inactive signifie qu’UFW est installé, mais n’applique pas de règles. Si la commande est introuvable, installez-le :

sudo apt update
sudo apt install ufw

N’activez pas encore le pare-feu.

Étape 2 : autoriser SSH avant d’activer UFW

Trouvez le port TCP sur lequel SSH écoute :

sudo ss -ltnp

Comparez le résultat au port utilisé par votre client SSH. Le port 22 est courant, mais votre VPS peut utiliser un autre port.

Si SSH utilise le port 22, exécutez :

sudo ufw allow 22/tcp

Si SSH utilise en réalité un port personnalisé, comme 2222, autorisez plutôt ce port :

sudo ufw allow 2222/tcp

Le port 2222 est un exemple, pas un port supplémentaire que tout le monde devrait ouvrir. Passez en revue les règles en attente :

sudo ufw show added

Étape 3 : définir les règles par défaut et vérifier IPv6

Définissez une politique qui bloque par défaut les connexions entrantes, tout en autorisant le VPS à établir des connexions sortantes :

sudo ufw default deny incoming
sudo ufw default allow outgoing

Si votre VPS dispose d’une connectivité IPv6 publique, vérifiez qu’UFW la prend en charge :

grep '^IPV6=' /etc/default/ufw

Le paramètre attendu est IPV6=yes. Si IPv6 est utilisé, mais que ce paramètre est défini sur no, modifiez /etc/default/ufw pour activer la prise en charge d’IPv6 avant d’activer le pare-feu.

Étape 4 : ouvrir les ports nécessaires à votre site web

Si le VPS héberge un site web public, autorisez HTTP et HTTPS avant d’activer UFW :

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Voici les ports courants pour un VPS Ubuntu :

ServicePortProtocole
SSH22 (ou votre port personnalisé)TCP
HTTP80TCP
HTTPS443TCP

Pour une application publique utilisant un autre port TCP, voici la syntaxe permettant d’autoriser ce port avec UFW :

sudo ufw allow 8080/tcp

N’exécutez cet exemple que si votre service doit être accessible de l’extérieur sur le port 8080. Pour un service UDP, indiquez plutôt /udp, par exemple sudo ufw allow 51820/udp pour un point de terminaison WireGuard configuré sur ce port.

Vous pouvez également consulter les profils d’application disponibles :

sudo ufw app list

Si Nginx Full figure dans la liste, vérifiez ses ports avec sudo ufw app info 'Nginx Full'. La commande sudo ufw allow 'Nginx Full' peut remplacer les deux règles ci-dessus pour les ports du site web ; il n’est pas nécessaire d’utiliser les deux méthodes. Les applications derrière un proxy inverse Nginx local ne devraient généralement pas exposer publiquement leur port backend.

Étape 5 : activer UFW et vérifier le pare-feu

Une fois SSH et tous les ports nécessaires à vos services autorisés, activez UFW :

sudo ufw enable

Un avertissement peut indiquer que l’opération risque d’affecter SSH. Ne poursuivez qu’après avoir vérifié votre règle SSH et votre accès à la console de récupération. Vérifiez les règles actives :

sudo ufw status verbose

Vous devriez voir Status: active, les politiques par défaut et les ports autorisés. UFW s’activera également au démarrage.

Avant de fermer votre session SSH initiale, connectez-vous à nouveau depuis un second terminal. Depuis votre ordinateur, utilisez ssh -p 22 username@server-ip en remplaçant le nom d’utilisateur, l’adresse et le port selon vos besoins. Si vous avez ouvert les ports 80 et 443, testez aussi l’accès à votre site web depuis l’extérieur. Une règle ALLOW ne suffit pas à prouver que le service est accessible.

Étape 6 : gérer, restreindre et supprimer les règles UFW

Pour afficher les règles du pare-feu avec leurs numéros :

sudo ufw status numbered

Pour supprimer une ancienne règle d’autorisation, par exemple celle du port TCP 8080 :

sudo ufw delete allow 8080/tcp

Vous pouvez aussi supprimer une règle par son numéro (sudo ufw delete 3), mais consultez d’abord la liste à jour : la numérotation peut changer, et la suppression par numéro peut ne retirer qu’une seule règle d’une paire IPv4/IPv6.

Facultatif : restreindre SSH à votre adresse IP

Si votre adresse IP d’administration est stable, vous pouvez limiter l’accès SSH à cette adresse. Par exemple :

sudo ufw allow from 203.0.113.10 to any port 22 proto tcp

Remplacez l’adresse IP de l’exemple par votre véritable adresse IP publique. Testez une nouvelle connexion depuis cette adresse, puis supprimez l’ancienne règle générale avec sudo ufw delete allow 22/tcp. Si vous conservez cette règle générale, tout le monde pourra encore se connecter. Gardez la session initiale et la console de récupération accessibles pendant toute l’opération.

Facultatif : limiter la fréquence des tentatives de connexion SSH

Autre possibilité : si SSH doit rester accessible depuis des adresses IP changeantes, remplacez la règle d’autorisation générale par une limite de fréquence des connexions :

sudo ufw limit 22/tcp
sudo ufw delete allow 22/tcp
sudo ufw status numbered

Ne le faites qu’après avoir vérifié que votre connexion SSH et votre accès à la console de récupération fonctionnent. Si votre port SSH n’est pas le 22, utilisez le port réel. Testez ensuite une autre connexion. Il s’agit d’une alternative à l’accès limité à une seule adresse IP, et non d’une mesure à combiner avec lui. La limitation de fréquence ne remplace pas l’authentification par clé SSH.

Étape 7 : consulter les journaux et résoudre les problèmes d’accès

Activez la journalisation de base lorsque vous devez examiner du trafic bloqué :

sudo ufw logging on
sudo ufw status verbose

Selon votre configuration de journalisation, les journaux UFW peuvent se trouver dans le journal système ou dans /var/log/ufw.log.

Si SSH devient inaccessible, utilisez la console de récupération de votre fournisseur pour examiner les règles actives. En cas d’urgence, sudo ufw disable désactive temporairement l’application des règles ; corrigez ensuite la règle SSH et réactivez UFW.

Si votre site web ne se charge pas, vérifiez les services à l’écoute avec sudo ss -ltnp, les règles UFW et tout pare-feu géré par votre fournisseur. Ouvrir un port ne démarre pas le service qui l’utilise.

Questions fréquentes

Le pare-feu Ubuntu démarre-t-il automatiquement après un redémarrage ?

Oui. Après l’exécution de sudo ufw enable, UFW sera activé lors des démarrages suivants. Vérifiez sa configuration avec sudo ufw status verbose.

Dois-je redémarrer Ubuntu après avoir modifié les règles UFW ?

Non. Les règles ajoutées ou supprimées avec UFW prennent effet sans redémarrage du VPS. Vous pouvez examiner immédiatement la configuration en cours.

Le pare-feu UFW protège-t-il les conteneurs Docker ?

Pas nécessairement. Les ports publiés par Docker peuvent contourner les règles d’entrée habituelles d’UFW, car Docker configure ses propres règles réseau. Consultez la documentation de Docker sur les pare-feu avant de compter sur UFW pour restreindre l’accès aux conteneurs.

Conclusion

Pour configurer un pare-feu Ubuntu sûr avec UFW, commencez par autoriser SSH, définissez une politique qui bloque par défaut les connexions entrantes et n’ouvrez que les ports nécessaires à vos applications. Après avoir activé UFW, vérifiez l’accès depuis une autre connexion et supprimez les règles devenues inutiles à mesure que votre VPS évolue.

UFW gère l’accès réseau, pas les abus au niveau des applications. Pour les sites web publics utilisant Nginx, la limitation de la fréquence des requêtes constitue une protection supplémentaire utile.

Table of Content

La limitation du débit avec Nginx est une fonctionnalité intégrée qui contrôle le nombre de

Un proxy inverse Nginx reçoit les requêtes des visiteurs d’un site web et les transmet

Une erreur 502 Bad Gateway dans Nginx signifie généralement que Nginx n’a pas pu recevoir

Build your next project with ZYNOO

From your first website to demanding applications, choose the resources and control you need.

Shared Hosting

Start your blog or business website with cPanel, LiteSpeed and CloudLinux.

VPS Hosting

Grow your websites and applications with NVMe storage, KVM virtualization and full root access.

Dedicated Servers

Power demanding projects with your own physical server, dedicated resources and control over your environment.

Défiler vers le haut