Rechercher

1.15. Configuration de firewalld à l'aide des rôles de système

download PDF

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

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

  1. Créez un fichier playbook, par exemple ~/reset-firewalld.ymlavec 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
  2. 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

  1. Créez un fichier playbook, par exemple ~/port_forwarding.ymlavec 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 }
  2. 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

  1. Créez un fichier playbook, par exemple ~/opening-a-port.ymlavec 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.

  2. 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 service HTTPS 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

  1. Créez un fichier playbook, par exemple ~/configuring-a-dmz.ymlavec 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
  2. 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
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.