SELinux

SELinux pour les débutants utilisant CentOS

SELinux pour les débutants utilisant CentOS
Développé par la NSA pour empêcher les accès malveillants et les intrusions, Security-Enhanced Linux ou SELinux est une fonctionnalité de contrôle d'accès avancée livrée avec la plupart des distributions Linux modernes. SELinux est défini comme le système de contrôle d'accès obligatoire (MAC) développé en remplacement du système de contrôle d'accès discrétionnaire (DAC).

SELinux peut sembler intimidant et très difficile à mettre en œuvre dans la plupart des systèmes modernes. Cependant, la configuration de SELinux présente d'énormes avantages à la fois pour l'application de la sécurité et le dépannage.

Ce tutoriel abordera divers concepts mis en œuvre par SELinux et explorera diverses méthodes pratiques de mise en œuvre de SELinux.

REMARQUE : avant de commencer, il est bon d'utiliser les commandes de ce didacticiel en tant qu'utilisateur root ou utilisateur du groupe sudoers.

Installer les packages SELinux

Installons divers packages SELinux, qui à leur tour aideront à travailler avec les politiques SELinux.

Avant de procéder à l'installation des packages SELinux, il est bon de vérifier lesquels sont installés sur le système actuel.

Dans la plupart des installations de distributions REHL, certains packages sont installés par défaut. Ces forfaits comprennent :

  1. setools - ce package est utilisé pour surveiller les journaux, interroger les politiques et gérer les fichiers de contexte.
  2. policycoreutils-python - fournit des utilitaires de base python pour la gestion de SELinux
  3. policycoreutils - ce paquet fournit également des utilitaires pour gérer SELinux.
  4. mcstrans - mcstrans fournit le démon de traduction SELinux, qui traduit différents niveaux dans des formats faciles à comprendre.
  5. setools-console - similaire à setools.
  6. Selinux-policy - il fournit une référence pour configurer la politique SELinux
  7. Selinux-policy-targeted - similaire à SELinux-policy
  8. Libselinux-utils - Utilitaires SELinux libselinux qui aident à gérer SELinux
  9. Setroubleshoot-server - outils de dépannage de SELinux

Pour vérifier quels packages sont déjà installés sur votre système, vous pouvez utiliser la commande rpm -qa et rediriger le résultat vers grep pour SELinux comme :

tr/min -qa | grep selinux
libselinux-utils-2.9-4.el8_3.x86_64
rpm-plugin-selinux-4.14.3-4.el8.x86_64
selinux-policy-targeted-3.14.3-54.el8_3.2.noarque
python3-libselinux-2.9-4.el8_3.x86_64
selinux-policy-3.14.3-54.el8_3.2.noarque
libselinux-2.9-4.el8_3.x86_64

Cela devrait vous donner une sortie de tous les packages installés pour le support SELinux

Si tous les packages SELinux ne sont pas installés sur votre système, utilisez yum pour les installer comme indiqué dans la commande ci-dessous :

yum installer policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans

Modes et états de SELinux

Commençons maintenant à jouer avec SELinux, en particulier les modes SELinux.

Modes SELinux

Lorsqu'il est activé, SELinux peut avoir trois modes possibles :

Mode d'application

Si le mode SELinux est appliqué, il garantira qu'aucun accès non autorisé au système par un utilisateur ou un processus n'est refusé. Le mode d'application conserve également des journaux de toutes les tentatives d'accès non autorisé.

Mode permissif

Le mode permissif agit comme un état SELinux partiellement activé. Dans ce mode, aucun accès n'est refusé car SELinux n'applique pas ses politiques dans ce mode. Cependant, le mode permissif conserve un journal de toutes les tentatives de violation de stratégie. Ce mode est très efficace pour tester avant de l'activer complètement, car les utilisateurs et les composants peuvent toujours interagir avec le système tout en collectant des journaux. Cela vous permet d'affiner votre système comme bon vous semble.

Mode désactivé

Le mode désactivé peut également être considéré comme un état désactivé dans lequel SELinux est désactivé et n'offre aucune sécurité.

États SELinux

Une fois SELinux installé sur un système. Il peut avoir des états binaires : activé et désactivé. Pour afficher l'état de SELinux, utilisez la commande :

forcer
Désactivée

La sortie ci-dessus indique que SELinux est actuellement désactivé.

Vous pouvez également utiliser la commande sestatus comme indiqué ci-dessous :

statut
Statut SELinux : désactivé

Activer et désactiver SELinux

Les états et la configuration de SELinux sont gérés par le fichier de configuration situé dans /etc/selinux/config. Vous pouvez utiliser la commande cat pour afficher son contenu.

chat /etc/selinux/config
#Ce fichier contrôle l'état de SELinux sur le système.
#SELINUX= peut prendre l'une de ces trois valeurs :
#enforcing - La politique de sécurité SELinux est appliquée.
#permissive - SELinux imprime des avertissements au lieu d'appliquer.
#disabled - Aucune politique SELinux n'est chargée.
SELINUX=application
#SELINUXTYPE= peut prendre l'une de ces trois valeurs :
# ciblé - Les processus ciblés sont protégés,
# minimum - Modification de la politique ciblée. Seuls les processus sélectionnés sont protégés.
# mls - Protection de sécurité à plusieurs niveaux.
SELINUXTYPE=ciblé

À partir de la sortie ci-dessus, nous avons deux directives principales activées. La directive SELINUX a spécifié le mode dans lequel SELinux est configuré. La directive SELINUXTYPE spécifie l'ensemble de règles SELinux. Par défaut, SELinux utilise une politique ciblée qui vous permet de personnaliser les autorisations de contrôle d'accès. L'autre politique est la sécurité à plusieurs niveaux ou MLS.

Vous pouvez trouver une politique minimale dans certaines versions.

cd /etc/selinux/
[ls -l
au total 4
-rw-r--r-- 1 root root 548 16 février 22:40 config
drwxr-xr-x 1 racine racine 4096 16 février 22:43 mls
-rw-r--r-- 1 racine racine 2425 21 juil. 2020 semanage.conf
drwxr-xr-x 1 root root 4096 16 février 22:40 ciblé

Voyons maintenant comment activer SELinux sur le système. Nous vous recommandons de définir d'abord le mode SELINUX sur permissif et non forcé.

nano /etc/selinux/config

Modifiez maintenant la directive SELINUX comme suit :

SELINUX=permissif

Une fois que vous avez enregistré le fichier, effectuez un redémarrage du système.

redémarrer

REMARQUE : Nous vous recommandons fortement de définir la directive SELINUX sur permissive avant d'appliquer SELinux.

Une fois le système redémarré, vérifiez les journaux signalés par SELinux dans /var/log/messages.

Ensuite, assurez-vous de ne pas avoir d'erreurs et appliquez SELinux en définissant la directive à appliquer dans /etc/selinux/config

Enfin, vous pouvez afficher l'état de SELinux à l'aide de la commande sestatus :

Statut SELinux : activé
Montage SELinuxfs : /sys/fs/selinux
Répertoire racine de SELinux : /etc/selinux
Nom de la stratégie chargée : ciblé
Mode actuel : application
Mode à partir du fichier de configuration : erreur (succès)
État de la stratégie MLS : activé
Statut deny_unknown de la politique : autorisé
Vérification de la protection de la mémoire : réelle (sécurisée)
Version maximale de la politique du noyau : 31

Vous pouvez également utiliser la commande setenforce pour basculer entre les différents modes SELinux. Par exemple, pour définir le mode sur permissif, utilisez la commande :

mettre en vigueur la permission

Ce mode est temporaire et sera restauré à l'un dans le fichier de configuration après un redémarrage.

sestatus état SELinux : activé
Montage SELinuxfs : /sys/fs/selinux
Répertoire racine de SELinux : /etc/selinux
Nom de la stratégie chargée : ciblé
Mode actuel : permissif
Mode à partir du fichier de configuration : application
État de la stratégie MLS : activé
Statut de deny_unknown de la politique : autorisé
Vérification de la protection de la mémoire : réelle (sécurisée)
Version maximale de la politique du noyau : 31

Politique et contexte SELinux

Pour éviter toute confusion pour les débutants de SELinux, nous n'approfondirons pas la façon dont les politiques de SELinux sont mises en œuvre, mais nous l'aborderons simplement pour vous donner une idée.

SELinux fonctionne en mettant en œuvre des politiques de sécurité. Une politique SELinux fait référence à une règle utilisée pour définir les droits d'accès pour chaque objet du système. Les objets font référence aux utilisateurs, aux processus, aux fichiers et aux rôles.

Chaque contexte est défini sous la forme user:role:type:level.

Par exemple, créez un répertoire dans votre répertoire personnel et affichez son contexte de sécurité SELinux comme indiqué dans les commandes ci-dessous :

mkdir ~/linuxhint_dir
ls -Z ~/ | grep linuxhint

Cela affichera la sortie comme indiqué ci-dessous :

unconfined_u:object_r:user_home_t:s0 linuxhint_dir

Vous pouvez également trouver d'autres répertoires avec les contextes de sécurité tels que :

system:_u:object_r:user_home_t:s0

Vous pouvez réaliser que la sortie ci-dessus suit la syntaxe de user:role:type:level.

Conclusion

C'était un tutoriel pour débutant sur SELinux utilisant CentOS 8. Bien que le didacticiel soit conçu pour les débutants, il est plus que suffisant pour vous familiariser avec SELinux et supprimer la nature intimidante de SELinux.

Merci pour la lecture.

Tutoriel OpenTTD
OpenTTD est l'un des jeux de simulation d'entreprise les plus populaires. Dans ce jeu, vous devez créer une merveilleuse entreprise de transport. Cepe...
SuperTuxKart pour Linux
SuperTuxKart est un excellent titre conçu pour vous apporter l'expérience Mario Kart gratuitement sur votre système Linux. C'est assez stimulant et am...
Tutoriel Bataille pour Wesnoth
The Battle for Wesnoth est l'un des jeux de stratégie open source les plus populaires auxquels vous pouvez jouer en ce moment. Non seulement ce jeu es...