GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer le pare-feu avec UFW sous Linux

Ce guide explique ce qu'est UFW, comment installer UFW sous Linux et comment configurer un pare-feu avec UFW sur divers systèmes d'exploitation Linux.

Présentation

La sécurité est une affaire sérieuse. Que vous exécutiez votre système d'exploitation Linux dans des centres de données ou sur votre bureau, vous devez sécuriser votre système d'exploitation contre toutes les menaces possibles.

En fait, les serveurs fonctionnant dans l'environnement de l'entreprise seront bien protégés. La plupart des entreprises investissent des millions de dollars pour sécuriser leur infrastructure.

Il y aura une équipe réseau, une équipe de pare-feu et une équipe de sécurité distinctes pour protéger votre environnement et vos serveurs Linux. Ce ne sera pas le cas lorsque vous exécuterez Linux sur vos postes de travail ou vos serveurs.

Vous devez savoir comment sécuriser vos machines Linux avec les bons outils. L'un de ces outils est UFW .

Qu'est-ce qu'UFW ?

UFW , signifie U F ncompliqué irew all, est un programme de pare-feu préinstallé par défaut avec les distributions basées sur Ubuntu.

Pourquoi UFW au lieu d'iptables ? Vous vous demandez peut-être.

Si vous ne le savez pas déjà, Netfilter est un système de filtrage de paquets livré avec un noyau Linux et iptables est utilisé pour manipuler les filtres nets avec un ensemble de commandes.

Se familiariser avec iptables peut prendre du temps et peut être une tâche intimidante. Pour faciliter la gestion du pare-feu, de nombreux frontaux pour iptables sont créés. UFW en fait partie.

UFW est une interface en ligne de commande pour gérer iptables. Il fournit un cadre pour gérer et manipuler le pare-feu netfilter.

UFW est disponible par défaut dans toutes les installations d'Ubuntu après la version 8.04 LTS.

Il existe également une interface graphique pour UFW nommée Gufw . Nous en discuterons dans un guide séparé. Dans cet article, nous nous concentrerons sur l'utilisation d'ufw à partir de la ligne de commande.

Sans plus tarder, voyons comment installer et configurer le pare-feu UFW sous Linux.

1. Installer UFW sous Linux

UFW est préinstallé avec la plupart des distributions basées sur Debian et Arch. Pour vérifier si UFW est installé ou non, exécutez la commande suivante :

$ quel ufw 
/usr/sbin/ufw
$ ufw version 
ufw 0.36
Copyright 2008-2015 Canonical Ltd.

S'il n'est pas installé sur votre distribution, vous pouvez l'installer à l'aide du gestionnaire de packages par défaut de votre distribution.

Pour installer UFW dans Alpine Linux, exécutez :

$ sudo apk add ufw

Installez UFW dans Arch Linux et ses variantes telles que EndeavourOS et Manjaro Linux :

$ sudo pacman -S ufw

Installez ufw dans Debian, Ubuntu et ses dérivés :

$ sudo apt mise à jour 
$ sudo apt install ufw

Installez UFW dans Fedora :

$ sudo dnf installer ufw

UFW est disponible en [EPEL] référentiel pour les systèmes d'exploitation Enterprise Linux tels que RHEL, CentOS, AlmaLinux et Rocky Linux.

Activer [EPEL] référentiel et installez UFW dans RHEL, CentOS, AlmaLinux, Rocky Linux comme ci-dessous :

$ sudo dnf install epel-release
$ sudo dnf installer ufw

Installez UFW dans openSUSE :

$ sudo zypper install ufw

1.1. Activer, démarrer et arrêter le service UFW

Dans les systèmes basés sur Debian, le démon UFW sera démarré et activé automatiquement.

Exécutez la commande suivante pour vérifier l'état du service UFW :

$ systemctl status ufw

Exemple de résultat :

● ufw.service - Pare-feu simple Loaded :chargé (/usr/lib/systemd/system/ufw.service ; activé ; fournisseur prese> Actif :actif (exited) depuis le lundi 2021-07-05 20:08:01 IST ; il y a 44 s Documents :man:ufw(8) man:ufw-framework(8) file://usr/share/doc/ufw/README Processus :21690 ExecStart=/usr/libexec/ufw/ufw-init start ( code=exited, stat> PID principal :21690 (code=exited, status=0/SUCCESS) CPU :169msJul 05 20:08:01 ostechnix systemd[1] :Démarrage d'un pare-feu simple... Jul 05 20:08:01 ostechnix systemd[1] :pare-feu simple terminé.

L'autre moyen de vérifier si le service UFW est activé et actif :

$ systemctl est activé ufw 
activé
$ systemctl is-active ufw 
actif

Si le service UFW ne démarre pas automatiquement après l'installation, exécutez la commande suivante pour démarrer le service UFW :

$ sudo systemctl start ufw

Ufw doit également être activé pour démarrer automatiquement entre les redémarrages du système.

$ sudo systemctl enable ufw

Ou, vous pouvez combiner les deux commandes en une seule pour activer et démarrer le service UFW en une seule fois comme ci-dessous :

$ sudo systemctl enable --now ufw

Pour arrêter le service UFW, exécutez simplement :

$ sudo systemctl stop ufw

3. Configurer le pare-feu avec UFW sous Linux

3.1. Obtenir de l'aide

Si vous débutez avec UFW, la première chose à faire après l'avoir installé est de consulter la section d'aide et la page de manuel d'UFW pour avoir une idée de base sur l'utilisation d'UFW.

$ ufw --help
$ man ufw

Si vous avez oublié la syntaxe ou avez besoin d'une référence pour une fonctionnalité particulière d'ufw, ces deux commandes seront très pratiques.

3.2. Définir des règles par défaut

À l'aide d'UFW, vous pouvez créer des règles de pare-feu (ou politiques) pour autoriser ou refuser un service spécifique. Grâce à ces politiques, vous indiquez à l'UFW quels ports, services, adresses IP et interfaces doivent être autorisés ou refusés.

Il existe des politiques par défaut fournies avec ufw. La politique par défaut supprimera toutes les connexions entrantes et autorisera toutes les connexions sortantes.

IMPORTANT : Si vous configurez ufw sur un serveur distant, assurez-vous d'avoir autorisé le port ou le service ssh avant d'activer le pare-feu ufw.

La stratégie entrante par défaut refusera toutes les connexions entrantes. Donc, si vous n'avez pas configuré les règles pour autoriser SSH, vous serez verrouillé hors du système distant et vous ne pourrez pas vous connecter au système. Ce n'est pas le cas lorsque vous exécutez ufw sur votre système local.

Les politiques par défaut sont définies dans le /etc/default/ufw dossier. Voici le contenu du fichier :

À partir de là, nous pouvons définir des politiques par défaut.

Alternativement, nous pouvons utiliser le ufw allow commande pour définir des politiques par défaut pour les commandes entrantes et sortantes :

$ sudo ufw par défaut refuser entrant
$ sudo ufw par défaut autoriser les sorties

3.2.1. Vérifier l'état des règles de pare-feu UFW

Pour vérifier si les stratégies par défaut sont actives, exécutez la commande suivante :

État $ sudo ufw

Exemple de résultat :

Statut :activeTo Action From-- ------ ----SSH AUTORISER Partout 224.0.0.251 mDNS AUTORISER Partout SSH (v6) AUTORISER Partout (v6) ff02::fb mDNS AUTORISER Partout (v6)  

Et pour des informations d'état plus détaillées, utilisez cette commande :

$ sudo ufw status verbeux

Exemple de résultat :

Statut :activeLogging :activé (bas)Par défaut :refuser (entrant), autoriser (sortant), refuser (routé) Nouveaux profils :skipTo Action From-- ------ ----22/tcp (SSH) AUTORISER L'ENTRÉE Partout 224.0.0.251 5353/udp (mDNS) AUTORISER L'ENTRÉE N'importe où 22/tcp (SSH (v6)) AUTORISER L'ENTRÉE N'importe où (v6) ff02::fb 5353/udp (mDNS) AUTORISER N'importe où (v6) 

Pour afficher le format numéroté, exécutez :

$ sudo statut ufw numéroté

3.2.2. Ajouter des règles

Laissez-moi prendre SSH comme exemple pour montrer comment ajouter des règles de pare-feu avec ufw commande. Jetez un œil aux commandes ci-dessous :

$ sudo ufw autoriser ssh
$ sudo ufw allow 22
$ sudo ufw allow 22/tcp
$ sudo ufw allow 2222/tcp

Toutes les commandes ont le même but.

[ 1 ] - Dans la première commande, j'autorise tous les accès à ssh un service. UFW sait par défaut que ssh écoute le port 22 . Ainsi, lorsque vous utilisez allow ssh service, il appliquera également la règle pour le port 22 .
[ 2 ] - Dans la deuxième commande, je dis explicitement d'autoriser les connexions entrantes pour le port 22 .
[ 3 ] - La troisième commande est la même que la deuxième commande. Il autorise tous les accès à tcp port 22 . Les protocoles TCP et UDP sont pris en charge.
[ 4 ] - Dans la quatrième commande, j'autorise un port ssh personnalisé (c'est-à-dire 2222 ) pour accepter les connexions entrantes.

Vous pouvez utiliser ces quatre commandes non seulement pour ssh mais pour tous les services et ports. Par exemple, si vous souhaitez vous connecter à PostgreSQL exécuté sur le port 5433 , la règle doit être ajoutée comme ci-dessous.

$ sudo ufw allow 5433

De même, nous pouvons utiliser ufw deny commande pour rejeter les connexions entrantes :

$ sudo ufw refuser 5433

Cette commande refusera le trafic sur le port 5433 .

3.2.3. Supprimer les règles de pare-feu UFW

Pour supprimer une règle ou une politique, vous pouvez utiliser la commande ufw delete.

Par exemple, si vous ne souhaitez plus autoriser le trafic HTTP, exécutez simplement :

sudo ufw delete allow 80

3.2.4. Activer, désactiver et recharger les règles de pare-feu UFW

Ceci est différent de l'activation et du démarrage du démon UFW. Le démarrage de l'unité ufw systemd n'appliquera pas vos règles de pare-feu. UFW a des commandes dédiées pour activer, désactiver et recharger les règles de pare-feu.

Pour rendre les règles effectives, vous devez lancer la commande suivante :

$ sudo ufw activer 
Le pare-feu est actif et activé au démarrage du système

Comme je l'ai déjà mentionné, utilisez la commande suivante pour afficher l'état des règles de pare-feu UFW :

État $ sudo ufw

Exemple de résultat :

Statut :activeTo Action From-- ------ ----SSH AUTORISER Partout 224.0.0.251 mDNS AUTORISER Partout SSH (v6) AUTORISER Partout (v6) ff02::fb mDNS AUTORISER Partout (v6)  

Pour désactiver les règles du pare-feu, exécutez :

$ sudo ufw désactiver 
Pare-feu arrêté et désactivé au démarrage du système

Veuillez noter : La commande ci-dessus désactivera uniquement les règles de pare-feu. Le démon UFW sera toujours en cours d'exécution et activé lors des redémarrages.

Après avoir ajouté une stratégie, rechargez l'ufw pour que la stratégie prenne effet à l'aide de la commande :

$ sudo ufw recharger

3.2.5. Ajout d'une politique pour les plages de ports

Vous pouvez ajouter une stratégie pour une plage de ports au lieu de créer une stratégie pour un seul port :

$ sudo ufw allow 8000:8080/tcp
$ sudo ufw refuser 8000:8080/tcp

3.2.6. Ajout d'une politique pour des adresses IP, des sous-réseaux et des ports spécifiques

Vous pouvez créer des règles plus précises avec ufw. Disons que si vous voulez que votre serveur soit connecté (ssh'ed) à partir d'une adresse IP spécifique uniquement, vous pouvez le faire en ajoutant la règle suivante.

$ sudo ufw autoriser à partir de 192.168.156.2
$ sudo ufw allow from 192.168.156.2 to any port 2222

La première commande permet à l'adresse IP spécifiée de se connecter en fonction des ports ouverts. La deuxième commande précise que l'utilisateur peut se connecter au port 2222 uniquement depuis 192.168.156.2 .

Pour autoriser un groupe d'adresses IP du même sous-réseau à se connecter à ssh , vous pouvez utiliser le sous-réseau tout en ajoutant une règle, permettant à toutes les parties IP de ce sous-réseau d'être connectées au port 2222 .

$ sudo ufw allow from 192.168.156.1/24 to any port 2222

3.2.7. Ajout d'une stratégie d'interface réseau

Vous pouvez également créer des politiques basées sur les interfaces réseau. La commande suivante créera une stratégie pour accepter les connexions pour l'interface réseau en01 au port 2222 .

$ sudo ufw allow in on en01 to any port 2222

3.2.8. Testez les règles sans les appliquer à l'aide de l'option de simulation

UFW a --dry-run possibilité de tester les règles sans les appliquer réellement. Par exemple, voici ce qui serait appliqué si vous ouvriez le port SSH :

$ sudo ufw --dry-run allow ssh

Comme vous pouvez le voir dans la sortie ci-dessus, la commande ufw ne produit que les règles résultantes, mais ne les applique pas lorsque nous ajoutons --dry-run option. Cela s'avère pratique lorsque vous souhaitez tester des stratégies de pare-feu.

3.2.9. Ajouter un commentaire à chaque règle

Vous avez peut-être ajouté plusieurs règles. Après un certain nombre de règles (disons 50), vous n'avez aucun moyen de vous rappeler de quoi parle la règle.

Dans ce cas, vous pouvez ajouter un commentaire à chaque règle comme ci-dessous :

$ sudo ufw allow 22 comment 'ouvrir le port 22 pour ssh'

La commande ci-dessus autorisera tout le trafic sur le port 22 et ajoutera un commentaire pour la règle. De cette façon, vous pouvez facilement trouver le but d'une règle spécifique.

4. Quelle règle est prioritaire ?

La priorité est importante lorsque vous créez plusieurs règles pour le même service/ports. Les stratégies obtiennent leur priorité dans l'ordre qu'elles ont créé. Exécutez la commande suivante qui vous donnera la politique ainsi que sa priorité.

$ sudo statut ufw numéroté

Exemple de résultat :

Statut :actif À Action De -- ------ ----[ 1] 22 AUTORISER ENTRÉE N'importe où [ 2] 2222 AUTORISER ENTRÉE N'importe où [ 3] 2222 AUTORISER ENTRÉE 192.168.156.2 [ 4] 2222 REFUSER DANS 192.168.157.0/24  [ 5] 22 (v6) AUTORISER L'ENTRÉE N'importe où (v6) [ 6] 2222 (v6) AUTORISER L'ENTRÉE N'importe où (v6) 

Jetez un œil à [ 4 ] dans la sortie ci-dessus. Toute connexion au port 2222 du sous-réseau 192.168.157.0/24 devrait être abandonné.

Mais lorsque j'essaie de me connecter à partir de l'une des machines du même sous-réseau, la connexion sera autorisée car la haute priorité a été donnée à [ 2 ].

Pour remplacer ce comportement, vous devez créer des règles prioritaires. Vous pouvez supprimer la règle existante et ajouter une nouvelle règle prioritaire et recharger le service.

$ sudo ufw delete 4Deleting:deny de 192.168.157.0/24 vers n'importe quel port 2222Poursuivre l'opération (y|n) ? yRègle supprimée
$ sudo ufw insert 2 deny de 192.168.157.0/24 à n'importe quel port 2222 
Règle insérée
$ sudo ufw recharger 
Pare-feu rechargé
$ sudo ufw status numberedStatus:activeTo Action From-- ------ ----[ 1] 22 ALLOW IN Anywhere[ 2] 2222 DENY IN 192.168.157.0/24[ 3] 2222 ALLOW IN Anywhere[ 4] 2222 AUTORISER L'ENTRÉE 192.168.156.2[ 5] 22 (v6) AUTORISER L'ENTRÉE N'importe où (v6)[ 6] 2222 (v6) AUTORISER L'ENTRÉE N'importe où (v6)

Jetez un oeil à la sortie ci-dessus. La priorité est réaffectée à [ 2 ]. Maintenant, si j'essaie de me connecter au port 2222
de 192.168.157.0/24 , ma connexion sera refusée.

5. Journalisation UFW

Les journaux sont le meilleur pari lorsque quelque chose ne va pas.

Pour désactiver la journalisation UFW, exécutez la commande suivante :

$ sudo ufw déconnexion 
Journalisation désactivée

Pour activer la journalisation UFW, exécutez :

$ sudo ufw se connecte 
Journalisation activée

Il existe quatre niveaux de journalisation, à savoir faible , moyen , élevé , et plein . Selon le niveau que vous choisissez, les journaux seront générés sous /var/log/ufw.log dossier. Par défaut, le niveau de journalisation sera bas.

Vous pouvez utiliser la commande ci-dessous pour définir le niveau approprié que vous souhaitez :

$ sudo ufw journalisation [ haut | moyen | Complet | Faible ]

Pour vérifier l'état de la journalisation et le niveau de journalisation, exécutez le ufw status commande et recherchez logging entrée.

$ sudo ufw status verbeux 
Statut :actif
Journalisation :activée (élevée)
Par défaut :refuser (entrant), autoriser (sortant), refuser (routé)
Nouveaux profils :ignorer

6. Profils d'application

Lorsque vous installez des packages à l'aide de votre gestionnaire de packages (par exemple, apt ou pacman), un profil d'application définissant les règles de ce package sera créé dans ufw.

Par exemple, si vous installez un serveur OpenSSH en utilisant apt , alors le profil sera créé pour le port 22 . Tous les profils d'application sont stockés sous /etc/ufw/applications.d répertoire.

Pour obtenir la liste des profils d'application, exécutez la commande suivante :

Liste des applications $ sudo ufw

Exemple de résultat :

Applications disponibles :CUPSOpenSSH

Ceci est une machine d'essai. J'ai installé uniquement OpenSSH. Vous ne voyez donc que deux profils.

Pour obtenir des informations détaillées sur ce profil et sur la politique qu'il applique, exécutez la commande suivante :

$ sudo ufw app info 'OpenSSH'

Exemple de résultat :

Profil :OpenSSH 
Titre :Serveur shell sécurisé, un remplacement de rshd
Description :OpenSSH est une implémentation gratuite du protocole Secure Shell.
Port:
22/tcp

7. Réinitialiser le pare-feu UFW à la stratégie par défaut

Si vous souhaitez nettoyer toutes les règles que vous avez créées et réinitialiser par défaut, vous pouvez le faire en exécutant le ufw reset commande.

$ sudo ufw reset

Exemple de résultat :

Réinitialiser toutes les règles aux valeurs par défaut installées. Continuer avec l'opération (o|n) ? ySauvegarde de 'user.rules' dans '/etc/ufw/user.rules.20210705_131655'Sauvegarde de 'before.rules' dans '/etc/ufw/before.rules.20210705_131655'Sauvegarde de 'after.rules' dans '/ etc. Sauvegarde de 'after6.rules' dans '/etc/ufw/after6.rules.20210705_131655'

Lorsque vous exécutez cette commande, vos règles actuelles seront sauvegardées avant de réinitialiser le profil par défaut.

Ufw possède également de nombreuses interfaces graphiques. L'un d'eux est Gufw .

8. Gufw, une interface graphique pour UFW

Certains d'entre vous ne sont peut-être pas à l'aise avec le mode ligne de commande. Heureusement, il existe une interface graphique pour UFW disponible.

Gufw est une application frontale graphique pour gérer le pare-feu non compliqué (UFW) sous Linux. Gufw est principalement développé pour installer et configurer un pare-feu pour les postes de travail Linux.

Reportez-vous au guide suivant pour savoir comment installer et configurer Gufw sous Linux :

  • Comment configurer un pare-feu avec Gufw sur un bureau Linux

Conclusion

Dans ce guide, nous avons expliqué ce qu'est UFW, comment installer et configurer le pare-feu UFW sous Linux avec des exemples de commandes.

C'est maintenant à vous de tester ufw sur votre machine. Je suggère de tester ufw sur n'importe quelle machine virtuelle avant de l'implémenter sur votre bureau ou votre serveur.


Linux
  1. Comment configurer un pare-feu avec UFW sur Ubuntu 20.04

  2. Comment configurer un pare-feu avec UFW sur Debian 10

  3. Comment configurer un pare-feu avec UFW sur Debian 9

  4. Comment configurer le pare-feu UFW sur Ubuntu 18.04

  5. Comment installer Fail2ban avec Firewalld sur Rocky Linux 8

Comment configurer le pare-feu UFW sur Debian 11

Comment installer le pare-feu UFW sur Ubuntu 16.04 LTS

Comment configurer le pare-feu avec UFW sur Ubuntu Linux

Comment sécuriser un pare-feu Linux avec les règles IPTables

Comment configurer le pare-feu UFW sous Linux

Comment configurer le pare-feu UFW sur Ubuntu 20.04