Comment configurer le pare-feu UFW sur Ubuntu et Debian

A correctly functioning firewall is the most crucial part of the complete Linux system security. By default, Debian and Ubuntu distribution comes with a firewall configuration tool called UFW (Uncomplicated Firewall), is a most popular and easy-to-use command line tool for configuring and managing a firewall on Ubuntu and Debian distributions.

Dans cet article, nous expliquerons comment installer et configurer un pare-feu UFW sur les distributions Ubuntu et Debian.

Prérequis

Avant de commencer cet article, assurez-vous d’être connecté à votre serveur Ubuntu ou Debian avec un utilisateur sudo ou avec le compte root. Si vous n’avez pas d’utilisateur sudo, vous pouvez en créer un en suivant les instructions suivantes en tant qu’utilisateur root.

# adduser username
# usermod -aG sudo username 
# su - username
$ sudo whoami

Installer le pare-feu UFW sur Ubuntu et Debian

Le UFW (Uncomplicated Firewall) devrait être installé par défaut dans Ubuntu et Debian. Sinon, installez-le en utilisant le gestionnaire de paquets APT avec la commande suivante.

$ sudo apt install ufw

Vérifier le pare-feu UFW

Une fois l’installation terminée, vous pouvez vérifier l’état de UFW en tapant la commande suivante.

$ sudo ufw status verbose

Lors de la première installation, le pare-feu UFW est désactivé par défaut. La sortie sera similaire à ce qui suit.

Status: inactive

Activer le pare-feu UFW

Vous pouvez activer ou activer le pare-feu UFW en utilisant la commande suivante, qui chargera le pare-feu et le rendra démarrable au démarrage.

$ sudo ufw enable

Pour désactiver le pare-feu UFW, utilisez la commande suivante, qui décharge le pare-feu et le désactive au démarrage.

$ sudo ufw disable 

Politiques par défaut de UFW

Par défaut, le pare-feu UFW refuse toutes les connexions entrantes et n’autorise que toutes les connexions sortantes vers le serveur. Cela signifie que personne ne peut accéder à votre serveur, sauf si vous ouvrez spécifiquement le port, tandis que tous les services ou applications en cours d’exécution sur votre serveur peuvent accéder au réseau externe.

Les règles par défaut du pare-feu UFW sont placées dans le fichier /etc/default/ufw et peuvent être modifiées à l’aide de la commande suivante.

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

Profils d’application UFW

Lors de l’installation d’un package logiciel à l’aide du gestionnaire de packages APT, celui-ci inclura un profil d’application dans le répertoire /etc/ufw/applications.d qui définit le service et conserve les paramètres UFW.

Vous pouvez lister tous les profils d’application disponibles sur votre serveur à l’aide de la commande suivante.

$ sudo ufw app list

En fonction des installations de packages logiciels sur votre système, la sortie ressemblera à ce qui suit :

Available applications:
  APACHE
  APACHE Full
  APACHE SECURE
  CUPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission

Si vous souhaitez obtenir plus d’informations sur un profil particulier et les règles définies, vous pouvez utiliser la commande suivante.

$ sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server 
Description: Apache V2 is the next generation f the omnipresent Apache web server.

Ports:
  80/tcp

Activer IPv6 avec UFW

Si votre serveur est configuré avec l’IPv6, assurez-vous que votre UFW est configuré avec le support de l’IPv6 et de l’IPv4. Pour le vérifier, ouvrez le fichier de configuration UFW avec votre éditeur préféré.

$ sudo vi /etc/default/ufw

Ensuite, assurez-vous que “IPV6” est défini sur "yes" dans le fichier de configuration comme indiqué.

IPV6=yes

Enregistrez et quittez. Ensuite, redémarrez votre pare-feu avec les commandes suivantes :

$ sudo ufw disable
$ sudo ufw enable

Autoriser les connexions SSH sur UFW

Si vous avez activé le pare-feu UFW maintenant, il bloquera toutes les connexions entrantes et si vous êtes connecté à votre serveur via SSH à partir d’un emplacement distant, vous ne pourrez plus vous y connecter.

Activez les connexions SSH vers notre serveur pour empêcher cela de se produire en utilisant la commande suivante:

$ sudo ufw allow ssh

Si vous utilisez un port SSH personnalisé (par exemple, le port 2222), vous devez ouvrir ce port sur le pare-feu UFW à l’aide de la commande suivante.

$ sudo ufw allow 2222/tcp

Pour bloquer toutes les connexions SSH, tapez la commande suivante.

$ sudo ufw deny ssh/tcp
$ sudo ufw deny 2222/tcp  [If using custom SSH port]

Activer des ports spécifiques sur UFW

Vous pouvez également ouvrir un port spécifique dans le pare-feu pour autoriser les connexions via celui-ci à un certain service. Par exemple, si vous souhaitez configurer un serveur Web qui écoute sur le port 80 (HTTP) et 443 (HTTPS) par défaut.

Voici quelques exemples de la façon d’autoriser les connexions entrantes aux services Apache.

Ouvrir le port 80 HTTP sur UFW
$ sudo ufw allow http     [By service name]
$ sudo ufw allow 80/tcp   [By port number]
$ sudo ufw allow 'Apache' [By application profile]
Ouvrir le port 443 HTTPS sur UFW
$ sudo ufw allow https
$ sudo ufw allow 443/tcp
$ sudo ufw allow 'Apache Secure'

Autoriser les plages de ports sur UFW

Supposons que vous ayez des applications que vous souhaitez exécuter sur une plage de ports (5000-5003), vous pouvez ajouter tous ces ports à l’aide des commandes suivantes.

sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp

Autoriser des adresses IP spécifiques

Si vous souhaitez autoriser les connexions sur tous les ports à partir d’une adresse IP spécifique 192.168.56.1, vous devez spécifier avant l’adresse IP.

$ sudo ufw allow from 192.168.56.1

Autoriser des adresses IP spécifiques sur un port spécifique

Pour autoriser la connexion sur un port spécifique (par exemple le port 22) depuis votre machine domestique avec l’adresse IP de 192.168.56.1, vous devez ajouter tout port et le numéro de port après l’adresse IP comme indiqué.

$ sudo ufw allow from 192.168.56.1 to any port 22

Autoriser les sous-réseaux réseau à un port spécifique

Pour autoriser les connexions pour des adresses IP particulières allant de 192.168.1.1 à 192.168.1.254 sur le port 22 (SSH), exécutez la commande suivante.

$ sudo ufw allow from 192.168.1.0/24 to any port 22

Autoriser une interface réseau spécifique

Pour autoriser les connexions à une interface réseau spécifique eth2 pour un port particulier 22 (SSH), exécutez la commande suivante.

$ sudo ufw allow in on eth2 to any port 22

Refuser les connexions sur UFW

Par défaut, toutes les connexions entrantes sont bloquées, sauf si vous avez spécifiquement ouvert la connexion sur UFW. Par exemple, si vous avez ouvert les ports 80 et 443 et que votre serveur web est attaqué par le réseau inconnu 11.12.13.0/24.

Pour bloquer toutes les connexions de cette plage de réseau particulière 11.12.13.0/24, vous pouvez utiliser la commande suivante.

$ sudo ufw deny from 11.12.13.0/24

Si vous souhaitez uniquement bloquer les connexions sur les ports 80 et 443, vous pouvez utiliser les commandes suivantes.

$ sudo ufw deny from 11.12.13.0/24 to any port 80
$ sudo ufw deny from 11.12.13.0/24 to any port 443

Supprimer les règles UFW

Il y a 2 façons de supprimer les règles UFW, par numéro de règle et par règle réelle.

Pour supprimer des règles UFW en utilisant le numéro de règle, vous devez d’abord lister les règles par numéros en utilisant la commande suivante.

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere

Pour supprimer la règle numéro 1, utilisez la commande suivante.

$ sudo ufw delete 1

La deuxième méthode consiste à supprimer une règle en utilisant la règle actuelle, par exemple pour supprimer une règle, spécifiez le numéro de port avec le protocole indiqué.

$ sudo ufw delete allow 22/tcp

Exécution à sec des règles UFW

Vous pouvez exécuter n’importe quelle commande ufw sans apporter de modifications réelles au pare-feu du système en utilisant l’option --dry-run, cela montre simplement les modifications qui auraient dû se produire.

$ sudo ufw --dry-run enable

Réinitialisation du pare-feu UFW

Pour une raison ou une autre, si vous souhaitez supprimer / réinitialiser toutes les règles du pare-feu, saisissez les commandes suivantes, cela annulera toutes vos modifications et recommencera à zéro.

$ sudo ufw reset
$ sudo ufw status

Fonctionnalités avancées de UFW

Le pare-feu UFW peut gérer tout ce que fait iptables. Cela peut être fait avec différents ensembles de fichiers de règles, qui ne sont rien d’autre que de simples fichiers texte iptables-restore.

Il n’est pas permis de modifier le pare-feu UFW ou d’ajouter des commandes iptables supplémentaires via la commande ufw, il suffit de modifier les fichiers texte suivants

  • /etc/default/ufw : Le fichier de configuration principal avec des règles prédéfinies.
  • /etc/ufw/before[6].rules : Dans ce fichier, les règles sont calculées avant d’être ajoutées via la commande ufw.
  • /etc/ufw/after[6].rules : Dans ce fichier, les règles sont calculées après avoir été ajoutées via la commande ufw.
  • /etc/ufw/sysctl.conf : Ce fichier est utilisé pour régler le réseau du noyau.
  • /etc/ufw/ufw.conf : Ce fichier active ufw au démarrage.

C’est ça! UFW est un excellent front-end pour iptables avec une interface conviviale permettant de définir des règles complexes avec une seule commande ufw.

Si vous avez des questions ou des réflexions à partager sur cet article ufw, utilisez le formulaire de commentaire ci-dessous pour nous contacter.

Source:
https://www.tecmint.com/setup-ufw-firewall-on-ubuntu-and-debian/