Rechercher

1.13. Configuration du verrouillage du pare-feu

download PDF

Les applications ou services locaux peuvent modifier la configuration du pare-feu s'ils sont exécutés en tant que root (par exemple), libvirt). Cette fonction permet à l'administrateur de verrouiller la configuration du pare-feu de sorte qu'aucune application ou uniquement les applications ajoutées à la liste d'autorisation de verrouillage puissent demander des modifications du pare-feu. Les paramètres de verrouillage sont désactivés par défaut. S'ils sont activés, l'utilisateur peut être sûr qu'aucune modification indésirable n'est apportée à la configuration du pare-feu par des applications ou des services locaux.

1.13.1. Configuration du verrouillage à l'aide de l'interface de programmation

Vous pouvez activer ou désactiver la fonction de verrouillage à l'aide de la ligne de commande.

Procédure

  1. Pour savoir si le verrouillage est activé, utilisez la commande suivante à l'adresse root:

    # firewall-cmd --query-lockdown

    La commande affiche yes avec l'état de sortie 0 si le verrouillage est activé. Dans le cas contraire, elle affiche no avec l'état de sortie 1.

  2. Pour activer le verrouillage, entrez la commande suivante à l'adresse root:

    # firewall-cmd --lockdown-on
  3. Pour désactiver le verrouillage, utilisez la commande suivante à l'adresse root:

    # firewall-cmd --lockdown-off

1.13.2. Configuration des options de la liste d'autorisation de verrouillage à l'aide de l'interface de gestion

La liste des autorisations de verrouillage peut contenir des commandes, des contextes de sécurité, des utilisateurs et des identifiants d'utilisateur. Si une entrée de commande dans la liste d'autorisation se termine par un astérisque "*", toutes les lignes de commande commençant par cette commande seront prises en compte. Si l'astérisque n'est pas présent, la commande absolue, y compris les arguments, doit correspondre.

  • Le contexte est le contexte de sécurité (SELinux) d'une application ou d'un service en cours d'exécution. Pour obtenir le contexte d'une application en cours d'exécution, utilisez la commande suivante :

    $ ps -e --context

    Cette commande renvoie toutes les applications en cours d'exécution. Faites passer la sortie par l'outil grep pour obtenir l'application qui vous intéresse. Par exemple :

    $ ps -e --context | grep example_program
  • Pour dresser la liste de toutes les lignes de commande figurant dans la liste d'autorisation, entrez la commande suivante à l'adresse root:

    # firewall-cmd --list-lockdown-whitelist-commands
  • Pour ajouter une commande command à la liste des autorisations, entrez la commande suivante sous la forme root:

    # firewall-cmd --add-lockdown-whitelist-command='/usr/bin/python3 -Es /usr/bin/command'
  • Pour supprimer une commande command de la liste des autorisations, entrez la commande suivante sous la forme root:

    # firewall-cmd --remove-lockdown-whitelist-command='/usr/bin/python3 -Es /usr/bin/command'
  • Pour savoir si la commande command figure dans la liste des autorisations, entrez la commande suivante sous la forme root:

    # firewall-cmd --query-lockdown-whitelist-command='/usr/bin/python3 -Es /usr/bin/command'

    La commande affiche yes avec l'état de sortie 0 si elle est vraie. Elle affiche no avec l'état de sortie 1 dans le cas contraire.

  • Pour dresser la liste de tous les contextes de sécurité figurant dans la liste d'autorisations, entrez la commande suivante à l'adresse root:

    # firewall-cmd --list-lockdown-whitelist-contexts
  • Pour ajouter un contexte context à la liste des autorisations, entrez la commande suivante sous root:

    # firewall-cmd --add-lockdown-whitelist-context=context
  • Pour supprimer un contexte context de la liste des autorisations, entrez la commande suivante sous root:

    # firewall-cmd --remove-lockdown-whitelist-context=context
  • Pour savoir si le contexte context figure dans la liste des autorisations, entrez la commande suivante en tant que root:

    # firewall-cmd --query-lockdown-whitelist-context=context

    Imprime yes avec l'état de sortie 0, si vrai, imprime no avec l'état de sortie 1 sinon.

  • Pour dresser la liste de tous les ID d'utilisateur figurant dans la liste d'autorisation, entrez la commande suivante à l'adresse root:

    # firewall-cmd --list-lockdown-whitelist-uids
  • Pour ajouter l'ID d'utilisateur uid à la liste d'autorisations, entrez la commande suivante sous root:

    # firewall-cmd --add-lockdown-whitelist-uid=uid
  • Pour supprimer l'ID d'utilisateur uid de la liste des autorisations, entrez la commande suivante en tant que root:

    # firewall-cmd --remove-lockdown-whitelist-uid=uid
  • Pour savoir si l'ID de l'utilisateur uid figure dans la liste des autorisations, entrez la commande suivante :

    $ firewall-cmd --query-lockdown-whitelist-uid=uid

    Imprime yes avec l'état de sortie 0, si vrai, imprime no avec l'état de sortie 1 sinon.

  • Pour dresser la liste de tous les noms d'utilisateur figurant dans la liste d'autorisation, entrez la commande suivante à l'adresse root:

    # firewall-cmd --list-lockdown-whitelist-users
  • Pour ajouter le nom d'utilisateur user à la liste des autorisations, entrez la commande suivante en tant que root:

    # firewall-cmd --add-lockdown-whitelist-user=user
  • Pour supprimer le nom d'utilisateur user de la liste des autorisations, entrez la commande suivante en tant que root:

    # firewall-cmd --remove-lockdown-whitelist-user=user
  • Pour savoir si le nom d'utilisateur user figure dans la liste des autorisations, entrez la commande suivante :

    $ firewall-cmd --query-lockdown-whitelist-user=user

    Imprime yes avec l'état de sortie 0, si vrai, imprime no avec l'état de sortie 1 sinon.

1.13.3. Configuration des options de la liste d'autorisation de verrouillage à l'aide de fichiers de configuration

Le fichier de configuration de la liste d'autorisations par défaut contient le contexte NetworkManager et le contexte par défaut libvirt. L'ID utilisateur 0 figure également sur la liste.

Les fichiers de configuration d'allowlist sont stockés dans le répertoire /etc/firewalld/.

<?xml version="1.0" encoding="utf-8"?>
	<whitelist>
	  <selinux context="system_u:system_r:NetworkManager_t:s0"/>
	  <selinux context="system_u:system_r:virtd_t:s0-s0:c0.c1023"/>
	  <user id="0"/>
	</whitelist>

Voici un exemple de fichier de configuration allowlist autorisant toutes les commandes de l'utilitaire firewall-cmd, pour un utilisateur appelé user dont l'identifiant est 815:

<?xml version="1.0" encoding="utf-8"?>
	<whitelist>
	  <command name="/usr/libexec/platform-python -s /bin/firewall-cmd*"/>
	  <selinux context="system_u:system_r:NetworkManager_t:s0"/>
	  <user id="815"/>
	  <user name="user"/>
	</whitelist>

Cet exemple montre à la fois user id et user name, mais une seule option est nécessaire. Python est l'interpréteur et est ajouté à la ligne de commande. Vous pouvez également utiliser une commande spécifique, par exemple :

# /usr/bin/python3 /bin/firewall-cmd --lockdown-on

Dans cet exemple, seule la commande --lockdown-on est autorisée.

Dans Red Hat Enterprise Linux, tous les utilitaires sont placés dans le répertoire /usr/bin/ et le répertoire /bin/ est lié par symétrie au répertoire /usr/bin/. En d'autres termes, bien que le chemin d'accès à firewall-cmd, lorsqu'il est saisi sous la forme root, puisse se résoudre en /bin/firewall-cmd, /usr/bin/firewall-cmd peut désormais être utilisé. Tous les nouveaux scripts doivent utiliser le nouvel emplacement. Mais attention, si les scripts qui s'exécutent sous root sont écrits pour utiliser le chemin /bin/firewall-cmd, ce chemin de commande doit être ajouté à la liste des autorisations, en plus du chemin /usr/bin/firewall-cmd, traditionnellement utilisé uniquement par les utilisateurs qui ne sont pas deroot.

Le * à la fin de l'attribut name d'une commande signifie que toutes les commandes qui commencent par cette chaîne correspondent. Si le * n'est pas présent, la commande absolue, y compris les arguments, doit correspondre.

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.