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 verbeuxExemple 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/tcpToutes 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 port22
. Ainsi, lorsque vous utilisez allowssh
service, il appliquera également la règle pour le port22
.
[ 2 ] - Dans la deuxième commande, je dis explicitement d'autoriser les connexions entrantes pour le port22
.
[ 3 ] - La troisième commande est la même que la deuxième commande. Il autorise tous les accès àtcp
port22
. Les protocoles TCP et UDP sont pris en charge.
[ 4 ] - Dans la quatrième commande, j'autorise un port ssh personnalisé (c'est-à-dire2222
) 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 5433De même, nous pouvons utiliser
ufw deny
commande pour rejeter les connexions entrantes :$ sudo ufw refuser 5433Cette 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 803.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èmeComme je l'ai déjà mentionné, utilisez la commande suivante pour afficher l'état des règles de pare-feu UFW :
État $ sudo ufwExemple 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èmeVeuillez 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 recharger3.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/tcp3.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 2222La 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 depuis192.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 port2222
.$ sudo ufw allow from 192.168.156.1/24 to any port 22223.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 port2222
.$ sudo ufw allow in on en01 to any port 22223.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 sshComme 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éseau192.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
de192.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éePour activer la journalisation UFW, exécutez :
$ sudo ufw se connecte
Journalisation activéeIl 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 recherchezlogging
entrée.$ sudo ufw status verbeux
Statut :actif
Journalisation :activée (élevée)
Par défaut :refuser (entrant), autoriser (sortant), refuser (routé)
Nouveaux profils :ignorer6. 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 port22
. 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 ufwExemple de résultat :
Applications disponibles :CUPSOpenSSHCeci 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/tcp7. 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 resetExemple 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.