1.15. Configuration de firewalld à l'aide des rôles de système
Vous pouvez utiliser le rôle système firewall
pour configurer les paramètres du service firewalld
sur plusieurs clients à la fois. Cette solution :
- Fournit une interface avec des paramètres d'entrée efficaces.
-
Conserve tous les paramètres de
firewalld
en un seul endroit.
Après avoir exécuté le rôle firewall
sur le nœud de contrôle, le rôle système applique immédiatement les paramètres firewalld
au nœud géré et les rend persistants lors des redémarrages.
1.15.1. Introduction au rôle du système RHEL firewall
RHEL System Roles est un ensemble de contenus pour l'utilitaire d'automatisation Ansible. Ce contenu, associé à l'utilitaire d'automatisation Ansible, fournit une interface de configuration cohérente pour gérer à distance plusieurs systèmes.
Le rôle rhel-system-roles.firewall
des rôles système RHEL a été introduit pour les configurations automatisées du service firewalld
. Le paquetage rhel-system-roles
contient ce rôle système, ainsi que la documentation de référence.
Pour appliquer les paramètres firewalld
à un ou plusieurs systèmes de manière automatisée, utilisez la variable firewall
System Role dans un cahier de jeu. Un cahier de jeu est une liste d'un ou plusieurs jeux écrits au format YAML basé sur le texte.
Vous pouvez utiliser un fichier d'inventaire pour définir un ensemble de systèmes qu'Ansible doit configurer.
Le rôle firewall
vous permet de configurer de nombreux paramètres firewalld
, par exemple :
- Zones.
- Les services pour lesquels les paquets doivent être autorisés.
- Octroi, rejet ou abandon de l'accès du trafic aux ports.
- Transfert de ports ou de plages de ports pour une zone.
Ressources supplémentaires
-
README.md
etREADME.html
dans le répertoire/usr/share/doc/rhel-system-roles/firewall/
- Travailler avec des playbooks
- Comment constituer votre inventaire
1.15.2. Réinitialisation des paramètres de firewalld à l'aide du rôle de système RHEL du pare-feu
Avec le rôle système firewall
RHEL, vous pouvez réinitialiser les paramètres firewalld
à leur état par défaut. Si vous ajoutez le paramètre previous:replaced
à la liste des variables, le rôle système supprime tous les paramètres existants définis par l'utilisateur et rétablit les valeurs par défaut de firewalld
. Si vous combinez le paramètre previous:replaced
avec d'autres paramètres, le rôle firewall
supprime tous les paramètres existants avant d'en appliquer de nouveaux.
Effectuez cette procédure sur le nœud de contrôle Ansible.
Conditions préalables
- Vous avez préparé le nœud de contrôle et les nœuds gérés
- Vous êtes connecté au nœud de contrôle en tant qu'utilisateur pouvant exécuter des séquences sur les nœuds gérés.
-
Le compte que vous utilisez pour vous connecter aux nœuds gérés dispose des autorisations
sudo
sur ces nœuds. - Les nœuds gérés ou les groupes de nœuds gérés sur lesquels vous souhaitez exécuter cette séquence sont répertoriés dans le fichier d'inventaire Ansible.
Procédure
Créez un fichier playbook, par exemple
~/reset-firewalld.yml
avec le contenu suivant :--- - name: Reset firewalld example hosts: managed-node-01.example.com tasks: - name: Reset firewalld include_role: name: rhel-system-roles.firewall vars: firewall: - previous: replaced
Exécutez le manuel de jeu :
# ansible-playbook ~/configuring-a-dmz.yml
Vérification
Exécutez cette commande en tant que
root
sur le nœud géré pour vérifier toutes les zones :# firewall-cmd --list-all-zones
Ressources supplémentaires
-
/usr/share/ansible/roles/rhel-system-roles.firewall/README.md
-
ansible-playbook(1)
-
firewalld(1)
1.15.3. Transférer le trafic entrant d'un port local vers un autre port local
Le rôle firewall
vous permet de configurer à distance les paramètres firewalld
avec un effet persistant sur plusieurs hôtes gérés.
Effectuez cette procédure sur le nœud de contrôle Ansible.
Conditions préalables
- Vous avez préparé le nœud de contrôle et les nœuds gérés
- Vous êtes connecté au nœud de contrôle en tant qu'utilisateur pouvant exécuter des séquences sur les nœuds gérés.
-
Le compte que vous utilisez pour vous connecter aux nœuds gérés dispose des autorisations
sudo
sur ces nœuds. - Les nœuds gérés ou les groupes de nœuds gérés sur lesquels vous souhaitez exécuter cette séquence sont répertoriés dans le fichier d'inventaire Ansible.
Procédure
Créez un fichier playbook, par exemple
~/port_forwarding.yml
avec le contenu suivant :--- - name: Configure firewalld hosts: managed-node-01.example.com tasks: - name: Forward incoming traffic on port 8080 to 443 include_role: name: rhel-system-roles.firewall vars: firewall: - { forward_port: 8080/tcp;443;, state: enabled, runtime: true, permanent: true }
Exécutez le manuel de jeu :
# ansible-playbook ~/port_forwarding.yml
Vérification
Sur l'hôte géré, affichez les paramètres
firewalld
:# firewall-cmd --list-forward-ports
Ressources supplémentaires
-
/usr/share/ansible/roles/rhel-system-roles.firewall/README.md
1.15.4. Configuration des ports à l'aide des rôles de système
Vous pouvez utiliser le rôle système RHEL firewall
pour ouvrir ou fermer les ports du pare-feu local pour le trafic entrant et faire en sorte que la nouvelle configuration persiste lors des redémarrages. Par exemple, vous pouvez configurer la zone par défaut pour autoriser le trafic entrant pour le service HTTPS.
Effectuez cette procédure sur le nœud de contrôle Ansible.
Conditions préalables
- Vous avez préparé le nœud de contrôle et les nœuds gérés
- Vous êtes connecté au nœud de contrôle en tant qu'utilisateur pouvant exécuter des séquences sur les nœuds gérés.
-
Le compte que vous utilisez pour vous connecter aux nœuds gérés dispose des autorisations
sudo
sur ces nœuds. - Les nœuds gérés ou les groupes de nœuds gérés sur lesquels vous souhaitez exécuter cette séquence sont répertoriés dans le fichier d'inventaire Ansible.
Procédure
Créez un fichier playbook, par exemple
~/opening-a-port.yml
avec le contenu suivant :--- - name: Configure firewalld hosts: managed-node-01.example.com tasks: - name: Allow incoming HTTPS traffic to the local host include_role: name: rhel-system-roles.firewall vars: firewall: - port: 443/tcp service: http state: enabled runtime: true permanent: true
L'option
permanent: true
rend les nouveaux paramètres persistants à travers les redémarrages.Exécutez le manuel de jeu :
# ansible-playbook ~/opening-a-port.yml
Vérification
Sur le nœud géré, vérifiez que le port
443/tcp
associé au serviceHTTPS
est ouvert :# firewall-cmd --list-ports 443/tcp
Ressources supplémentaires
-
/usr/share/ansible/roles/rhel-system-roles.firewall/README.md
1.15.5. Configuration d'une zone DMZ firewalld à l'aide du rôle de système firewalld
RHEL
En tant qu'administrateur système, vous pouvez utiliser le rôle système firewall
pour configurer une zone dmz
sur l'interface enp1s0 afin d'autoriser le trafic HTTPS
vers la zone. Vous permettez ainsi à des utilisateurs externes d'accéder à vos serveurs web.
Effectuez cette procédure sur le nœud de contrôle Ansible.
Conditions préalables
- Vous avez préparé le nœud de contrôle et les nœuds gérés
- Vous êtes connecté au nœud de contrôle en tant qu'utilisateur pouvant exécuter des séquences sur les nœuds gérés.
-
Le compte que vous utilisez pour vous connecter aux nœuds gérés dispose des autorisations
sudo
sur ces nœuds. - Les nœuds gérés ou les groupes de nœuds gérés sur lesquels vous souhaitez exécuter cette séquence sont répertoriés dans le fichier d'inventaire Ansible.
Procédure
Créez un fichier playbook, par exemple
~/configuring-a-dmz.yml
avec le contenu suivant :--- - name: Configure firewalld hosts: managed-node-01.example.com tasks: - name: Creating a DMZ with access to HTTPS port and masquerading for hosts in DMZ include_role: name: rhel-system-roles.firewall vars: firewall: - zone: dmz interface: enp1s0 service: https state: enabled runtime: true permanent: true
Exécutez le manuel de jeu :
# ansible-playbook ~/configuring-a-dmz.yml
Vérification
Sur le nœud géré, affichez des informations détaillées sur la zone
dmz
:# firewall-cmd --zone=dmz --list-all dmz (active) target: default icmp-block-inversion: no interfaces: enp1s0 sources: services: https ssh ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks:
Ressources supplémentaires
-
/usr/share/ansible/roles/rhel-system-roles.firewall/README.md