Comment configurer un pare-feu sur un serveur Ubuntu
Publié : 15 février 2025 à 21:33:42 UTC
Dernière mise à jour : 12 janvier 2026 à 08:37:01 UTC
Cet article explique et fournit quelques exemples de configuration d'un pare-feu sous GNU/Linux à l'aide d'ufw, abréviation de Uncomplicated FireWall (Pare-feu simple) - et le nom est tout à fait approprié, car il s'agit d'un moyen très simple de s'assurer de ne pas avoir plus de ports ouverts que nécessaire.
How to Set Up a Firewall on Ubuntu Server
Les informations de cet article sont basées sur Ubuntu Server 14.04 x64. Leur validité pour d'autres versions n'est pas garantie. (Mise à jour : Je confirme que ces informations restent globalement valides et fonctionnelles jusqu'à Ubuntu Server 24.04. Cependant, au cours des dix dernières années, ufw a évolué et propose désormais des profils pour les applications serveur courantes (par exemple, vous pouvez activer « Nginx en mode complet » au lieu des ports 80 et 443 séparément). Il n'est donc plus nécessaire de désactiver puis de réactiver l'ensemble du pare-feu pour appliquer les nouvelles règles.)
Lorsque j'ai commencé à utiliser des serveurs GNU/Linux (Ubuntu), la configuration d'un pare-feu impliquait la création et la maintenance manuelles d'un fichier de configuration iptables potentiellement complexe. Cependant, j'ai récemment découvert ufw, abréviation de Uncomplicated Firewall (pare-feu simple) – et c'est vraiment le cas ! :-)
Mon installation d'Ubuntu Server 14.04 avait déjà ufw installé, mais si ce n'est pas le cas sur la vôtre, installez-le simplement depuis les dépôts :
UFW est en réalité un outil qui simplifie la configuration d'iptables. En coulisses, ce sont toujours iptables et le pare-feu du noyau Linux qui assurent le filtrage ; UFW n'est donc ni plus ni moins sécurisé que ces derniers. Cependant, comme UFW facilite grandement la configuration correcte d'un pare-feu, il peut réduire le risque d'erreur humaine et s'avérer ainsi potentiellement plus sûr pour les administrateurs novices.
Si votre serveur est configuré avec IPv6 et IPv4, assurez-vous que ces protocoles sont également activés pour UFW. Modifiez le fichier `/etc/default/ufw` et recherchez la ligne `IPV6=yes`. Sur mon installation, cette ligne était déjà présente ; si ce n'est pas le cas ou si la valeur est « no », vous devez la modifier.
Il vous suffit ensuite d'utiliser l'invite de commandes pour activer les ports que vous souhaitez ouvrir. Si vous êtes connecté à votre serveur via SSH, assurez-vous d'autoriser également cette connexion, sinon cela pourrait interrompre votre connexion et vous empêcher d'accéder à votre serveur lors de l'activation. Selon que vous ayez ou non un accès physique au serveur, cela pourrait s'avérer plutôt gênant ;-)
Par exemple, si vous utilisez ssh sur le port standard 22 et que vous configurez un serveur web qui prend en charge les connexions non chiffrées (HTTP sur le port 80) et chiffrées (HTTPS sur le port 443), vous devez exécuter les commandes suivantes pour configurer ufw :
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Si vous avez besoin de règles supplémentaires, ajoutez-les simplement comme indiqué ci-dessus.
Si vous disposez d'une adresse IP statique et que vous n'avez besoin de pouvoir vous connecter via SSH que depuis un seul emplacement, vous pouvez également limiter les connexions SSH à une seule adresse d'origine comme ceci :
Bien sûr, saisissez plutôt votre propre adresse IP.
Une fois terminé, activez ufw en saisissant :
Et voilà ! Le pare-feu est opérationnel et se réactivera automatiquement au redémarrage de votre serveur :-)
Si vous modifiez la configuration d'ufw, vous devrez peut-être la désactiver puis la réactiver pour que les modifications soient prises en compte, comme ceci :
sudo ufw enable
Pour consulter la configuration actuelle, il suffit de saisir :
Si ufw n'est pas activé, un message « inactif » s'affichera simplement ; sinon, la liste des règles actuellement définies sera affichée.
