Comment configurer un pare-feu sur Ubuntu Server
Publié : 15 février 2025 à 21 h 40 min 38 s UTC
Cet article explique et fournit quelques exemples sur la façon de configurer un pare-feu sur GNU/Linux en utilisant ufw, qui est l'abréviation de Uncomplicated FireWall - et le nom est approprié, c'est vraiment un moyen très simple de vous assurer de ne pas avoir plus de ports ouverts que nécessaire.
How to Set Up a Firewall on Ubuntu Server
Les renseignements contenus dans cet article sont basés sur Ubuntu Server 14.04 x64. Cela peut être valable ou non pour d'autres versions. (Mise à jour : je peux confirmer que les informations contenues dans ce message sont fondamentalement toujours valables et fonctionnelles à partir d'Ubuntu Server 24.04, cependant, au cours des 10 années intermédiaires, ufw est devenu quelque peu « plus intelligent » en ayant des profils pour les applications serveur courantes (par exemple, vous pouvez activer « Nginx full » au lieu des ports 80 et 443 séparément) et désactiver/activer l'ensemble du pare-feu pour que de nouvelles règles soient appliquées n'est plus nécessaire )
Lorsque j'ai commencé à utiliser les serveurs GNU/Linux (Ubuntu), la configuration d'un pare-feu impliquait la création et la maintenance manuelles d'un fichier de configuration potentiellement complexe pour iptables. Cependant, j'ai récemment découvert ufw , qui est l'abréviation de Uncomplicated Firewall – 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, installez-le simplement à partir des référentiels :
UFW n'est en fait qu'un outil qui simplifie la configuration d'iptables. Cependant, comme ufw facilite grandement la configuration correcte d'un pare-feu, il peut réduire le risque d'erreur humaine et est donc probablement plus sécuritaire pour les administrateurs inexpérimentés.
Si votre serveur est configuré avec IPv6 ainsi qu'IPv4, assurez-vous que cela est également activé pour UFW. Modifiez le fichier /etc/default/ufw et trouvez une ligne indiquant IPV6=yes . Sur mon installation, il était déjà là, mais s'il n'y est pas ou s'il dit non, vous devez le modifier
Utilisez ensuite simplement l'invite de commandes pour activer les ports que vous voulez ouvrir. Si vous êtes connecté à votre serveur via ssh, assurez-vous de l'autoriser également, sinon cela pourrait perturber votre connexion et éventuellement vous bloquer l'accès à votre serveur lorsque vous l'activez - selon que vous ayez ou non un accès physique au serveur, cela peut être un peu 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 ci-dessus.
Si vous avez une adresse IP statique et que vous n'avez besoin de vous connecter via SSH qu'à partir d'un seul emplacement, vous pouvez également restreindre les connexions SSH à une seule adresse d'origine comme ceci :
Bien sûr, entrez plutôt votre propre adresse IP.
Une fois terminé, activez ufw en entrant :
Et c'est fait ! Le pare-feu est en cours d'exécution et démarrera automatiquement lorsque vous redémarrerez votre serveur :-)
Si vous apportez des modifications à la configuration ufw, vous devrez peut-être la désactiver et la réactiver pour les appliquer, comme ceci :
sudo ufw enable
Pour voir la configuration actuelle, entrez simplement :
Si ufw n'est pas activé, cela affichera simplement un message « inactif », sinon il listera les règles actuellement définies.