Skip to Content

Désactiver SELInux, quelle idée !

Quand une fausse bonne idée masque et révèle des failles de sécurité

Un constat terrible

Il arrive encore aujourd'hui de lire des procédures d'installation de logiciels destinés aux entreprises, grandes ou petites, qui commencent par cette directive, avancée comme un pré-requis mais qui sonne comme un terrible aveu, directive qui dit à peu près ceci :


Avant de débuter l'installation sur Linux, vérifiez que SELinux est désactivé.

Il arrive, toujours aujourd'hui, de lire sur des forums de solutions pour administrateurs système, et parfois même sur des forums de support d'éditeurs, des contributions qui disent à peu prés ceci :


J'ai désactivé SELinux et finalement ça marche. Pas la peine de chercher plus loin !

Émile HAY-IMAGE • SysAdmin chez MyCompany


💡

Chez LHQG, nous considérons que désactiver SELinux n'est que très rarement une bonne idée.

Ce n'est qu'en parfaite connaissance de cause qu'il faut s'y résoudre ; et toujours pour une période extrêmement limitée et dans un cadre clairement documenté et révisé fréquemment.


Nous vous expliquons pourquoi...

Désactiver SELinux pour installer et faire fonctionner un logiciel sur un serveur, c'est un peu comme supprimer les portes blindées d'une banque pour installer une nouvelle machine à compter les billets. C'est vrai, tout circule plus librement: le personnel, les clients, les billets, les documents de santé qui accompagnent les demandes de prêt immobilier, les braqueurs, les concurrents...


Le distributeur de votre système GNU/Linux livre une politique SELinux adaptée à ce système d'exploitation et prévue pour les principaux usages qu'en font les entreprises : serveur de base de données, serveur web, serveur d'application, serveur d'impression, ...

Cette politique SELinux par défaut est ajustable à loisir de deux façons:

  • au moyen de commutateurs booléens, qui activent/désactivent certains pans de la politique déjà prévus par le distributeur Linux,
  • au moyen de modules complémentaires de politique SELinux développés par des éditeurs de logiciels tiers pour accompagner le logiciel qu'ils vendent/distribuent, ou par des ingénieurs système tels que ceux de LHQG. 
⚠️

Quand un éditeur de logiciels tiers recommande de désactiver SELinux au lieu de livrer un module complémentaire, il faut y regarder à deux fois.

Cette recommandation est en fait parfois un aveu de travail inachevé !

Il faut challenger cet éditeur. Quitte à demander à LHQG de vous accompagner pour le faire !


Écrire une politique SELinux n'est pas une tâche insurmontable. Mais c'est surtout une tâche importante pour assurer une bonne intégration du logiciel avec le système d'exploitation.

La politique SELinux, ou le module de politique, dédié à un logiciel donné garantit que le système Linux n'autorisera que les actions légitimes prévues par l'équipe de développement.

Si les comportements qui consistent à :

  • exécuter un shell,
  • devenir root,
  • effacer des traces système ou des logs applicatifs,
  • se connecter à un port réseau distant autre que celui d'une base donnée de l'entreprise
  • lire toute une série de fichiers et les envoyer...

ne font pas partie des actions prévues, alors il n'y a aucune raison de prendre le risque de laisser ces comportements illicites se produire !

Toute application, tout logiciel, toute bibliothèque de fonctions ou d'API, contient quelques défauts, c'est inévitable, la perfection n'est pas de ce monde. Chaque bug ou chaque défaut porte en lui le potentiel de se transformer un jour en faille par laquelle une personne aux motivations douteuses tentera de s'introduire.


Par conséquent, recommander de désactiver SELinux pour permettre à son logiciel de fonctionner, revient d'une certaine façon pour l'éditeur à confesser qu'il n'a pas fait ce travail indispensable, soit qu'il n'ait pas pu ou su le faire, soit qu'il n'en ait pas vu la valeur.

Dans certains cas, heureusement rares mais bien pires encore, cela pourrait revenir à confesser que l'éditeur ne sait pas ou plus vraiment ce qu'est censé faire son logiciel !

💡

De nos jours, chaque éditeur de logiciels destinés à tourner sur GNU/Linux, un peu concerné par la cybersécurité, devrait fournir un module de politique SELinux ad hoc pour border le fonctionnement de son logiciel.

Que cet éditeur fasse appel à ses propres ressources ou qu'il fasse appel à LHQG pour écrire, et maintenir, cette politique SELinux, l'important pour vous c'est qu'au final vous disposiez d'un module SELinux sur vos serveurs !


SELinux n'est pas un empêcheur de tourner en rond, c'est un empêcheur de pirater dans tous les sens !

Désactiver SELInux, quelle idée !
LHQG, Hubert Quarantel-Colombani October 8, 2024
Share this post
Alternatives to CentOS Linux
Choosing a replacement Linux distribution