Comment installer et configurer Firewalld sur CentOS et Ubuntu

La sécurité est l'une des actions qui doivent toujours être présentes non seulement dans les organisations mais aussi au niveau personnel lorsque nous travaillons avec un système d'exploitation, et c'est, bien qu'il existe divers outils pour augmenter la sécurité et la confidentialité lors de l'utilisation d'un système , le fonctionnement le système lui-même inclut une fonction supplémentaire telle que le pare-feu.

La fonction essentielle d'un pare-feu est de créer et de gérer des règles entrantes et sortantes afin de protéger l'ensemble du processus de connexion réseau. Ainsi, les paquets suspects ou peu fiables sont empêchés d'entrer dans notre ordinateur et de causer tout type de dommages tels que l'insertion de logiciels malveillants ou le détournement d'informations.

Lorsque nous travaillons avec des systèmes Linux, l'un des plus sécurisés, nous avons des utilitaires open source qui nous aident à rendre ce processus de protection beaucoup plus complet et l'un de ces utilitaires est Firewalld. Solvetic expliquera ce qu'est Firewalld et comment nous pouvons l'installer et l'utiliser dans deux des distributions les plus utilisées actuellement, telles que CentOS et Ubuntu.

NoterLe processus de configuration est identique pour les deux systèmes

Qu'est-ce que FirewalldFirewalld (firewall daemon), est un utilitaire dont le but est de fournir un pare-feu géré dynamiquement qui prend en charge les zones réseau dans lesquelles le niveau de confiance des connexions réseau ou des interfaces à utiliser est défini, Firewalld est compatible avec les adresses IPv4, Paramètres de pare-feu IPv6, ponts Ethernet et pools d'adresses IP.

Firewalld nous propose une interface pour des services ou des applications afin d'ajouter directement des règles de pare-feu, facilitant ainsi les tâches de contrôle. L'un des principaux avantages de l'utilisation de Firewalld est que toutes les modifications à apporter peuvent être effectuées en temps réel sur l'environnement d'exécution sans avoir à redémarrer le service ou le démon comme cela se produit avec de nombreux utilitaires.

Firewalld intègre une interface D-Bus adaptée à la gestion des services, des applications et de l'administration de la configuration du pare-feu.Cette interface peut être intégrée aux outils de configuration tels que firewall-cmd, firewall-config et firewall-applet.

Fonctionnalités du pare-feuCertaines des fonctionnalités que nous trouvons lors de l'utilisation de Firewalld sont :

  • Prise en charge d'IPv4, IPv6, pontage et ipset.
  • Prise en charge de NAT IPv4 et IPv6.
  • Pare-feu ou zones de pare-feu.
  • API D-Bus complète.
  • Service simple, port, protocole, port source, masquage, redirection de port, filtre icmp, règle riche, contrôle d'interface et d'adresse source dans les zones utilisées.
  • Interface directe pour la gestion.
  • Fonction de blocage qui crée une liste blanche d'applications pouvant modifier le pare-feu.
  • Chargement automatique des modules du noyau Linux.
  • Intégration avec Puppet.
  • Règles de pare-feu chronométrées dans les zones.
  • Enregistrement simple des paquets refusés.
  • Outil de configuration graphique utilisant gtk3.
  • Applet utilisant Qt4.

RépartitionLes distributions de base dans lesquelles Firewalld peut être implémenté sont :

  • RHEL 7, CentOS 7
  • Fedora 18 et plus

ApplicationsLes applications et bibliothèques qui prennent en charge firewalld en tant qu'outil de gestion de pare-feu incluent :

  • Gestionnaire de réseau
  • libvirt
  • docker
  • fail2ban

Il est important qu'avant d'entrer dans les détails sur la façon d'installer et d'utiliser Firewalld, nous en sachions un peu plus, Firewalld est composé de trois couches qui sont :

  • Couche principale (core layer) qui est responsable de la gestion de la configuration et des services tels que iptables, ip6tables, ebtables, ipset et le module loader.
  • Interface D-Bus : qui est le principal moyen de modifier et de créer les paramètres du pare-feu.
  • Les backends qui permettent d'interagir avec netfilter (le module natif du noyau utilisé pour le pare-feu) et certains sont comptés comme iptables, ip6tables, ebtables, ipset, nft, linnftables, etc.

L'interface D-Bus du pare-feu est le moyen le plus essentiel pour créer et modifier les paramètres du pare-feu. Cette interface est utilisée par tous les outils en ligne intégrés à firewalld tels que firewall-cmd, firewall-config et firewall-applet, la ligne firewall-offline-cmd ne parle pas directement à firewalld, mais elle édite et crée les fichiers de configuration de firewalld directement via le noyau firewalld avec les pilotes IO.

Le fichier de configuration global de firewalld se trouve dans /etc/firewalld/firewalld.conf et les fonctions du pare-feu sont configurées au format XML.

Firewalld utilise des zones qui définissent le niveau de confiance que la connexion réseau à utiliser, l'interface ou le lien d'adresse source aura, et la même zone peut être utilisée pour de nombreuses connexions réseau, interfaces et sources.

Les zones disponibles dans Firewalld sont :

TomberC'est la zone avec le niveau de confiance le plus bas car tous les paquets entrants sont automatiquement rejetés et n'autorisent que les paquets sortants à être activés.
BloquerLors de l'utilisation de cette zone, le niveau de confiance est similaire à Drop mais diffère uniquement en ce que les paquets entrants sont rejetés en utilisant icmp-host-prohibited pour IPv4 et icmp6-adm-prohibited pour les messages IPv6.
PubliqueAvec cette zone, le niveau de confiance fait référence aux réseaux publics non approuvés, il n'accepte donc que les connexions approuvées.
ExterneC'est le niveau défini lorsque l'on utilise le Firewall comme passerelle et que son masquage est activé par les routeurs.
DMZC'est une zone où le niveau de confiance s'applique aux équipements situés dans une zone DMZ (Démilitarisée), cela signifie qu'il y a un accès public restreint au réseau interne. Il accepte uniquement les connexions acceptées.
TravaillerComme son nom l'indique, ce niveau est utilisé dans les zones de travail permettant aux ordinateurs du réseau d'y avoir accès.
domicileEn utilisant ce niveau, nous parlons d'un environnement domestique et la plupart des ordinateurs du réseau sont acceptés
InterneCe type de niveau s'applique aux réseaux internes afin que tous les ordinateurs du réseau local soient acceptés.
De confianceIl signifie Trust, ce qui implique qu'il s'agit du niveau le plus élevé et qu'il fait confiance à toutes les connexions entrantes.

Pour configurer ou ajouter des zones, nous pouvons utiliser l'une des interfaces de configuration firewalld disponibles suivantes :

  • Outil de configuration graphique firewall-config.
  • Outil de ligne de commande Firewall-cmd.
  • Interface de programmation D-BUS.
  • Créez, copiez ou modifiez un fichier de zone dans l'un des répertoires de configuration tels que : /etc/firewalld/zones pour les fichiers de configuration personnalisés et créés par l'utilisateur ou /usr/lib/firewalld/zones pour les configurations par défaut et de secours.

1. Comment installer et gérer Firewalld sur Linux

Étape 1
En cas d'utilisation de CentOS 7, le package firewalld est pré-installé et peut être vérifié avec la commande suivante :

 rpm -qa firewalld
Dans le cas d'Ubuntu, nous devons l'installer avec la commande suivante :
 sudo apt installer firewalld

AGRANDIR

Nous entrons la lettre S pour confirmer le téléchargement et l'installation de Firewalld.

Étape 2
Firewalld est un service systemd standard qui peut être géré via la commande systemctl comme suit :

 sudo systemctl start firewalld (permet de démarrer le service) sudo systemctl enable firewalld (active le service au démarrage du système) sudo systemctl status firewalld (permet de voir l'état du service)

AGRANDIR

Étape 3
Après avoir démarré le service firewalld, nous pouvons vérifier si le démon est en cours d'exécution ou non sous Linux, pour cela nous devons utiliser l'outil firewall-cmd, nous exécutons ce qui suit :

 sudo firewall-cmd -state

AGRANDIR

2. Comment gérer les zones dans Firewalld CentOS et Ubuntu

Étape 1
Pour obtenir une liste de tous les services et zones de pare-feu disponibles, nous devons exécuter les commandes suivantes :
Pour voir les zones :

 sudo firewall-cmd --get-zones

AGRANDIR

Étape 2
Pour voir les services que nous exécuterons :

 sudo firewall-cmd --get-services

AGRANDIR

Étape 3
La zone par défaut est la zone implémentée pour chaque fonctionnalité firewalld qui n'est pas liée à une autre zone, il est possible d'obtenir la zone par défaut définie pour les connexions réseau et les interfaces en exécutant la commande suivante :

 sudo firewall-cmd --get-default-zone

AGRANDIR

Étape 4
Si nous voulons établir une autre zone par défaut, nous devons utiliser la commande suivante, il convient de noter que si nous ajoutons l'option --permanent, la configuration est établie de manière permanente, nous pouvons exécuter l'une des options suivantes :

 sudo firewall-cmd --set-default-zone = externe
ou alors
 sudo firewall-cmd --set-default-zone = external -permanent
Étape 4
Ensuite, nous appliquons les modifications en exécutant :
 sudo firewall-cmd -reload

AGRANDIR

Étape 5
Si l'objectif est d'ajouter une interface à une zone, par exemple, nous pouvons exécuter les opérations suivantes :

 sudo firewall-cmd --zone = home --add-interface = enp0s3
Dans ce cas, nous avons ajouté l'interface enp0s3 (LAN) à la zone d'accueil.

AGRANDIR

Étape 6
Il convient de noter qu'une interface ne peut être ajoutée qu'à une seule zone, à la place elle peut être déplacée vers une autre zone, pour cela nous utiliserons le commutateur --change-interface ou supprimerons de la zone précédente avec le commutateur -remove-interface puis ajoutez-le à la nouvelle zone, par exemple :

 sudo firewall-cmd --zone = public --add-interface = enp0s3 sudo firewall-cmd --zone = public --change-interface = enp0s3
Avec Firewalld, il est possible d'utiliser plusieurs zones en même temps, si nous voulons obtenir une liste de toutes les zones actives avec les fonctions activées, telles que les interfaces, les services, les ports, les protocoles, nous exécutons ce qui suit :
 sudo firewall-cmd --get-active-zones

AGRANDIR

Étape 7
Pour obtenir plus d'informations sur les zones, telles que ce qui a été activé ou supprimé, nous pouvons utiliser l'une de ces commandes :

 sudo firewall-cmd --zone = home --list-all
OU ALORS
 sudo firewall-cmd --info-zone public

AGRANDIR

Étape 8
Une autre option utile à utiliser avec Firewalld est --get-target, cela montre la cible d'une zone permanente, les cibles peuvent être par défaut, ACCEPTER, DROP, REJECT, pour vérifier la cible de plusieurs zones, nous pouvons utiliser l'une des commandes suivantes :

 sudo firewall-cmd --permanent --zone = public --get-target sudo firewall-cmd --permanent --zone = block --get-target sudo firewall-cmd --permanent --zone = dmz --get- cible sudo firewall-cmd --permanent --zone = external --get-target sudo firewall-cmd --permanent --zone = drop --get-target

3. Comment bloquer ou ouvrir des ports dans Firewalld Linux CentOS et Ubuntu


Pour ouvrir un port via firewalld, ajoutez-le simplement dans la zone avec l'option --add-port, si la zone n'est pas explicitement spécifiée, elle sera activée dans la zone par défaut.

Étape 1
Par exemple, pour ajouter les ports 80 et 443 qui autorisent le trafic Web entrant via les protocoles HTTP et HTTPS, nous allons exécuter les opérations suivantes :

 sudo firewall-cmd --zone = public --permanent --add-port = 80 / tcp --add-port = 443 / tcp

AGRANDIR

Étape 2
Nous allons maintenant recharger le firewalld et vérifier les fonctions activées dans la zone publique :

 sudo firewall-cmd --reload sudo firewall-cmd --info-zone public

AGRANDIR

Étape 3
Si nous voulons bloquer un port dans firewalld, nous devons utiliser l'option --remove-port, dans cet exemple comme ceci :

 sudo firewall-cmd --zone = public --permanent --remove-port = 80 / tcp --remove-port = 443 / tcp

4. Comment bloquer ou ouvrir des services dans Firewalld CentOS et Ubuntu


Pour le processus d'activation d'un service dans Firewalld, nous devons l'activer à l'aide de l'option --add-service, rappelez-vous que, si nous omettons la zone, la zone par défaut sera utilisée.

Étape 1
Par exemple, pour activer le service http dans une zone publique, nous exécutons :

 sudo firewall-cmd --zone = public --permanent --add-service = http sudo firewall-cmd -reload

AGRANDIR

Étape 2
Avec le paramètre -remove-service, nous pouvons supprimer le service de la zone attribuée :

 sudo firewall-cmd --zone = public --permanent --remove-service = http sudo firewall-cmd -reload

AGRANDIR

5. Comment activer et désactiver le masquage IP via Firewalld Linux


Le masquage IP, ou IPMASQ / MASQ) est un mécanisme NAT qui permet aux hôtes d'un réseau avec des adresses IP privées de communiquer avec Internet via l'adresse IP publique attribuée au serveur Linux à l'aide de la passerelle IPMASQ. .

Avec ce masquage, le trafic des hôtes invisibles apparaîtra sur d'autres ordinateurs sur Internet comme s'il provenait directement du serveur Linux.

Pour vérifier si le masquage est actif ou non nous exécutons :

 sudo firewall-cmd --zone = public --query-mascarade
Ensuite, nous pouvons ajouter une zone comme celle-ci :
 sudo firewall-cmd --zone = public --add-masquerade
Pour supprimer une zone de ce type de fonction, nous devons exécuter la commande suivante :
 sudo firewall-cmd --zone = public --remove-masquerade

6. Comment activer et désactiver le message IMCP dans Firewalld Linux


El protocolo ICMP (Internet Control Message Protocol - Protocolo de mensajes de control de Internet) es un protocolo que ha sido desarrollado con el fin de generar solicitudes de información o respuestas a esas solicitudes de información o en condiciones de error en todo el proceso de comunicación sur le réseau.

Étape 1
Dans Firewalld, il est possible d'activer ou de désactiver les messages ICMP, mais il est recommandé de valider tous les types ICMP compatibles, pour cela nous exécutons :

 sudo firewall-cmd --get-icmptypes

AGRANDIR

Étape 2
Nous pouvons ajouter ou bloquer un ICMP comme suit :

 sudo firewall-cmd --zone = home --add-icmp-block = echo-reply sudo firewall-cmd --zone = home --remove-icmp-block = echo-reply

AGRANDIR

Étape 3
Nous pouvons voir tous les types ICMP ajoutés dans une zone à l'aide du commutateur --list-icmp-blocks :

 sudo firewall-cmd --zone = home --list-icmp-blocks

7. Comment activer ou non le mode panique dans Firewalld Linux CentOS et Ubuntu


Le mode panique est un mode spécial intégré à Firewalld dans lequel tous les paquets entrants et sortants sont éliminés, et les connexions actives expireront une fois activé, nous pouvons activer ce mode dans les situations d'urgence où il y a une menace pour le système et ainsi nous éviterons toute connexion.

Étape 1
Pour vérifier le mode panique, nous utiliserons l'option --query-panic et nous pourrons l'activer avec l'option sudo firewall-cmd --panic-on :

AGRANDIR

Étape 2
Pour comprendre comment fonctionne ce mode, lorsqu'il est désactivé, nous pouvons envoyer un ping à un site Web et nous recevrons toutes les demandes envoyées, mais lorsqu'il est activé, nous verrons un message indiquant un échec de connexion temporaire :

AGRANDIR

Étape 3
Pour désactiver ce mode, nous exécutons :

 sudo firewall-cmd --panic-off

8. Comment bloquer Firewalld sur Linux CentOS et Ubuntu

Étape 1
Dans Firewalld, les applications ou services locaux peuvent modifier la configuration du pare-feu s'ils s'exécutent avec des privilèges root, nous pouvons contrôler quelles applications peuvent demander des modifications au pare-feu, en l'ajoutant à la liste blanche de blocage. Cette fonction est désactivée par défaut, et nous pouvons l'activer ou la désactiver avec le commutateur --lockdown-on ou -lockdown-off :

 sudo firewall-cmd --lockdown-on
OU ALORS
 sudo firewall-cmd --lockdown-off
Étape 2
Une méthode plus sûre consiste à activer ou désactiver cette fonction directement dans l'édition du fichier de configuration principal, car parfois firewall-cmd n'existe pas dans la liste blanche de blocage, pour cela nous accédons au fichier de configuration :
 sudo nano /etc/firewalld/firewalld.conf

AGRANDIR

Là, nous localisons la ligne Lockdown = no et définissons son statut sur Lockdown = yes, enregistrons les modifications à l'aide des touches Ctrl + O et sortons de l'éditeur à l'aide de Ctrl + X.

Firewalld est une solution complète pour ajouter diverses règles et zones à nos distributions Linux et ainsi ajouter de meilleures options de sécurité générale au système.

wave wave wave wave wave