Sur certaines distributions Linux, SELinux est activé par défaut, ce qui peut entraîner des problèmes indésirables si vous ne le faites pas. Vous ne comprenez pas comment fonctionne SELinux et les détails fondamentaux sur la façon de le configurer. Je vous recommande fortement de comprendre SELinux et de l'implémenter dans votre environnement. Mais, jusqu'à ce que vous compreniez les détails d'implémentation de SELinux, vous voudrez peut-être le désactiver pour éviter certains problèmes inutiles.
Pour désactiver SELinux vous pouvez utiliser l'une des 4 méthodes différentes mentionnées dans cet article.
Le SELinux appliquera les politiques de sécurité, y compris les contrôles d'accès obligatoires définis par le département américain de la Défense à l'aide du module de sécurité Linux (LSM) défini dans le noyau Linux. Chaque fichier et processus du système sera étiqueté avec des étiquettes spécifiques qui seront utilisées par SELinux. Vous pouvez utiliser ls -Z et afficher ces étiquettes comme indiqué ci-dessous.
# ls -Z /etc/ -rw-r--r-- root root system_u:object_r:etc_t:s0 a2ps.cfg -rw-r--r-- root root system_u:object_r:adjtime_t:s0 adjtime -rw-r--r-- root root system_u:object_r:etc_aliases_t:s0 aliases drwxr-x--- root root system_u:object_r:auditd_etc_t:s0 audit drwxr-xr-x root root system_u:object_r:etc_runtime_t:s0 blkid drwxr-xr-x root root system_u:object_r:bluetooth_conf_t:s0 bluetooth drwx------ root root system_u:object_r:system_cron_spool_t:s0 cron.d -rw-rw-r-- root disk system_u:object_r:amanda_dumpdates_t:s0 dumpdates
Méthode 1 :Désactiver temporairement SELinux
Pour désactiver temporairement SELinux, vous devez modifier le fichier /selinux/enforce comme indiqué ci-dessous. Veuillez noter que ce paramètre disparaîtra après le redémarrage du système.
# cat /selinux/enforce 1 # echo 0 > /selinux/enforce # cat /selinux/enforce 0
Vous pouvez également utiliser la commande setenforce comme indiqué ci-dessous pour désactiver SELinux. Les paramètres possibles des commandes setenforce sont :Enforcement , Permissif, 1 (activer) ou 0 (désactiver).
# setenforce 0
Méthode 2 :Désactiver définitivement SELinux
Pour désactiver définitivement SELinux, modifiez le /etc/selinux/config et définissez SELINUX=disabled comme indiqué ci-dessous. Une fois que vous apportez des modifications à /etc/selinux/config, redémarrez le serveur pour que les modifications soient prises en compte.
# cat /etc/selinux/config SELINUX=disabled SELINUXTYPE=targeted SETLOCALDEFS=0
Voici les valeurs possibles pour le SELINUX variable dans /etc/selinux/config fichier
- appliquer – La politique de sécurité est toujours appliquée
- permissif - Cela simule simplement la politique d'application en n'imprimant que des messages d'avertissement et en n'appliquant pas vraiment le SELinux. C'est bien de voir d'abord comment fonctionne SELinux et ensuite de déterminer quelles politiques doivent être appliquées.
- désactivé – Désactiver complètement SELinux
Voici les valeurs possibles pour SELINUXTYPE variable dans /etc/selinux/config dossier. Cela indique le type de politiques qui peuvent être utilisées pour SELinux.
- ciblé – Cette stratégie protégera uniquement les démons réseau ciblés spécifiques.
- strict – C'est pour une protection maximale de SELinux.
Méthode 3 :Désactiver SELinux à partir du chargeur de démarrage Grub
Si vous ne trouvez pas le fichier /etc/selinux/config sur votre système, vous pouvez désactiver SELinux en le passant comme paramètre au chargeur de démarrage Grub comme indiqué ci-dessous.
# cat /boot/grub/grub.conf default=0 timeout=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title Enterprise Linux Enterprise Linux Server (2.6.18-92.el5PAE) root (hd0,0) kernel /boot/vmlinuz-2.6.18-92.el5PAE ro root=LABEL=/ rhgb quiet selinux=0 initrd /boot/initrd-2.6.18-92.el5PAE.img title Enterprise Linux Enterprise Linux Server (2.6.18-92.el5) root (hd0,0) kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet selinux=0 initrd /boot/initrd-2.6.18-92.el5.img
Méthode 4 :Désactiver uniquement un service spécifique dans SELinux - HTTP/Apache
Si vous n'êtes pas intéressé par la désactivation de l'ensemble de SELinux, vous pouvez également désactiver SELinux uniquement pour un service spécifique. Par exemple, désactivez SELinux pour le service HTTP/Apache, modifiez le httpd_disable_trans variable dans /etc/selinux/targeted/booleans fichier.
Définissez la variable httpd_disable_trans sur 1 comme indiqué ci-dessous.
# grep httpd /etc/selinux/targeted/booleans httpd_builtin_scripting=1 httpd_disable_trans=1 httpd_enable_cgi=1 httpd_enable_homedirs=1 httpd_ssi_exec=1 httpd_tty_comm=0 httpd_unified=1
Définissez la valeur booléenne SELinux à l'aide de la commande setsebool comme indiqué ci-dessous. Assurez-vous de redémarrer le service HTTP après cette modification.
# setsebool httpd_disable_trans 1 # service httpd restart