Administration de SELinux dans Oracle Linux
Décrit SELinux et fournit des conseils sur l'administration de SELinux dans Oracle Linux.
La sécurité Linux traditionnelle est basée sur une stratégie de contrôle d'accès discrétionnaire (DAC). Dans le modèle de sécurité du système DAC, l'accès aux ressources telles que les fichiers et les processus repose uniquement sur l'identité et la propriété de l'utilisateur. Si un logiciel malveillant ou défectueux est présent sur le système, il peut tout faire avec les fichiers et les ressources que l'utilisateur qui a démarré le processus a l'autorisation de faire. Si l'utilisateur est root ou que l'application s'exécute avec des privilèges élevés (setuid ou setgid à root), le processus dispose du contrôle d'accès root sur l'ensemble du système de fichiers.
Pour résoudre ce problème, la National Security Agency a créé Security Enhanced Linux (SELinux) pour fournir un plus grand niveau de contrôle sur les fichiers, les processus, les utilisateurs et les applications dans le système d'exploitation Linux. L'amélioration de SELinux vers le noyau Linux implémente la stratégie de contrôle d'accès obligatoire (MAC), qui vous permet de définir une stratégie de sécurité qui configure des autorisations granulaires pour tous les utilisateurs, programmes, processus, fichiers et périphériques. Les décisions de contrôle d'accès du noyau sont basées sur la sensibilité des ressources du point de vue de la sécurité, et pas uniquement sur l'identité de l'utilisateur authentifié.
Lorsqu'un accès lié à la sécurité se produit, par exemple lorsqu'un processus ouvre un fichier, SELinux intercepte l'opération dans le noyau. Si une règle de stratégie MAC autorise l'opération, elle continue. Sinon, SELinux bloque l'opération et renvoie une erreur au processus. Le noyau vérifie et applique les règles de stratégie DAC avant les règles MAC. Par conséquent, il ne vérifie pas les règles de stratégie SELinux si les règles DAC ont déjà refusé l'accès à une ressource.
Description des packages SELinux
SELinux contient plusieurs packages, chacun contenant des utilitaires spécifiques que vous pouvez utiliser pour administrer SELinux sur les systèmes Oracle Linux. Certains packages sont installés par défaut, tandis que d'autres sont facultatifs.
Le tableau suivant répertorie les packages SELinux installés par défaut avec Oracle Linux.
|
Package |
Description |
|---|---|
|
|
Fournit des utilitaires tels que |
|
|
Fournit l'API que les applications SELinux utilisent pour obtenir et définir des contextes de sécurité des processus et des fichiers, et pour obtenir des décisions de stratégie de sécurité. |
|
|
Contient des liaisons Python pour le développement d'applications SELinux. |
|
|
Fournit la stratégie de référence SELinux, qui sert de base à d'autres stratégies, telles que la stratégie ciblée SELinux. |
|
|
Fournit la stratégie ciblée SELinux, où les objets en dehors des domaines ciblés s'exécutent sous DAC. |
|
|
Fournit les utilitaires |
Le tableau suivant répertorie les packages SELinux utiles qui ne sont pas installés par défaut. Installez tous les packages requis à l'aide de la commande dnf.
|
Package |
Description |
|---|---|
|
|
Convertit les niveaux SELinux, tels que |
|
|
Fournit des utilitaires Python pour l'exploitation de SELinux, tels que |
|
|
Fournit l'utilitaire Sandbox permettant de créer des modèles d'environnement restreint SELinux pour exécuter des commandes dans un domaine SELinux étroitement confiné. |
|
|
Fournit une stratégie de sécurité multiniveau (MLS) stricte comme alternative à la stratégie ciblée SELinux. |
selinux-policy-doc
|
Fournit des pages manuelles pour de nombreux éléments de stratégie SELinux. |
|
|
Permet d'afficher les messages |
|
|
Convertit les messages de refus d'accès de SELinux en descriptions détaillées que vous pouvez afficher sur la ligne de commande à l'aide de la commande |
|
|
Fournit la distribution des outils et des bibliothèques Tresys Technology SETools, que vous pouvez utiliser pour analyser et interroger les stratégies, surveiller et générer des rapports sur les journaux d'audit et gérer le contexte des fichiers. |
Pour plus d'informations, reportez-vous au Wiki de projet SELinux pour la documentation de la communauté et aux pages de manuel de commande selinux(8) et autres SELinux.
Utilitaires SELinux
Le tableau suivant décrit les principaux utilitaires que vous pouvez utiliser pour administrer SELinux et les packages qui les contiennent.
|
Services publics |
Package |
Description |
|---|---|---|
|
|
|
Génère des règles |
|
|
|
Analyse les journaux de refus pour expliquer pourquoi l'accès a été bloqué et recommande les ajustements SELinux pertinents. |
|
|
|
Affiche les statistiques du cache vectoriel d'accès SELinux (AVC). |
|
|
|
Modifie ou supprime la catégorie de sécurité pour un fichier ou un utilisateur. |
|
|
|
Modifie le contexte SELinux des fichiers et répertoires. |
|
|
|
Corrige le contexte de sécurité des systèmes de fichiers. |
|
|
|
Indique le mode SELinux actuel. |
|
|
|
Affiche les valeurs booléennes de SELinux. |
|
|
|
Charge une nouvelle stratégie SELinux dans le noyau. |
|
|
|
Interroge la stratégie système et affiche le contexte de sécurité par défaut associé au chemin du fichier. |
|
|
|
Réinitialise le contexte de sécurité sur un ou plusieurs fichiers. |
|
|
|
Démon qui surveille la création de fichier et définit le contexte du fichier par défaut. |
|
|
|
Exécute une commande dans le contexte spécifié. |
|
|
|
Exécute une commande dans un modèle d'environnement restreint SELinux. |
|
|
|
Agit en tant qu'interface utilisateur du système |
|
|
|
Vérifie les stratégies SELinux. |
|
|
|
Affiche le contexte SELinux à partir d'un fichier, d'un programme ou d'une entrée utilisateur. |
|
|
|
Compare les stratégies SELinux. |
|
|
|
Interroge les stratégies SELinux. |
|
|
|
Affiche tous les contextes SELinux accessibles par un utilisateur. |
|
|
|
Affiche le contexte SELinux par défaut pour un utilisateur. |
|
|
|
Indique si SELinux est activé. |
|
|
|
Gère les stratégies SELinux. |
|
|
|
Gère les modules de stratégie SELinux. |
|
|
|
Affiche les dépendances entre les packages de stratégie SELinux. |
|
|
|
Développe un package de module de stratégie SELinux. |
|
|
|
Relie les packages du module de stratégie SELinux. |
|
|
|
Crée un package de module de stratégie SELinux. |
|
|
|
Interroge les stratégies SELinux. |
|
|
|
Affiche le mode SELinux et la stratégie SELinux en cours d'utilisation. |
|
|
|
Modifie le mode SELinux. |
|
|
|
Définit les valeurs booléennes de SELinux. |
|
|
|
Définit le contexte de sécurité pour un ou plusieurs fichiers. |
Définition des modes SELinux
SELinux s'exécute en mode enforcing ou permissive :
-
enforcing -
Le noyau refuse l'accès aux utilisateurs et aux programmes s'ils ne sont pas autorisés par les règles de stratégie de sécurité SELinux. Tous les messages de refus sont consignés en tant que refus AVC (Access Vector Cache). Il s'agit du mode par défaut.
-
permissive -
Le noyau n'applique pas de règles de stratégie de sécurité, mais SELinux envoie des messages de refus à un fichier journal. Cela vous permet de voir quelles actions seraient refusées si SELinux était exécuté en mode
enforcing. Utilisez ce mode pour vous aider à implémenter efficacement SELinux dans un système.
Pour afficher le mode SELinux actuel, exécutez la commande suivante :
getenforce
Pour définir le mode actuel sur enforcing, exécutez la commande suivante :
sudo setenforce enforcing
Pour définir le mode actuel sur permissive, exécutez la commande suivante :
sudo setenforce permissive
La valeur que vous définissez pour un mode à l'aide de setenforce ne persiste pas après les réinitialisations. Pour configurer le mode SELinux par défaut, modifiez le fichier de configuration de SELinux, /etc/selinux/config et définissez la valeur de la directive SELINUX sur enforcing ou permissive.
Désactivation de SELinux
Vous pouvez désactiver complètement SELinux en définissant le paramètre de noyau selinux sur zéro.
Oracle ne recommande pas de désactiver SELinux dans les systèmes de production. Utilisez plutôt le mode permissive.
Installation de la documentation de stratégie
SELinux est complexe, avec de nombreuses options pour configurer l'accès, à l'aide de stratégies. Vous pouvez obtenir des informations détaillées sur les stratégies disponibles à partir des pages manuelles fournies par le package selinux-policy-doc. Cette tâche vous indique comment accéder à ces informations.
La documentation relative aux stratégies contient également des informations sur les utilisateurs et les rôles. Par exemple, vous pouvez en savoir plus sur l'utilisateur SELinux sans privilège user_u et le rôle user_r dans la page de manuel user_selinux(8). La documentation sur les stratégies décrit les restrictions qui s'appliquent à différents contextes de sécurité et les options booléennes disponibles pour personnaliser la stratégie pour un environnement.