6.4. Établissement de l'autorisation de l'utilisateur dans le système MLS
Après avoir basculé la politique SELinux sur MLS, vous devez attribuer des niveaux d'habilitation de sécurité aux utilisateurs en les associant à des utilisateurs SELinux confinés. Par défaut, un utilisateur ayant une habilitation de sécurité donnée :
- Impossible de lire des objets ayant un niveau de sensibilité plus élevé.
- Impossible d'écrire sur des objets ayant un niveau de sensibilité différent.
Conditions préalables
-
La politique SELinux est définie sur
mls
. -
Le mode SELinux est défini sur
enforcing
. -
Le paquet
policycoreutils-python-utils
est installé. Un utilisateur assigné à un utilisateur confiné SELinux :
-
Pour un utilisateur non privilégié, assigné à
user_u
(example_user dans la procédure suivante). -
Pour un utilisateur privilégié, affecté à
staff_u
(staff dans la procédure suivante) .
-
Pour un utilisateur non privilégié, assigné à
Assurez-vous que les utilisateurs ont été créés lorsque la politique MLS était active. Les utilisateurs créés dans d'autres politiques SELinux ne peuvent pas être utilisés dans MLS.
Procédure
Facultatif : Pour éviter d'ajouter des erreurs à votre politique SELinux, passez au mode SELinux
permissive
, qui facilite le dépannage :# setenforce 0
ImportantEn mode permissif, SELinux n'applique pas la politique active mais enregistre uniquement les messages AVC (Access Vector Cache), qui peuvent ensuite être utilisés à des fins de dépannage et de débogage.
Définir une plage d'autorisation pour l'utilisateur SELinux
staff_u
. Par exemple, cette commande définit la plage d'autorisation des1
às15
,s1
étant le niveau d'autorisation par défaut :# semanage user -m -L s1 -r s1-s15 _staff_u
Génère des entrées de configuration du contexte de fichier SELinux pour les répertoires personnels des utilisateurs :
# genhomedircon
Rétablir les contextes de sécurité des fichiers par défaut :
# restorecon -R -F -v /home/ Relabeled /home/staff from staff_u:object_r:user_home_dir_t:s0 to staff_u:object_r:user_home_dir_t:s1 Relabeled /home/staff/.bash_logout from staff_u:object_r:user_home_t:s0 to staff_u:object_r:user_home_t:s1 Relabeled /home/staff/.bash_profile from staff_u:object_r:user_home_t:s0 to staff_u:object_r:user_home_t:s1 Relabeled /home/staff/.bashrc from staff_u:object_r:user_home_t:s0 to staff_u:object_r:user_home_t:s1
Attribuer un niveau d'autorisation à l'utilisateur :
# semanage login -m -r s1 example_user
Où
s1
est le niveau d'habilitation attribué à l'utilisateur.Adapter le répertoire personnel de l'utilisateur au niveau d'autorisation de l'utilisateur :
# chcon -R -l s1 /home/example_user
Facultatif : si vous êtes passé au mode SELinux
permissive
, et après avoir vérifié que tout fonctionne comme prévu, repassez au mode SELinuxenforcing
:# setenforce 1
Verification steps
Vérifiez que l'utilisateur est associé au bon utilisateur SELinux et que le niveau d'autorisation attribué est correct :
# semanage login -l Login Name SELinux User MLS/MCS Range Service __default__ user_u s0-s0 * example_user user_u s1 * ...
- Connectez-vous en tant qu'utilisateur dans MLS.
Vérifiez que le niveau de sécurité de l'utilisateur fonctionne correctement :
ImportantLes fichiers utilisés pour la vérification ne doivent pas contenir d'informations sensibles, au cas où la configuration serait incorrecte et où l'utilisateur pourrait accéder aux fichiers sans autorisation.
- Vérifiez que l'utilisateur ne peut pas lire un fichier dont le niveau de sensibilité est plus élevé.
- Vérifiez que l'utilisateur peut écrire dans un fichier avec la même sensibilité.
- Vérifiez que l'utilisateur peut lire un fichier dont le niveau de sensibilité est inférieur.
Ressources supplémentaires
- Section 6.3, « Passage de la politique SELinux à MLS ».
- Section 3.5, « Ajout d'un nouvel utilisateur en tant qu'utilisateur défini par SELinux ».
- Chapitre 2, Modifier les états et les modes SELinux.
- Chapitre 5, Résolution des problèmes liés à SELinux.
- L'article de la base de connaissances " Basic SELinux Troubleshooting in CLI ".