[Vous voulez essayer Red Hat Enterprise Linux ? Téléchargez-le maintenant gratuitement.]
Il existe de nombreuses pages de manuel excellentes pour les domaines confinés inclus dans la politique SELinux. Ces pages de manuel décrivent les booléens et les types de contexte pour chaque domaine. Ils incluent également un exemple de semanage
commandes pour ajouter des mappages de contexte, modifier des booléens, etc.
Malheureusement pour l'administrateur système débutant avec la configuration SELinux, ces pages de manuel ne sont souvent pas installées par défaut. Les pages de manuel de la politique SELinux sont disponibles à partir de deux emplacements. Le référentiel de politique de référence en amont contient une poignée de pages de manuel prédéfinies. Le reste peut être généré à partir du contenu de la politique avec un outil trouvé dans le policycoreutils-devel
paquet.
Installer à partir d'un package de distribution
Certaines distributions prégénèrent les pages de manuel et les conditionnent pour faciliter l'ajout de la documentation à votre système. Fedora, CentOS et Red Hat Enterprise Linux 8 incluent tous un selinux-policy-doc.noarch
package dans leurs référentiels de base. Ce paquet n'est pas installé par défaut, mais il est facile à ajouter avec un yum
ou dnf
commande :
$ sudo yum install selinux-policy-doc.noarch
Red Hat Enterprise Linux 7 dispose également de ce package, mais il se trouve dans le dépôt "Facultatif" qui n'est pas activé par défaut. Soit activer le repo de façon permanente avec subscription-manager
:
$ sudo subscription-manager repo --enable=rhel-7-server-optional-rpms
ou ajoutez simplement le dépôt temporairement pendant l'installation :
$ sudo yum --enablerepo=rhel-7-server-optional-rpms install selinux-policy-doc.noarch
Maintenant que la documentation du domaine SELinux est disponible, recherchez les pages pertinentes avec :
$ man -k _selinux
Remarque : Après avoir installé le package docs, vous devrez peut-être également mettre à jour le cache de l'index de la page de manuel avant de voir les résultats de la recherche :
$ sudo mandb
Générer des pages de manuel à partir de la politique
Si le package docs n'est pas disponible, ou si vous souhaitez uniquement générer une page de manuel pour un domaine spécifique, vous pouvez également créer les pages de manuel à partir de la stratégie. Tout d'abord, installez le devel
packages et leurs dépendances :
$ sudo yum install policycoreutils-devel
Ensuite, utilisez le sepolicy
commande pour générer une page de manuel spécifique en spécifiant le type de domaine (le type de contexte SELinux associé au processus en cours d'exécution qui est contenu). Par exemple :
$ sepolicy manpage -d httpd_t
La page de manuel résultante sera générée dans le /tmp
répertoire et peut être visualisé par nom :
$ man /tmp/httpd_selinux.8
Il existe des options pour la sepolicy manpage
commande pour remplacer l'emplacement de sortie (--path
), générer une version html (--web
), ou tout générer (--all
) pages. Pour voir ces options et d'autres, utilisez :
$ man sepolicy-manpage
Tant qu'un utilisateur dispose de privilèges d'écriture sur le chemin de sortie, il peut générer et afficher une page de manuel.
Prévisualisez la magie de ces pages de manuel
Les pages de manuel SELinux pour les types de domaine ont toutes une présentation commune. Comme pour tout ensemble de pages de manuel, plus vous lisez de pages de manuel, plus il est facile de parcourir ou de lire rapidement la suivante.
Chaque page de manuel commence par les champs NAME et DESCRIPTION attendus de toute page de manuel. Les pages de manuel du domaine SELinux incluent alors les sections ENTRYPOINTS et PROCESS TYPES. (Les points d'entrée sont les types attribués aux fichiers exécutables, qui, lorsqu'ils sont lancés en tant que démons, passent aux types de processus confinés.)
Cependant, tous les types de processus ne sont pas des démons, certains peuvent être des exécutables interactifs. Par exemple, sshd_exec_t
est un point d'entrée qui passe au sshd_t
type de processus. De plus, sshd_t
, ssh_t
, et ssh_keygen_t
et sont également des exemples de types de processus.
Les types de processus sont également appelés types de domaine et sont les types qui peuvent être placés en mode permissif avec le semanage
commande.
Après toutes les sections de point d'entrée et de type de processus, la page de manuel du domaine SELinux contient des sections pour tous les BOOLEANS, TYPES DE PORT, FICHIERS GÉRÉS et CONTEXTES DE FICHIER qui s'appliquent à ce domaine. Ces sections définissent des mots clés et fournissent des exemples de modifications pouvant être apportées avec le semanage
commande. L'activation d'un booléen permet un ensemble de règles différent pour différents cas d'utilisation. Les modifications de contexte de fichier et de port permettent à un système d'être configuré pour conserver les données dans un emplacement autre que celui par défaut ou s'exécuter sur un port autre que celui par défaut.
Chaque page de manuel se termine par une liste de COMMANDES référencées dans la page de manuel et les sections AUTEUR et VOIR AUSSI de la page de manuel traditionnelle.
Commencer à explorer
Avec le targeted
stratégie, le httpd
La page de domaine est probablement la plus longue, car ce domaine contient le plus de booléens et de types de fichiers à décrire. C'était aussi l'un des premiers domaines confinés dans l'histoire du SELinux targeted
politique.
Commencez avec un domaine qui vous est familier tel que sshd
, httpd
, ou ntpd
. Recherchez ensuite les domaines pertinents pour votre environnement. Après avoir installé les selinux-docs
package, j'ai plus de 850 pages de manuel à explorer sur mon système !
Et rappelez-vous, continuez à appliquer SELinux ! (Voici comment.)