Recherche de site Web

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.