41 votes

Raisons de désactiver / activer SELinux

Dans la lignée de ce question sur StackOverflow et la foule complètement différente que nous avons ici, je me demande : quelles sont vos raisons de désactiver SELinux (en supposant que la plupart des gens le font encore) ? Souhaitez-vous le garder activé ? Quelles anomalies avez-vous rencontrées en laissant SELinux activé ? En dehors d'Oracle, quels autres fournisseurs ont des difficultés à prendre en charge les systèmes avec SELinux activé ?

Question bonus : Quelqu'un a-t-il réussi à faire fonctionner Oracle sur RHEL5 avec SELinux en mode ciblé ? Je veux dire, strict serait génial, mais je ne pense pas que ce soit encore possible, donc restons d'abord sur le mode ciblé ;-)

28voto

tylerl Points 14785

RedHat active SELinux par défaut parce que c'est plus sûr. Presque tous les vendeurs qui utilisent des produits dérivés de Redhat activent SELinux off parce qu'ils ne veulent pas avoir à consacrer du temps (et donc de l'argent) pour comprendre pourquoi la chose ne fonctionne pas. Les gens de Redhat/Fedora ont investi énormément de temps et d'efforts pour faire de SELinux une option viable dans l'entreprise, mais peu d'autres organisations s'intéressent vraiment à SELinux. votre sécurité. (Ils se soucient de leur la sécurité et la réputation de sécurité de leur produit, ce qui est une chose totalement différente).

Si tu peux le faire fonctionner, alors fonce. Sinon, n'espérez pas beaucoup d'aide de la part des vendeurs. Vous pouvez probablement obtenir de l'aide des gars de Redhat/Fedora, des listes de diffusion selinux et du canal #selinux sur freenode. Mais pour des sociétés comme Oracle -- eh bien, SELinux ne fait pas vraiment partie de leur plan d'affaires.

10 votes

Un fournisseur de logiciels "d'entreprise" engagé pour installer son produit a traité un problème de permission en faisant un chmod -R 777 * sur une grande arborescence de répertoires. Ils ne se soucient vraiment pas de votre sécurité.

0 votes

@tylerl pourquoi dites-vous que des entreprises comme Oracle ne prennent pas en compte SELinux dans leur plan d'affaires. Avez-vous un article ou s'agit-il plutôt d'une expérience personnelle ?

24voto

Ophidian Points 2138

En général, il est préférable d'exécuter SELinux en mode Permissif plutôt que de le désactiver complètement. Vous pouvez alors vérifier (via audit2why ) après un certain temps pour voir quels types de violations auraient été refusés lors de votre utilisation habituelle, et construire des politiques personnalisées via audit2allow si ces "violations" sont des faux-positifs pour votre installation.

J'ai constaté que le comportement de SELinux sur les systèmes non dérivés de Fedora est nettement plus délicat que celui d'un système Fedora/RHEL typique par défaut.

Si vous ne l'avez pas déjà vu, vous pouvez trouver le Guide d'utilisation de Fedora SELinux éducatif.

18voto

BrewinBombers Points 1122

Raisons pour lesquelles :

  • Un niveau de sécurité plus élevé grâce au contrôle d'accès obligatoire
  • Vous avez besoin d'une raison autre qu'un niveau de sécurité plus élevé ? :-)

Raisons contre :

  • Difficile à comprendre
  • Difficile à gérer
  • Difficile à dépanner

Cela dit, si vous envisagez d'utiliser SELinux, je vous recommande le livre intitulé SELinux par exemple .

J'ai travaillé pour un entreprise qui avait SELinux activé, en mode enforcing, sur chaque système. La clé pour nous a été de comprendre et d'utiliser le programme audit2allow qui peut être utilisé pour créer de nouvelles règles de contexte.

D'abord, on génère un modèle avec audit2allow, puis on utilise un script pour le construire, comme ceci :

export NAME="my_serviced"
sudo audit2allow -m "${NAME}" -i /var/log/audit/audit.log > ${NAME}.te
sudo setup_semodule ${NAME}

Le module setup_semodule script :

#!/bin/sh

# Where to store selinux related files
SOURCE=/etc/selinux/local
BUILD=/etc/selinux/local
NAME=$1

/usr/bin/checkmodule -M -m -o ${BUILD}/${NAME}.mod ${SOURCE}/${NAME}.te
/usr/bin/semodule_package -o ${BUILD}/${NAME}.pp -m ${BUILD}/${NAME}.mod
/usr/sbin/semodule -i ${BUILD}/${NAME}.pp

/bin/rm ${BUILD}/${NAME}.mod ${BUILD}/${NAME}.pp

Cette opération construit le module à partir du modèle (fichier .te), génère un paquet, puis charge le module.

Nous avons utilisé Puppet pour notre système de gestion de la configuration, et nous avons écrit une configuration pour Puppet afin de gérer tout cela.

Module Puppet SELinux :

2 votes

+1, information très utile.

10voto

Brad Points 1004

La raison pour laquelle il faut le désactiver est qu'il peut être difficile à déboguer.

Cependant, nous ne l'éteignons pas maintenant. Nous le laissons presque toujours en marche. Je l'éteins occasionnellement pour vérifier rapidement si SElinux est un problème ou non.

Il est beaucoup plus facile de déboguer maintenant, surtout si vous vous familiarisez avec audit2allow. Vous n'avez pas vraiment besoin de le comprendre avec audit2allow, mais vous pouvez parfois finir par ouvrir les choses plus largement que vous ne le pensez avec audit2allow. Cela dit, un peu de SELinux vaut mieux que rien.

Je ne suis en aucun cas un expert de SELinux et je ne l'utilise que depuis quelques années. Je ne comprends toujours pas vraiment les bases, mais j'en sais assez pour faire fonctionner des applications, qu'elles soient incluses dans la distribution ou qu'elles soient compilées au hasard sur le net.

La principale chose que j'ai eu à utiliser sont les ls -lZ (montrer le contexte selinux), audit2allow , chcon , semodule , getenforce , setenforce et les booléens. Avec ces outils, j'ai réussi à faire fonctionner toutes les applications dont j'avais besoin sous SELinux.

Je trouve que l'un des grands problèmes du débogage des problèmes SELinux, est simplement de se rappeler de vérifier les problèmes SELinux lorsque j'ai d'autres problèmes inexplicables. Il me faut généralement un peu de temps pour me dire "h ! vérifiez SELinux !!".

Selon la page de manuel de bind, SELinux est beaucoup plus sûr que d'exécuter bind dans une prison chroot. Beaucoup d'autres personnes qui ont beaucoup plus de connaissances que moi le recommandent également, alors je l'exécute aveuglément maintenant. Et je pense que malgré les problèmes occasionnels, cela vaut probablement la peine de le faire.

2 votes

+1 pour avoir souligné qu'il est souvent préférable de laisser SELinux en fonctionnement et de ne le désactiver que pour vérifier s'il est à l'origine d'un problème.

2voto

Jonas Points 469

J'ai désactivé SELinux pour AppArmor Je l'ai trouvé beaucoup plus convivial et facile à maintenir que SELinux.

0 votes

Intéressant. Sur quelle distro es-tu ? Je n'ai jamais utilisé AppArmor, mais je suis curieux de savoir quelle distro l'a configuré d'emblée et quelles sont ses caractéristiques. Je vais me pencher sur la question. Personnellement, je n'ai pas de problème avec SELinux, mais il faut s'y habituer.

0 votes

AppArmor a été développé à l'origine par Novell et est inclus par défaut dans toutes leurs distributions openSUSE et SUSE Linux Enterprise. Il est activé par défaut dans les distributions Enterprise et est facile à activer dans les distributions grand public. Ubuntu l'a intégré depuis la version 7.04, mais il n'est pas automatiquement activé par défaut pour toutes les applications.

0 votes

Je crois me souvenir que Novell a licencié la plupart des membres de l'équipe AppArmor. Ubuntu ne l'avait-il pas supprimé de sa distribution ? Ou est-ce que j'entends à nouveau les voix dans ma tête ? ;-)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X