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
# setenforce 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# semanage user -m -L s1 -r s1-s15 _staff_u
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Génère des entrées de configuration du contexte de fichier SELinux pour les répertoires personnels des utilisateurs :
genhomedircon
# genhomedircon
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Rétablir les contextes de sécurité des fichiers par défaut :
restorecon -R -F -v /home/
# 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Attribuer un niveau d'autorisation à l'utilisateur :
semanage login -m -r s1 example_user
# semanage login -m -r s1 example_user
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# chcon -R -l s1 /home/example_user
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# setenforce 1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
# semanage login -l Login Name SELinux User MLS/MCS Range Service __default__ user_u s0-s0 * example_user user_u s1 * ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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.