« LINUX:SELinux » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
(9 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 53 : | Ligne 53 : | ||
Le fichier de configuration central est "/etc/selinux/config". | Le fichier de configuration central est "/etc/selinux/config". | ||
L'option "SELINUX" possède trois états: | |||
* '''disable''' : SELinux est désactivé, non opérationnel; c'est l'état que j'ai longtemps utilisé comme de nombreux autres administrateurs afin d'éviter les difficultés de mise en oeuvre. | * '''disable''' : SELinux est désactivé, non opérationnel; c'est l'état que j'ai longtemps utilisé comme de nombreux autres administrateurs afin d'éviter les difficultés de mise en oeuvre. | ||
* '''permissive''' : SELinux est activé, les règles sont testées mais non appliquées. Si une règle n'est pas respectée, un message d'erreur est ajoutée aux journaux mais aucun blocage n'est effectué. | * '''permissive''' : SELinux est activé, les règles sont testées mais non appliquées. Si une règle n'est pas respectée, un message d'erreur est ajoutée aux journaux mais aucun blocage n'est effectué. | ||
Ligne 81 : | Ligne 81 : | ||
systemctl start rsyslog.service | systemctl start rsyslog.service | ||
systemctl status rsyslog.service | systemctl status rsyslog.service | ||
Ces services sont cruciaux, ce sont eux qui vont recueillir les messages et alertes. | |||
Ligne 89 : | Ligne 90 : | ||
On | On doit redémarrer la machine. Ce n'est qu'à cette condition que l'on pourra effectuer les commandes suivantes. C'est pour cette raison que nous n'avons pas commencé par une explication succincte de quelques base de SELinux car nous n'aurions pu les montrer par l'exemple. | ||
Ligne 131 : | Ligne 132 : | ||
Et tout un immense ensemble de règles régissent les interactions entre ces divers contexts. Cet ensemble de règles définit la sécurité SELinux. | Et tout un immense ensemble de règles régissent les interactions entre ces divers contexts. Cet ensemble de règles définit la sécurité SELinux. | ||
=[[LINUX:SELinux-Alertes et Journaux|Alertes et Journaux]]= | |||
Quand une règle est enfreinte, outre que l'accès demandé est refusé, une alerte est déclenchée et un message est envoyé aux journaux. | |||
=[[LINUX:SELinux-Module|Module]]= | =[[LINUX:SELinux-Module|Module]]= | ||
Un module est un ensemble cohérent des différentes composantes de SELinux: Types, règles, Fcontext,... | Un module est un ensemble cohérent des différentes composantes de SELinux: Types, règles, Fcontext,... | ||
Il se présente sous une forme ayant beaucoup d'analogie avec un programme | Il se présente sous une forme ayant beaucoup d'analogie avec un programme. | ||
=[[LINUX:SELinux-Méthode de première mise en route|Méthode de première mise en route]]= | |||
Je ne conseille pas de suivre aveuglément les conseils données par Cockpit ou les messages du service setroubleshootd.service. Je présente ici l'approche que j'ai utilisée. | |||
=[[LINUX:SELinux- | =[[LINUX:SELinux-Exercice de création d'un module personnel|Exercice de création d'un module personnel]]= | ||
J'ai voulu essayer de créer un module pour une application personnelle élémentaire. | |||
=Problème= | |||
Suite à une mise à jour classique sous Fedora 41, Selinux était en erreur. Plusieurs problèmes apparaissent de façon répétitives dont voici quelques cas: | |||
* Lors d'un redémarrage, nombre de services ne démarrent plus comme SSHD, Fail2Ban,... | |||
* Plusieurs accès sont refusés | |||
* L'ajout et l'élimination de modules personnels sont impossibles avec des messages d'erreurs liés à la base des modules | |||
* La recompilation de la base de modules s'avère impossible. Voici un extrait des messages d'erreur. | |||
---- | |||
Found conflicting filecon rules | |||
Problems processing filecon rules | |||
Failed post db handling | |||
Post process failed | |||
semodule: Failed! | |||
---- | |||
On remarque que parmi les modules, celui nommé "extra_binsbin" (classe 400) pose problème et est nouveau mais il est impossible de le retirer. | |||
Une solution proposée est d'éliminer Selinux du système et toutes ses traces et ensuite de recommencer la réinstallation et la configuration à partir de rien. Mais ceci s'avère impossible car il est protégé. | |||
dnf remove selinux-policy-targeted | |||
La solution trouvée est de réinstaller Selinux: | |||
* On se met en mode permissif ou on le désactive. | |||
* On le réinstalle. | |||
dnf reinstall selinux-policy-targeted | |||
* Eventuellement on recompile la base des modules | |||
semodule -B -v | |||
* Par sécurité, on active la labellisation à nouveau des fichiers. | |||
touch /.autorelabel | |||
* On réactive Selinux ou au moins on le met en mode permissif pour tester en modifiant le fichier "/etc/selinux/config". | |||
* On redémarre la machine. | |||