Recherche de site Web

Comment configurer le pare-feu UFW sur Ubuntu et Debian


Un pare-feu fonctionnant correctement est l'élément le plus crucial de la sécurité complète du système Linux. Par défaut, les distributions Debian et Ubuntu sont livrées avec un outil de configuration de pare-feu appelé UFW (Uncomplicated Firewall), qui est l'un des outils de ligne de commande les plus populaires et les plus faciles à utiliser pour configurer et gérer un pare-feu sur les distributions Ubuntu et Debian.

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

Conditions préalables

Avant de commencer cet article, assurez-vous d'être connecté à votre serveur Ubuntu ou Debian avec l'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

Installez le pare-feu UFW sur Ubuntu et Debian

L'UFW (Uncomplicated Firewall) doit être installé par défaut dans Ubuntu et Debian, sinon, installez-le à l'aide du gestionnaire de packages APT à l'aide de la commande suivante.

sudo apt install ufw

Vérifiez le pare-feu UFW

Une fois l'installation terminée, vous pouvez vérifier l'état d'UFW en tapant.

sudo ufw status verbose

Lors de la première installation, le pare-feu UFW est désactivé par défaut, le résultat sera similaire à celui ci-dessous.

Status: inactive

Activer le pare-feu UFW

Vous pouvez activer ou activer le pare-feu UFW à l'aide de la commande suivante, qui devrait charger le pare-feu et lui permettre de démarrer au démarrage.

sudo ufw enable

Pour désactiver le pare-feu UFW, utilisez la commande suivante, qui décharge le pare-feu et l'empêche de démarrer au démarrage.

sudo ufw disable 

Politiques par défaut d'UFW

Par défaut, le pare-feu UFW refuse toutes les connexions entrantes et autorise uniquement toutes les connexions sortantes au serveur. Cela signifie que personne ne peut accéder à votre serveur, à moins que vous n'ouvriez 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 extérieur.

Les politiques de pare-feu UFW par défaut 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 progiciel à l'aide du gestionnaire de packages APT, il inclura un profil d'application dans le répertoire /etc/ufw/applications.d qui définit le service et contient les paramètres UFW.

Vous pouvez répertorier tous les profils d'application disponibles sur votre serveur à l'aide de la commande suivante.

sudo ufw app list

En fonction des installations de progiciels sur votre système, le résultat 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 des 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 IPv6, assurez-vous que votre UFW est configuré avec la prise en charge IPv6 et IPv4. Pour le vérifier, ouvrez le fichier de configuration UFW à l'aide de votre éditeur préféré.

sudo vi /etc/default/ufw

Assurez-vous ensuite que « IPV6 » est défini sur "oui" dans le fichier de configuration, comme indiqué.

IPV6=yes

Sauvegarder et quitter. Redémarrez ensuite votre pare-feu avec les commandes suivantes :

sudo ufw disable
sudo ufw enable

Autoriser les connexions SSH sur UFW

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

Activons les connexions SSH à notre serveur pour empêcher que cela ne se produise à l'aide de la commande suivante :

sudo ufw allow ssh

Si vous utilisez un port SSH personnalisé (par exemple le port 2222), vous devez alors 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.

Vous trouverez ci-dessous quelques exemples montrant comment autoriser les connexions entrantes aux services Apache.

Ouvrez le port HTTP 80 sur UFW
sudo ufw allow http     [By service name]
sudo ufw allow 80/tcp   [By port number]
sudo ufw allow 'Apache' [By application profile]
Ouvrez 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

En supposant que vous souhaitez exécuter certaines applications 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 alors spécifier from 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) à partir de votre ordinateur personnel avec l'adresse IP 192.168.56.1, vous devez alors ajouter n'importe quel 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 sur un port spécifique

Pour autoriser les connexions pour des adresses IP particulières allant de 192.168.1.1 à 192.168.1.254 au 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, vous avez ouvert les ports 80 et 443 et votre serveur Web est attaqué par le réseau inconnu 11.12.13.0/24.

Pour bloquer toutes les connexions de cette plage réseau 11.12.13.0/24 particulière, 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 existe deux manières de supprimer des règles UFW : par numéro de règle et par règle réelle.

Pour supprimer une règle UFW à l'aide du numéro de règle, vous devez d'abord répertorier les règles par numéros à l'aide de la commande suivante.

sudo ufw status numbered
Exemple de sortie
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 réelle. Par exemple, pour supprimer une règle, spécifiez le numéro de port avec le protocole comme indiqué.

sudo ufw delete allow 22/tcp

Règles UFW à sec

Vous pouvez exécuter n'importe quelle commande ufw sans apporter de modifications au pare-feu du système à l'aide de l'indicateur --dry-run, cela montre simplement les modifications supposées se produire.

sudo ufw --dry-run enable

Réinitialiser le pare-feu UFW

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

sudo ufw reset
sudo ufw status

Fonctionnalité avancée UFW

Le pare-feu UFW peut faire 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.

Le réglage du pare-feu UFW ou l'ajout de commandes iptables supplémentaires ne sont pas autorisés via la commande ufw, il s'agit simplement 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 ajout 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 l'ufw au démarrage.

C'est ça! UFW est une excellente interface pour iptables avec une interface conviviale pour 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 commentaires ci-dessous pour nous contacter.