Rechercher

Chapitre 1. Utilisation et configuration de firewalld

download PDF

firewall est un moyen de protéger les machines contre tout trafic indésirable provenant de l'extérieur. Il permet aux utilisateurs de contrôler le trafic réseau entrant sur les machines hôtes en définissant un ensemble de firewall rules. Ces règles sont utilisées pour trier le trafic entrant et le bloquer ou l'autoriser.

firewalld est un démon de service de pare-feu qui fournit un pare-feu dynamique personnalisable basé sur l'hôte avec une interface D-Bus. Comme il est dynamique, il permet de créer, de modifier et de supprimer les règles sans qu'il soit nécessaire de redémarrer le démon du pare-feu à chaque fois que les règles sont modifiées.

firewalld utilise les concepts de zones et de services, qui simplifient la gestion du trafic. Les zones sont des ensembles de règles prédéfinies. Les interfaces réseau et les sources peuvent être affectées à une zone. Le trafic autorisé dépend du réseau auquel votre ordinateur est connecté et du niveau de sécurité attribué à ce réseau. Les services de pare-feu sont des règles prédéfinies qui couvrent tous les paramètres nécessaires pour autoriser le trafic entrant pour un service spécifique et s'appliquent à l'intérieur d'une zone.

Les services utilisent un ou plusieurs ports ou adresses pour communiquer avec le réseau. Les pare-feu filtrent les communications en fonction des ports. Pour autoriser le trafic réseau d'un service, ses ports doivent être ouverts. firewalld bloque tout le trafic sur les ports qui ne sont pas explicitement définis comme ouverts. Certaines zones, comme la zone de confiance, autorisent tout le trafic par défaut.

Notez que firewalld avec le backend nftables ne permet pas de passer des règles nftables personnalisées à firewalld, en utilisant l'option --direct.

1.1. Démarrer avec firewalld

Ce qui suit est une introduction aux fonctionnalités de firewalld, telles que les services et les zones, et à la manière de gérer le service firewalld systemd.

1.1.1. Quand utiliser firewalld, nftables ou iptables ?

Voici un bref aperçu des scénarios dans lesquels vous devez utiliser l'un des utilitaires suivants :

  • firewalld: Utilisez l'utilitaire firewalld pour des cas d'utilisation simples de pare-feu. L'utilitaire est facile à utiliser et couvre les cas d'utilisation typiques de ces scénarios.
  • nftables: Utilisez l'utilitaire nftables pour configurer des pare-feu complexes et critiques en termes de performances, par exemple pour l'ensemble d'un réseau.
  • iptables: L'utilitaire iptables sur Red Hat Enterprise Linux utilise l'API du noyau nf_tables au lieu de l'interface legacy. L'API nf_tables offre une compatibilité ascendante de sorte que les scripts qui utilisent les commandes iptables fonctionnent toujours sur Red Hat Enterprise Linux. Pour les nouveaux scripts de pare-feu, Red Hat recommande d'utiliser nftables.
Important

Pour éviter que les différents services de pare-feu ne s'influencent mutuellement, exécutez un seul d'entre eux sur un hôte RHEL et désactivez les autres services.

1.1.2. Zones

firewalld peut être utilisé pour séparer les réseaux en différentes zones en fonction du niveau de confiance que l'utilisateur a décidé d'accorder aux interfaces et au trafic au sein de ce réseau. Une connexion ne peut faire partie que d'une seule zone, mais une zone peut être utilisée pour plusieurs connexions réseau.

NetworkManager notifie à firewalld la zone d'une interface. Vous pouvez assigner des zones aux interfaces avec :

  • NetworkManager
  • firewall-config outil
  • firewall-cmd outil en ligne de commande
  • La console web RHEL

Les trois derniers ne peuvent éditer que les fichiers de configuration appropriés de NetworkManager. Si vous changez la zone de l'interface à l'aide de la console web, firewall-cmd ou firewall-config, la demande est transmise à NetworkManager et n'est pas traitée parfirewalld.

Les zones prédéfinies sont stockées dans le répertoire /usr/lib/firewalld/zones/ et peuvent être appliquées instantanément à toute interface réseau disponible. Ces fichiers ne sont copiés dans le répertoire /etc/firewalld/zones/ qu'après avoir été modifiés. Les paramètres par défaut des zones prédéfinies sont les suivants :

block
Toute connexion réseau entrante est rejetée avec un message icmp-host-prohibited pour IPv4 et icmp6-adm-prohibited pour IPv6. Seules les connexions réseau initiées depuis l'intérieur du système sont possibles.
dmz
Pour les ordinateurs de votre zone démilitarisée qui sont accessibles au public avec un accès limité à votre réseau interne. Seules les connexions entrantes sélectionnées sont acceptées.
drop
Tous les paquets réseau entrants sont abandonnés sans notification. Seules les connexions réseau sortantes sont possibles.
external
À utiliser sur les réseaux externes où le masquage est activé, en particulier pour les routeurs. Vous ne faites pas confiance aux autres ordinateurs du réseau pour ne pas nuire à votre ordinateur. Seules les connexions entrantes sélectionnées sont acceptées.
home
À utiliser à la maison lorsque vous faites essentiellement confiance aux autres ordinateurs du réseau. Seules les connexions entrantes sélectionnées sont acceptées.
internal
À utiliser sur les réseaux internes lorsque vous faites essentiellement confiance aux autres ordinateurs du réseau. Seules les connexions entrantes sélectionnées sont acceptées.
public
À utiliser dans les lieux publics où vous ne faites pas confiance aux autres ordinateurs du réseau. Seules les connexions entrantes sélectionnées sont acceptées.
trusted
Toutes les connexions réseau sont acceptées.
work
À utiliser au travail lorsque vous faites essentiellement confiance aux autres ordinateurs du réseau. Seules les connexions entrantes sélectionnées sont acceptées.

L'une de ces zones est définie comme la zone default. Lorsque des connexions d'interface sont ajoutées à NetworkManager, elles sont affectées à la zone par défaut. Lors de l'installation, la zone par défaut dans firewalld est définie comme étant la zone public. La zone par défaut peut être modifiée.

Note

Les noms des zones du réseau doivent être explicites et permettre aux utilisateurs de prendre rapidement une décision raisonnable. Pour éviter tout problème de sécurité, examinez la configuration de la zone par défaut et désactivez tous les services inutiles en fonction de vos besoins et de l'évaluation des risques.

Ressources supplémentaires

  • La page de manuel firewalld.zone(5).

1.1.3. Services prédéfinis

Un service peut être une liste de ports locaux, de protocoles, de ports sources et de destinations, ainsi qu'une liste de modules d'aide au pare-feu automatiquement chargés si un service est activé. L'utilisation de services permet aux utilisateurs de gagner du temps car ils peuvent effectuer plusieurs tâches, telles que l'ouverture de ports, la définition de protocoles, l'activation du transfert de paquets et autres, en une seule étape, plutôt que de tout configurer l'un après l'autre.

Les options de configuration des services et les informations génériques sur les fichiers sont décrites dans la page de manuel firewalld.service(5). Les services sont spécifiés au moyen de fichiers de configuration XML individuels, qui sont nommés dans le format suivant : service-name.xml. Les noms de protocoles sont préférés aux noms de services ou d'applications dans firewalld.

Des services peuvent être ajoutés et supprimés à l'aide de l'outil graphique firewall-config, firewall-cmd et firewall-offline-cmd.

Vous pouvez également modifier les fichiers XML dans le répertoire /etc/firewalld/services/. Si un service n'est pas ajouté ou modifié par l'utilisateur, aucun fichier XML correspondant n'est trouvé dans /etc/firewalld/services/. Les fichiers du répertoire /usr/lib/firewalld/services/ peuvent être utilisés comme modèles si vous souhaitez ajouter ou modifier un service.

Ressources supplémentaires

  • La page de manuel firewalld.service(5)

1.1.4. Démarrer firewalld

Procédure

  1. Pour démarrer firewalld, entrez la commande suivante en tant que root:

    # systemctl unmask firewalld
    # systemctl start firewalld
  2. Pour que firewalld démarre automatiquement au démarrage du système, entrez la commande suivante en tant que root:

    # systemctl enable firewalld

1.1.5. Arrêt de firewalld

Procédure

  1. Pour arrêter firewalld, entrez la commande suivante en tant que root:

    # systemctl stop firewalld
  2. Pour éviter que firewalld ne démarre automatiquement au démarrage du système :

    # systemctl disable firewalld
  3. Pour s'assurer que firewalld n'est pas démarré en accédant à l'interface firewalld D-Bus et aussi si d'autres services nécessitent firewalld:

    # systemctl mask firewalld

1.1.6. Vérification de la configuration permanente de firewalld

Dans certaines situations, par exemple après avoir modifié manuellement les fichiers de configuration de firewalld, les administrateurs souhaitent vérifier que les modifications sont correctes. Vous pouvez utiliser l'utilitaire firewall-cmd pour vérifier la configuration.

Conditions préalables

  • Le service firewalld est en cours d'exécution.

Procédure

  1. Vérifier la configuration permanente du service firewalld:

    # firewall-cmd --check-config
    success

    Si la configuration permanente est valide, la commande renvoie success. Dans les autres cas, la commande renvoie une erreur avec des détails supplémentaires, tels que les suivants :

    # firewall-cmd --check-config
    Error: INVALID_PROTOCOL: 'public.xml': 'tcpx' not from {'tcp'|'udp'|'sctp'|'dccp'}
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.