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 politique de contrôle d'accès discrétionnaire (DAC). Dans le modèle DAC de sécurité du système, l'accès aux ressources telles que les fichiers et les processus est basé uniquement sur l'identité et la propriété de l'utilisateur. Si un logiciel malveillant ou cassé est présent sur le système, il peut faire n'importe quoi avec des fichiers et des ressources que l'utilisateur qui a commencé le processus a l'autorisation de faire. Si l'utilisateur est root ou si 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 pour le noyau Linux met en oeuvre la politique de contrôle d'accès obligatoire (MAC), qui vous permet de définir une politique de sécurité qui configure les 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 retourne une erreur au processus. Le noyau vérifie et applique les règles de politique DAC avant les règles MAC, de sorte qu'il ne vérifie pas les règles de politique SELinux si les règles DAC ont déjà refusé l'accès à une ressource.
Descriptions des ensembles SELinux
SELinux contient plusieurs ensembles, chacun contenant des utilitaires spécifiques que vous pouvez utiliser pour administrer SELinux sur les systèmes Oracle Linux. Certains ensembles sont installés par défaut, tandis que d'autres sont facultatifs.
Le tableau suivant répertorie les ensembles SELinux installés par défaut avec Oracle Linux.
|
Paquetage |
Description |
|---|---|
|
|
Fournit des utilitaires tels que |
|
|
Fournit l'API que les applications SELinux utilisent pour obtenir et définir des contextes de sécurité de processus et de fichiers, et pour obtenir des décisions de politique de sécurité. |
|
|
Contient des liaisons Python pour le développement d'applications SELinux. |
|
|
Fournit la politique de référence SELinux, qui sert de base à d'autres politiques, telles que la politique ciblée SELinux. |
|
|
Fournit la politique 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 ensembles SELinux utiles qui ne sont pas installés par défaut. Installez les ensembles requis à l'aide de la commande dnf.
|
Paquetage |
Description |
|---|---|
|
|
Convertit les niveaux SELinux, tels que |
|
|
Fournit des utilitaires Python pour le fonctionnement de SELinux, tels que |
|
|
Fournit l'utilitaire de bac à sable permettant de créer des bacs à sable SELinux pour exécuter des commandes dans un domaine SELinux étroitement confiné. |
|
|
Fournit une politique de sécurité multiniveau stricte (MLS) comme alternative à la politique ciblée SELinux. |
selinux-policy-doc
|
Fournit des pages manuelles pour de nombreux éléments de politique SELinux. |
|
|
Permet de voir les messages |
|
|
Convertit les messages de refus d'accès de SELinux en descriptions détaillées que vous pouvez voir 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 politiques, surveiller et produire des rapports sur les journaux de vérification et gérer le contexte des fichiers. |
Pour plus d'informations, voir Wiki SELinux Project pour la documentation sur la communauté et les 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 ensembles qui les contiennent.
|
Services publics |
Paquetage |
Description |
|---|---|---|
|
|
|
Génère des règles |
|
|
|
Analyse les journaux de refus pour expliquer pourquoi l'accès a été bloqué et recommande des ajustements SELinux pertinents. |
|
|
|
Affiche les statistiques pour le cache du vecteur d'accès SELinux (AVC). |
|
|
|
Modifie ou supprime la catégorie de sécurité d'un fichier ou d'un utilisateur. |
|
|
|
Modifie le contexte SELinux des fichiers et des répertoires. |
|
|
|
Corrige le contexte de sécurité des systèmes de fichiers. |
|
|
|
Indique le mode SELinux courant. |
|
|
|
Signale les valeurs booléennes SELinux. |
|
|
|
Charge une nouvelle politique SELinux dans le noyau. |
|
|
|
Interroge la stratégie système et affiche le contexte de sécurité par défaut associé au chemin d'accès au fichier. |
|
|
|
Réinitialise le contexte de sécurité sur un ou plusieurs fichiers. |
|
|
|
Démon qui surveille la création de fichiers et définit le contexte de fichier par défaut. |
|
|
|
Exécute une commande dans le contexte spécifié. |
|
|
|
Exécute une commande dans un bac à sable SELinux. |
|
|
|
Agit en tant qu'interface utilisateur du système |
|
|
|
Vérifie les politiques SELinux. |
|
|
|
Affiche le contexte SELinux à partir d'un fichier, d'un programme ou d'une entrée utilisateur. |
|
|
|
Compare les politiques SELinux. |
|
|
|
Interroge les politiques 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 politiques SELinux. |
|
|
|
Gère les modules de politique SELinux. |
|
|
|
Affiche les dépendances entre les ensembles de politiques SELinux. |
|
|
|
Développe un ensemble de module de politique SELinux. |
|
|
|
Relie les ensembles de module de politique SELinux. |
|
|
|
Crée un ensemble de module de politique SELinux. |
|
|
|
Interroge les politiques SELinux. |
|
|
|
Affiche le mode SELinux et la politique SELinux en cours d'utilisation. |
|
|
|
Modifie le mode SELinux. |
|
|
|
Définit les valeurs booléennes 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 politique de sécurité SELinux. Tous les messages de refus sont enregistrés en tant que refus AVC (Access Vector Cache). Il s'agit du mode par défaut.
-
permissive -
Le noyau n'applique pas les règles de politique 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 s'exécute en mode
enforcing. Utilisez ce mode pour vous aider à mettre en oeuvre SELinux efficacement dans un système.
Pour afficher le mode SELinux courant, exécutez la commande suivante :
getenforce
Pour régler le mode courant à enforcing, exécutez la commande suivante :
sudo setenforce enforcing
Pour régler le mode courant à permissive, exécutez la commande suivante :
sudo setenforce permissive
La valeur que vous avez définie pour un mode à l'aide de setenforce n'est pas conservée lors des redémarrages. Pour configurer le mode SELinux par défaut, modifiez le fichier de configuration pour SELinux, /etc/selinux/config et réglez la valeur de la directive SELINUX à enforcing ou permissive.
Désactivation de SELinux
Vous pouvez désactiver entièrement SELinux en réglant le paramètre de noyau selinux à 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 sur les politiques
SELinux est complexe, avec de nombreuses options pour configurer l'accès, à l'aide de politiques. Vous pouvez obtenir des informations détaillées sur les politiques disponibles à partir des pages de manuel fournies par l'ensemble selinux-policy-doc. Cette tâche vous montre 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 user_u sans privilèges SELinux et le rôle user_r dans la page de manuel user_selinux(8). La documentation de stratégie 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.