1.5. Travailler avec les zones firewalld
Les zones représentent un concept permettant de gérer le trafic entrant de manière plus transparente. Les zones sont connectées à des interfaces de réseau ou se voient attribuer une série d'adresses sources. Vous gérez les règles de pare-feu pour chaque zone indépendamment, ce qui vous permet de définir des paramètres de pare-feu complexes et de les appliquer au trafic.
1.5.1. Zones d'inscription
Vous pouvez dresser la liste des zones à l'aide de la ligne de commande.
Procédure
Pour connaître les zones disponibles sur votre système :
# firewall-cmd --get-zones
La commande
firewall-cmd --get-zones
affiche toutes les zones disponibles sur le système, mais n'indique aucun détail sur des zones particulières.Pour obtenir des informations détaillées sur toutes les zones :
# firewall-cmd --list-all-zones
Pour obtenir des informations détaillées sur une zone spécifique :
# firewall-cmd --zone=zone-name --list-all
1.5.2. Modifier les paramètres de firewalld pour une certaine zone
Les sections Contrôle du trafic avec des services prédéfinis à l'aide de cli et Contrôle des ports à l'aide de cli expliquent comment ajouter des services ou modifier des ports dans le cadre de la zone de travail actuelle. Il est parfois nécessaire de définir des règles dans une autre zone.
Procédure
Pour travailler dans une autre zone, utilisez l'option
--zone=<zone_name>
pour fonctionner dans une autre zone. Par exemple, pour autoriser le serviceSSH
dans la zonepublic
:# firewall-cmd --add-service=ssh --zone=public
1.5.3. Modifier la zone par défaut
Les administrateurs système attribuent une zone à une interface réseau dans ses fichiers de configuration. Si une interface n'est pas assignée à une zone spécifique, elle est assignée à la zone par défaut. Après chaque redémarrage du service firewalld
, firewalld
charge les paramètres de la zone par défaut et la rend active.
Procédure
Pour configurer la zone par défaut :
Affiche la zone par défaut actuelle :
# firewall-cmd --get-default-zone
Définir la nouvelle zone par défaut :
# firewall-cmd --set-default-zone <zone_name>
NoteEn suivant cette procédure, le réglage est permanent, même sans l'option
--permanent
.
1.5.4. Affectation d'une interface réseau à une zone
Il est possible de définir différents ensembles de règles pour différentes zones, puis de modifier rapidement les paramètres en changeant la zone de l'interface utilisée. En cas d'interfaces multiples, une zone spécifique peut être définie pour chacune d'entre elles afin de distinguer le trafic qui les traverse.
Procédure
Pour affecter la zone à une interface spécifique :
Liste des zones actives et des interfaces qui leur sont affectées :
# firewall-cmd --get-active-zones
Assigner l'interface à une zone différente :
# firewall-cmd --zone=zone_name --change-interface=interface_name --permanent
1.5.5. Attribution d'une zone à une connexion à l'aide de nmcli
Vous pouvez ajouter une zone firewalld
à une connexion NetworkManager
à l'aide de l'utilitaire nmcli
.
Procédure
Attribuer la zone au profil de connexion
NetworkManager
:# nmcli connection modify profile connection.zone zone_name
Activer la connexion :
# nmcli connection up profile
1.5.6. Attribution manuelle d'une zone à une connexion réseau dans un fichier ifcfg
Lorsque la connexion est gérée par NetworkManager, elle doit connaître la zone qu'elle utilise. Pour chaque connexion réseau, une zone peut être spécifiée, ce qui permet d'adapter les paramètres du pare-feu en fonction de l'emplacement de l'ordinateur et des appareils portables. Ainsi, les zones et les paramètres peuvent être spécifiés pour différents lieux, tels que l'entreprise ou le domicile.
Procédure
Pour définir une zone pour une connexion, modifiez le fichier
/etc/sysconfig/network-scripts/ifcfg-connection_name
et ajoutez une ligne qui attribue une zone à cette connexion :ZONE=zone_name
1.5.7. Création d'une nouvelle zone
Pour utiliser des zones personnalisées, créez une nouvelle zone et utilisez-la comme une zone prédéfinie. Les nouvelles zones nécessitent l'option --permanent
, sinon la commande ne fonctionne pas.
Procédure
Créer une nouvelle zone :
# firewall-cmd --permanent --new-zone=zone-name
Vérifiez si la nouvelle zone est ajoutée à vos paramètres permanents :
# firewall-cmd --get-zones
Les nouveaux paramètres doivent être conservés :
# firewall-cmd --runtime-to-permanent
1.5.8. Fichiers de configuration de la zone
Les zones peuvent également être créées à l'aide de zone configuration file. Cette approche peut être utile lorsque vous devez créer une nouvelle zone, mais que vous souhaitez réutiliser les paramètres d'une autre zone et ne les modifier que légèrement.
Un fichier de configuration de zone firewalld
contient les informations relatives à une zone. Il s'agit de la description de la zone, des services, des ports, des protocoles, des blocs icmp, de la mascarade, des ports de renvoi et des règles de langage riche dans un format de fichier XML. Le nom du fichier doit être zone-name.xml
où la longueur de zone-name est actuellement limitée à 17 caractères. Les fichiers de configuration de la zone sont situés dans les répertoires /usr/lib/firewalld/zones/
et /etc/firewalld/zones/
.
L'exemple suivant montre une configuration qui autorise un service (SSH
) et une plage de ports, pour les protocoles TCP
et UDP
:
<?xml version="1.0" encoding="utf-8"?> <zone> <short>My Zone</short> <description>Here you can describe the characteristic features of the zone.</description> <service name="ssh"/> <port protocol="udp" port="1025-65535"/> <port protocol="tcp" port="1025-65535"/> </zone>
Pour modifier les paramètres de cette zone, ajoutez ou supprimez des sections pour ajouter des ports, transférer des ports, des services, etc.
Ressources supplémentaires
-
firewalld.zone
page du manuel
1.5.9. Utilisation des cibles de zone pour définir le comportement par défaut du trafic entrant
Pour chaque zone, vous pouvez définir un comportement par défaut qui gère le trafic entrant non spécifié. Ce comportement est défini en définissant la cible de la zone. Il existe quatre options :
-
ACCEPT
: Accepte tous les paquets entrants, à l'exception de ceux qui sont interdits par des règles spécifiques. -
REJECT
: Rejette tous les paquets entrants sauf ceux autorisés par des règles spécifiques. Lorsquefirewalld
rejette des paquets, la machine source est informée du rejet. -
DROP
: Abandonne tous les paquets entrants à l'exception de ceux autorisés par des règles spécifiques. Lorsquefirewalld
abandonne des paquets, la machine source n'est pas informée de l'abandon du paquet. -
default
: Comportement similaire à celui deREJECT
, mais avec des significations spéciales dans certains scénarios. Pour plus de détails, voir la sectionOptions to Adapt and Query Zones and Policies
dans la page de manuelfirewall-cmd(1)
.
Procédure
Pour définir une cible pour une zone :
Lister les informations pour la zone spécifique afin de voir la cible par défaut :
# firewall-cmd --zone=zone-name --list-all
Fixer un nouvel objectif dans la zone :
# firewall-cmd --permanent --zone=zone-name --set-target=<default|ACCEPT|REJECT|DROP>
Ressources supplémentaires
-
firewall-cmd(1)
page de manuel