Comment configurer le pare-feu UFW sur Linux

Sans pare-feu, il n’y a pas de règles ni de restrictions sur le trafic de votre réseau, ce qui entraîne un certain nombre de conséquences négatives. Le système Linux est livré avec un outil de configuration de pare-feu par défaut, appelé Uncomplicated Firewall (UFW). Mais comment configurer un pare-feu UFW ? Asseyez-vous et détendez-vous, ce tutoriel s’occupe de tout !

Dans ce tutoriel, vous apprendrez comment configurer UFW et mettre en place un pare-feu sur votre système Linux pour sécuriser votre réseau et vous protéger contre des actes malveillants.

Prêt ? Continuez la lecture pour commencer !

Prérequis

Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous d’avoir ce qui suit :

  • Une machine Ubuntu – Ce tutoriel utilise Ubuntu 20.04 LTS, mais d’autres distributions Linux fonctionneront.

Installation de UFW et activation de la connexion IPv6

Même si UFW est livré avec votre système Ubuntu, il n’est pas installé par défaut. Installez d’abord UFW avec le gestionnaire de paquets apt et configurez-le pour autoriser les connexions sur IPv6.

1. Ouvrez votre terminal et exécutez la commande apt update ci-dessous pour mettre à jour votre index de paquets local. La commande accepte toutes les invitations (-y) pendant la mise à jour pour moins d’intervention de l’utilisateur.

sudo apt update -y
Updating the System Package

2. Ensuite, exécutez la commande ci-dessous pour installer UFW (install uwf) sur votre système tout en acceptant toutes les invitations (-y) pendant l’installation.

sudo apt install ufw -y
Installing UFW on Ubuntu

3. Ouvrez le fichier de configuration UFW (/etc/default/ufw) avec votre éditeur de texte préféré. UFW prend en charge IPv6, mais vous devez vous assurer que le pare-feu est configuré pour accepter les connexions via IPv6.

Si vous n’avez activé que IPv4, vous vous exposez encore aux attaques IPv6.

4. Faites défiler jusqu’à la variable IPV6 et définissez la valeur sur yes, comme indiqué ci-dessous, puis enregistrez les modifications et quittez l’éditeur

Enabling IPV6 in the UFW Configuration File

5. Enfin, exécutez la commande ci-dessous pour désactiver et réactiver UFW. La commande redémarre le service UFW afin que les modifications puissent prendre effet.

Une fois la commande terminée, votre pare-feu peut désormais écrire à la fois des ensembles de règles de pare-feu IPv4 et IPv6.

sudo ufw disable && sudo ufw enable

Configuration des politiques par défaut pour les règles de pare-feu

Si vous commencez tout juste avec UFW, il est recommandé de configurer une politique par défaut pour vos règles. Les politiques par défaut sont appliquées à une chaîne qui n’a pas encore de règles spécifiques définies.

Configurez UFW pour refuser toutes les connexions entrantes et autoriser toutes les connexions sortantes. En conséquence, toute personne essayant d’atteindre votre machine depuis le monde extérieur se voit refuser l’accès, tandis que vous pouvez toujours vous connecter librement à n’importe quel site Web ou serveur.

Exécutez la commande ufw ci-dessous pour refuser toutes les connexions entrantes par défaut.

sudo ufw default deny incoming
Denying Incoming Network Traffics

Ensuite, exécutez la commande suivante pour autoriser toutes les connexions sortantes par défaut.

sudo ufw default allow outgoing
Allowing Outgoing Network Traffics

Autoriser les connexions SSH sur le pare-feu UFW

Vous venez de définir des politiques par défaut sur votre pare-feu UFW pour refuser tout le trafic entrant, et la règle « autoriser tout-refuser tout » est une bonne configuration pour un utilisateur régulier. Mais que se passe-t-il si vous exécutez un serveur? Vous devrez autoriser des flux spécifiques. Autoriser la connexion SSH sur votre pare-feu UFW fera l’affaire pour permettre le trafic spécifique d’entrée et de sortie.

Vous allez configurer un serveur SSH qui autorise les connexions SSH entrantes sur le port 22. Mais pourquoi le port 22 et pas un autre port? Sur les systèmes de type Unix, le démon SSH écoute sur le port 22 par défaut, il est donc bon de suivre la pratique habituelle en utilisant le port SSH par défaut pour faciliter un peu les choses.

1. Exécutez les commandes ci-dessous pour installer le serveur OpenSSH (install openssh-server) sur votre système et démarrer un serveur OpenSSH (start ssh).

sudo apt install openssh-server -y
sudo systemctl start ssh

2. Maintenant, exécutez la commande ci-dessous pour autoriser les connexions SSH entrantes. Il suffit de ne pas spécifier le port 22, car UFW sait quel port utiliser pour SSH.

sudo ufw allow ssh
Allowing SSH connection

Le fichier /etc/services contient une liste de tous les services disponibles sur votre système. Ouvrez le fichier dans votre éditeur de texte, descendez jusqu’à ssh et vérifiez que le numéro de port (22) fait partie de la description du service, comme indiqué ci-dessous.

Previewing the /etc/services file

Mais peut-être préférez-vous spécifier le numéro de port (22) pour autoriser SSH. Si c’est le cas, exécutez plutôt la commande suivante.

sudo ufw allow 22

3. Maintenant, exécutez la commande ci-dessous pour activer UFW.

sudo ufw enable

Tapez Y lors de la demande de confirmation, comme indiqué ci-dessous, puis appuyez sur Entrée pour continuer l’exécution de la commande. UFW filtrera maintenant les paquets sur votre système.

Enabling UFW

4. Enfin, exécutez l’une des commandes ci-dessous pour vérifier l’état de votre pare-feu UFW.

## Affiche des informations plus détaillées, telles que l'interface et 
## la progression actuelle du paquet
sudo ufw status verbose
## Montre chaque règle avec un numéro et le statut d'acceptation ou de refus correspondant 
## Le mode numéroté est utile lorsque vous essayez de supprimer une règle ici et là
sudo ufw status numbered

Si vous exécutez la commande avec l’option verbose, vous verrez une sortie similaire à celle ci-dessous :

  • État : actif – Indique que le pare-feu est actuellement en cours d’exécution.
  • Journalisation : activée (faible) – Indique que UFW enregistre tous les paquets traités par le pare-feu.
  • Par défaut : refuser (entrant), autoriser (sortant), désactivé (routé) – Indique que la politique par défaut est de refuser toutes les connexions entrantes et d’autoriser toutes les connexions sortantes.
  • Nouveaux profils : ignorer – Indique que le pare-feu utilise actuellement l’ensemble de règles par défaut.
Checking verbose UFW firewall status

Si vous exécutez la commande avec l’option numbered, vous verrez la sortie ci-dessous. Vous pouvez voir une liste de règles numérotées et leur statut correspondant AUTORISER ou REFUSER.

Viewing the UW Firewall status in a numbered list

Autoriser les connexions HTTP et HTTPS

À ce stade, vous avez seulement autorisé les connexions SSH sur votre pare-feu UFW, mais cela limite les capacités de votre serveur. Autorisez d’autres types de connexions, telles que HTTP ou HTTPS, et ajoutez plus de règles au pare-feu UFW.

Exécutez l’une des commandes suivantes pour autoriser les connexions HTTP entrantes.

## La connexion HTTP utilise le port 80 (non sécurisé)
sudo ufw allow 80
sudo ufw allow http
Allowing HTTP connections

Maintenant, exécutez l’une des commandes ci-dessous pour autoriser les connexions HTTPS entrantes.

sudo ufw allow https
## La connexion HTTPS utilise le port 443 (sécurisé)
sudo ufw allow 443
Allowing incoming HTTPS connections.

Autoriser les connexions à partir d’une plage de ports spécifique et d’une adresse IP

Certaines applications utilisent plusieurs ports pour fournir leurs services. Et peut-être que vous avez une plage de ports à ouvrir ou vous devez autoriser la connexion à partir d’une adresse IP spécifique. Dans ce cas, ajoutez davantage de règles au pare-feu UFW.

Exécutez les commandes ci-dessous pour autoriser les connexions entrantes sur les ports 5001 à 5009. Vous devez toujours spécifier le protocole (tcp ou udp) après la plage de ports auxquels les règles s’appliquent car tous les ports ne sont pas utilisés par les deux protocoles.

Par exemple, les ports TCP couramment utilisés incluent 80 (HTTP) et 443 (HTTPS). Mais les ports UDP courants incluent 53 (DNS) et 67/68 (DHCP).

sudo ufw allow 5001:5010/tcp
sudo ufw allow 5001:5010/udp
Allowing traffic on 5001:5010 port range

Exécutez la commande ci-dessous si vous préférez autoriser les connexions SSH à partir d’une adresse IP spécifique. La commande autorise les connexions SSH (port 22) uniquement depuis l’adresse IP 192.168.1.2.

sudo ufw allow from 192.168.1.2 to any port 22
Allowing SSH Connections from Specific IP Address

Autorisation du trafic depuis une interface réseau spécifique

UFW vous permet également d’autoriser le trafic sur une interface réseau spécifique uniquement, par exemple eth0 est la première interface Ethernet et wlan0 est la première interface Wi-Fi.

Exécutez l’une des commandes ci-dessous pour autoriser les connexions HTTP uniquement sur les interfaces eth0 et wlan0.

## Autoriser la connexion HTTP uniquement sur l'interface eth0
sudo ufw allow in on eth0 to any port 80
## Autoriser la connexion HTTP uniquement sur l'interface wlan0
sudo ufw allow in on wlan0 to any port 80
Allowing traffic on a specific interface

Suppression des règles du pare-feu UFW

Peut-être que certaines règles du pare-feu UFW ne servent plus à rien. Dans ce cas, vous pourriez vouloir supprimer certaines des règles de UFW. Mais d’abord, vous devez connaître soit le numéro soit le nom de la règle à supprimer.

1. Exécutez la commande ci-dessous pour obtenir une liste numérotée des règles ajoutées à UFW.

sudo ufw status numbered

Notez le numéro ou le nom de la règle dans la sortie, comme celui ci-dessous.

Previewing all the rules

2. Ensuite, exécutez la commande ci-dessous pour supprimer la règle numéro 4, qui est la plage de ports 5001:5010/tcp.

sudo ufw delete 4
Deleting a Rule by Rule Number

3. Exécutez la commande ci-dessous pour supprimer une règle par son nom réel avec le statut allow. Dans cet exemple, vous supprimeriez la règle http en exécutant la commande suivante.

sudo ufw delete allow http
Deleting a Rule by Rule Name (http)

4. Maintenant, exécutez la commande suivante pour supprimer une règle en spécifiant un numéro de port (443) avec le statut allow.

sudo ufw delete allow 443
Deleting a Rule by Port Number (443)

5. Enfin, réexécutez la commande suivante comme vous l’avez fait à l’étape un pour lister toutes les règles.

sudo ufw status numbered

Comme vous pouvez le voir ci-dessous, les règles pour la plage de ports 5001:5010/tcp, le port http et le port 443 ont maintenant disparu.

Checking the firewall rules

Réinitialisation du pare-feu UFW

Il peut arriver des moments où vous avez besoin de réinitialiser UFW à ses paramètres par défaut, comme après avoir configuré un grand ensemble de règles. Une mise à jour peut changer votre configuration, vous obligeant à reconfigurer UFW et éventuellement à recommencer à zéro.

Exécutez la commande ufw reset ci-dessous pour réinitialiser toutes vos règles de pare-feu à leurs paramètres par défaut. Cette commande désactive UFW et supprime toutes vos règles de pare-feu actuelles.

sudo ufw reset

Tapez ‘Y’ et appuyez sur Entrée pour continuer à réinitialiser votre pare-feu UFW.

Resetting UFW

Une fois la réinitialisation terminée, vous disposerez d’une nouvelle installation de UFW entièrement désactivée, et même vos politiques par défaut auront disparu.

Maintenant, exécutez la commande ci-dessous pour réactiver UFW et commencer à configurer vos règles de pare-feu à partir de zéro.

sudo ufw enable

Si vous décidez de ne plus utiliser UFW, alors il n’est pas nécessaire de le réactiver. Ou exécutez la commande ci-dessous pour vous assurer que UFW est désactivé.

sudo ufw disable
Disabling UFW firewall

Conclusion

Tout au long de ce tutoriel, vous avez réalisé que la configuration d’un pare-feu n’est pas trop intimidante lors de l’utilisation de UFW. Vous devriez maintenant avoir une bonne compréhension de comment mettre en place et implémenter vos propres règles avec UFW sur Ubuntu.

Maintenant, pourquoi ne pas développer vos connaissances nouvellement acquises en apprenant davantage sur la sécurité UFW et Docker sur une machine Linux?

Source:
https://adamtheautomator.com/ufw-firewall/