Comment installer et configurer le pare-feu UFW sur Ubuntu et Debian
Puisque les ordinateurs sont connectés les uns aux autres, les services se développent rapidement, avec des exemples tels que le courrier électronique, les réseaux sociaux, le commerce en ligne, le chat et la vidéoconférence.
Cependant, cette connectivité est une arme à double tranchant, car elle ouvre également la porte à des activités malveillantes, y compris la transmission de virus, de logiciels malveillants et d'applications trojan, qui peuvent endommager les ordinateurs.
Pourquoi vous devriez installer un pare-feu
Internet, en tant que plus grand réseau informatique, n'est pas toujours rempli de bonnes personnes ; par conséquent, pour assurer la sécurité de nos ordinateurs et serveurs, nous devons les protéger.
Un composant essentiel pour sécuriser les ordinateurs ou les serveurs est un pare-feu, qui, selon Wikipédia, est :
En informatique, un pare-feu est un système de sécurité réseau basé sur un logiciel ou du matériel qui contrôle le trafic réseau entrant et sortant en analysant les paquets de données et en déterminant s'ils doivent être autorisés ou non, selon un ensemble de règles appliquées.
Iptables est un pare-feu largement utilisé pour les serveurs, gérant le trafic entrant et sortant en fonction d'un ensemble de règles, ne permettant que les connexions fiables. Cependant, IPTables fonctionne en mode console et peut être compliqué pour les débutants.
UFW : Une alternative plus simple à IPTables
Pour réduire la complexité de la configuration de IPTables, de nombreux front-ends ont été développés. Si vous utilisez Ubuntu ou Debian, vous trouverez UFW (Uncomplicated Firewall) comme outil de pare-feu par défaut.
UFW (Pare-feu Simplifié) est une interface frontale pour le pare-feu IPTables largement utilisé, qui fournit un cadre pour gérer netfilter et inclut une interface en ligne de commande pour contrôler le pare-feu.
UFW est conçu pour être facile à utiliser pour les débutants qui peuvent ne pas être familiers avec les concepts de pare-feu. En même temps, il permet aux utilisateurs avancés de configurer des règles complexes en utilisant le CLI.
UFW est disponible dans des distributions comme Debian, Ubuntu et Linux Mint.
Installation du pare-feu UFW
Avant d'utiliser UFW, vous devez vérifier s'il est déjà installé sur votre système en utilisant la commande suivante, qui listera tous les packages installés et filtrera les résultats pour montrer si UFW est installé ou non.
sudo dpkg --get-selections | grep ufw
Si UFW n'est pas installé, vous pouvez facilement l'installer en exécutant :
sudo apt install ufw
Une fois UFW installé, il est important de vérifier son état actuel pour voir s'il est activé ou désactivé.
sudo ufw status
Si UFW est inactif, vous devez l'activer pour commencer à protéger votre système.
sudo ufw enable
Si jamais vous devez désactiver l’UFW, vous pouvez le faire en utilisant la commande simple suivante.
sudo ufw disable
Lister les règles UFW actuelles
Une fois que votre pare-feu est activé, vous pouvez commencer à ajouter des règles personnalisées pour contrôler le trafic entrant et sortant. Pour vérifier l'état actuel de votre pare-feu et voir les règles en place (y compris les paramètres par défaut), vous pouvez utiliser la commande suivante :
sudo ufw status verbose
Explication de la sortie :
Statut : actif: Cela signifie que le pare-feu est actuellement actif et applique les règles que vous avez définies.Journalisation : activée (faible): Cela signifie que le pare-feu enregistrera les événements de base, tels que lorsqu'un paquet est autorisé ou bloqué.deny (code): Cela signifie qu'aucune connexion externe ne peut accéder à votre système sauf si elle est explicitement autorisée par une règle que vous ajoutez.allow (sortant): Cela signifie que votre système peut se connecter librement à des serveurs externes, comme accéder à des sites web ou envoyer des e-mails.deny (routé): Cela indique que le trafic routé à travers votre système (c'est-à-dire le trafic ne provenant pas directement de votre machine) sera bloqué par défaut.Nouveaux profils : ignorer: Ce paramètre ignore les ajouts automatiques de règles pour les nouveaux profils logiciels, et toute application nouvellement installée nécessitera une intervention manuelle pour ajouter des règles de pare-feu.
Comment Ajouter des Règles UFW
Par défaut, UFW est configuré pour refuser toutes les connexions entrantes et autoriser toutes les connexions sortantes, ce qui est une bonne pratique de sécurité car cela empêche les accès non autorisés tout en permettant à votre ordinateur de se connecter à Internet.
Cependant, si vous souhaitez accéder à votre machine à distance, par exemple en utilisant SSH, vous devrez autoriser explicitement le port approprié.
Autoriser l'accès SSH
Pour permettre les connexions entrantes SSH (qui utilisent le port 22), exécutez la commande suivante, qui permettra les connexions entrantes sur le port 22 pour IPv4 et IPv6.
sudo ufw allow ssh
Vous pouvez vérifier si la règle a été ajoutée avec succès en utilisant :
sudo ufw status
Règles de liste avec des numéros
Si vous avez de nombreuses règles et que vous voulez les gérer plus facilement, vous pouvez utiliser l'option numérotée pour les lister :
sudo ufw status numbered
Autoriser uniquement TCP
Par défaut, autoriser un service comme SSH active à la fois les protocoles TCP et UDP, mais SSH utilise uniquement TCP, vous pouvez donc rendre la règle plus spécifique en n'autorisant que les connexions TCP :
sudo ufw allow ssh/tcp
Refus d'accès
Tout comme permettre l'accès à des services ou ports spécifiques, UFW vous permet également de refuser le trafic en utilisant une structure de commande très similaire. Refuser l'accès est important lorsque vous souhaitez bloquer explicitement un certain service ou une connexion d'atteindre votre système.
Disons que vous voulez bloquer FTP (qui fonctionne généralement sur le port 21) afin qu'il ne soit pas accessible sur votre machine.
sudo ufw deny ftp
Vous pouvez également utiliser un port ou une IP personnalisée avec la même syntaxe de refus :
sudo ufw deny from 192.168.1.10 to any port 21
Cette règle bloquera uniquement l'adresse IP spécifique 192.168.1.10 d'accéder au port 21.
Ajouter un port spécifique
Parfois, les services sur votre machine peuvent fonctionner sur des ports non standard ou personnalisés. Par exemple, par défaut, SSH fonctionne sur le port 22, mais pour des raisons de sécurité, de nombreux administrateurs changent ce port pour autre chose, comme 2290.
Pour autoriser le trafic via ce port personnalisé (2290), vous pouvez exécuter la commande suivante :
sudo ufw allow 2290
Autoriser une gamme de ports
Dans certains cas, vous pouvez vouloir ouvrir plusieurs ports à la fois, par exemple, si vous exécutez un service qui utilise une plage de ports pour la communication, comme certains serveurs de jeux ou applications VoIP.
Pour autoriser une plage de ports utilisant le protocole TCP :
sudo ufw allow 2290:2300/tcp
Pour permettre la même portée en utilisant le protocole UDP :
sudo ufw allow 2290:2300/udp
Lorsque vous spécifiez une plage de ports, vous devez également spécifier le protocole (tcp ou udp). Si vous ne le faites pas, vous obtiendrez une erreur comme celle-ci :
ERROR: Must specify 'tcp' or 'udp' with multiple ports
Ajout de règles pour des adresses IP spécifiques
Jusqu'à présent, nous avons ajouté des règles basées sur les services et les ports, mais cela vous permet également de contrôler l'accès en fonction des adresses IP, ce qui est utile si vous souhaitez restreindre l'accès à certaines machines de votre réseau.
Autoriser l'accès depuis une seule IP
Pour permettre à une adresse IP spécifique (par exemple, 192.168.0.104) d’accéder à n’importe quel service, utilisez :
sudo ufw allow from 192.168.0.104
Autoriser l'accès depuis un sous-réseau
Vous pouvez également autoriser l'accès depuis une plage d'adresses IP entière ou un sous-réseau. Par exemple, pour autoriser l'accès depuis n'importe quel appareil de la plage 192.168.0.0/24 :
sudo ufw allow from 192.168.0.0/24
Spécification du port de destination (Vers)
Vous pouvez également ajouter des règles qui contrôlent où le trafic est autorisé à aller, pas seulement d'où il provient. Par exemple, si vous voulez autoriser l'accès SSH (port 22) depuis n'importe où, vous écririez :
sudo ufw allow to any port 22
Combiner IP, protocole et port
Pour un contrôle encore plus précis, vous pouvez combiner tous les paramètres. Par exemple, autorisez uniquement le trafic TCP de l'IP 192.168.0.104 vers le port 22 :
sudo ufw allow from 192.168.0.104 proto tcp to any port 22
Suppression des règles UFW
À un moment donné, vous pourriez avoir besoin de supprimer les règles de pare-feu existantes — que ce soit pour le dépannage, le nettoyage des anciennes configurations ou le changement des permissions d'accès. Heureusement, UFW facilite cela.
Passons en revue deux méthodes courantes pour supprimer des règles.
Scénario d'exemple
Disons que vos règles de pare-feu actuelles ressemblent à ceci :
To Action From
-- ------ ----
22/tcp ALLOW 192.168.0.104
21/tcp ALLOW Anywhere
21/tcp ALLOW Anywhere (v6)
Dans ce cas :
- Le port 22/tcp (SSH) n'est autorisé qu'à partir de l'adresse IP 192.168.0.104
- Le port 21/tcp (FTP) est autorisé depuis n'importe où
Méthode 1 : Supprimer par service ou port
Si la règle a été ajoutée en utilisant un nom de service comme ftp, vous pouvez la supprimer avec la même syntaxe :
sudo ufw delete allow ftp
Cette méthode ne demande pas de confirmation. Une fois que vous appuyez sur Entrée, la règle est supprimée immédiatement.
Méthode 2 : Supprimer par numéro de règle
Parfois, supprimer une règle en utilisant le nom du service ou le port ne fonctionne pas, surtout lorsque la règle a été ajoutée avec des conditions spécifiques (par exemple, autorisée uniquement depuis une adresse IP particulière).
Vous pourriez voir cette erreur :
Could not delete non-existent rule
Could not delete non-existent rule (v6)
Dans de tels cas, la meilleure option est de supprimer la règle par son numéro.
Étape 1 : Lister les règles avec des numéros
sudo ufw status numbered
Exemple de sortie :
To Action From
-- ------ ----
[1] 22/tcp ALLOW 192.168.0.104
[2] 21/tcp ALLOW Anywhere
[3] 21/tcp ALLOW Anywhere (v6)
Étape 2 : Supprimez la règle par son numéro
Pour supprimer la première règle (accès SSH depuis 192.168.0.104), exécutez :
sudo ufw delete 1
Vous verrez :
Deleting:
allow from 192.168.0.104 to any port 22 proto tcp
Proceed with operation (y|n)? y
Comment réinitialiser les règles UFW
Parfois, vous pourriez vouloir réinitialiser complètement la configuration de votre pare-feu, par exemple, si vous avez ajouté trop de règles et que les choses sont devenues désordonnées ou si vous voulez repartir à zéro.
Pour réinitialiser toutes les règles UFW et revenir à l'état par défaut, utilisez la commande suivante :
sudo ufw reset
Vous verrez une invite comme celle-ci :
Resetting all rules to installed defaults. Proceed with operation (y|n)? y
Si vous appuyez sur y, UFW fera ce qui suit :
- Sauvegardez vos règles existantes avant de les supprimer.
- Supprimez toutes les règles définies par l'utilisateur.
- Restaurer les paramètres de UFW aux valeurs par défaut installées.
- Désactivez le pare-feu automatiquement après la réinitialisation.
Après une réinitialisation, UFW est désactivé, vous devrez le réactiver en utilisant :
sudo ufw enable
Fonctionnalités avancées de UFW
Comme mentionné précédemment, UFW est une interface pour le puissant pare-feu IPTables. Bien qu'il soit conçu pour être simple, il est également très personnalisable en arrière-plan.
Les configurations avancées d'UFW sont gérées à travers une série de fichiers texte. Ces fichiers vous permettent de mettre en place des règles et des options qui vont au-delà de ce que l'outil en ligne de commande UFW peut faire. Voici un aperçu rapide :
Fichiers de configuration UFW importants :
- /etc/default/ufw : La configuration principale pour les politiques par défaut, le support IPv6 et les modules du noyau.
- /etc/ufw/before[6].rules : les règles dans ces fichiers sont calculées avant toute règle ajoutée via la commande ufw.
- /etc/ufw/after[6].rules : les règles dans ces fichiers sont calculées après toutes les règles ajoutées via la commande ufw.
- /etc/ufw/sysctl.conf : paramètres modifiables du noyau pour le réseau.
- /etc/ufw/ufw.conf : détermine si ufw est activé au démarrage et définit le NIVEAU DE JOURNALISATION.
Conclusion
UFW en tant qu'interface pour iptables constitue sûrement une interface facile pour l'utilisateur. Les utilisateurs n'ont pas besoin de se souvenir de la syntaxe compliquée d'iptables. UFW utilise également ‘l'anglais simple‘ comme paramètre.
Autoriser, refuser et réinitialiser en font partie. Je crois qu'il existe de nombreuses autres interfaces pour iptables. Mais ufw est l'une des meilleures alternatives pour les utilisateurs qui souhaitent configurer leur pare-feu rapidement, facilement et bien sûr de manière sécurisée. Veuillez consulter la page de manuel de ufw en tapant man ufw pour plus de détails.



