GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment configurer selinux sur Cent OS

Introduction

Security Enhanced Linux ou SELinux est un mécanisme de contrôle d'accès avancé intégré à la plupart des distributions Linux modernes. Il a été initialement développé par la National Security Agency des États-Unis pour protéger les systèmes informatiques contre les intrusions malveillantes et la falsification. Au fil du temps, SELinux est tombé dans le domaine public et diverses distributions l'ont depuis incorporé dans leur code

De nombreux administrateurs système trouvent que SELinux est un territoire quelque peu inexploré. Le sujet peut sembler intimidant et parfois assez déroutant. Cependant, un système SELinux correctement configuré peut réduire considérablement les risques de sécurité, et en savoir un peu à ce sujet peut vous aider à résoudre les messages d'erreur liés à l'accès. Dans ce didacticiel, nous découvrirons les concepts derrière SELinux - ses packages, ses commandes et ses fichiers de configuration

Installation des packages SELinux

Un certain nombre de packages sont utilisés dans SELinux. Certains sont installés par défaut. Voici une liste des distributions basées sur Red Hat :

  • policycoreutils (fournit des utilitaires pour gérer SELinux)
  • policycoreutils-python (fournit des utilitaires pour gérer SELinux)
  • selinux-policy (fournit la politique de référence SELinux)
  • selinux-policy-targeted (fournit une stratégie ciblée SELinux)
  • libselinux-utils (fournit quelques outils pour gérer SELinux)
  • setroubleshoot-server (fournit des outils pour déchiffrer les messages du journal d'audit)
  • setools (fournit des outils pour la surveillance des journaux d'audit, la politique d'interrogation et la gestion du contexte des fichiers)
  • setools-console (fournit des outils pour la surveillance des journaux d'audit, la politique d'interrogation et la gestion du contexte des fichiers)
  • mcstrans (outils pour traduire différents niveaux dans un format facile à comprendre)

Certains d'entre eux sont déjà installés. Pour vérifier quels packages SELinux sont installés sur votre système CentOS 7, vous pouvez exécuter quelques commandes comme celle ci-dessous (avec différents termes de recherche après grep ) en tant qu'utilisateur root :

rpm -qa | grep selinux

Le résultat devrait ressembler à ceci :

libselinux-utils-2.2.2-6.el7.x86_64
libselinux-2.2.2-6.el7.x86_64
selinux-policy-targeted-3.12.1-153.el7.noarch
selinux-policy-3.12.1-153.el7.noarch
libselinux-python-2.2.2-6.el7.x86_64

Vous pouvez continuer et installer tous les packages avec la commande ci-dessous (yum mettra simplement à jour ceux que vous avez déjà), ou seulement ceux qui manquent à votre système :

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

Nous devrions maintenant avoir un système chargé avec tous les packages SELinux.

Modes SELinux

Il est temps de commencer à jouer avec SELinux, alors commençons par les modes SELinux. À tout moment, SELinux peut être dans l'un des trois modes possibles :

  • Application
  • Permissif
  • Désactivé

En mode d'application, SELinux applique sa politique sur le système Linux et assurez-vous que toute tentative d'accès non autorisé par des utilisateurs et des processus est refusée. Les refus d'accès sont également écrits dans les fichiers journaux pertinents. Nous parlerons des politiques SELinux et des journaux d'audit plus tard.

Le mode permissif est comme un état semi-activé. SELinux n'applique pas sa politique en mode permissif, donc aucun accès n'est refusé. Cependant, toute violation de stratégie est toujours consignée dans les journaux d'audit. C'est un excellent moyen de tester SELinux avant de l'appliquer.

Le mode désactivé est explicite :le système ne fonctionnera pas avec une sécurité renforcée.

Vérification des modes et de l'état de SELinux

Nous pouvons exécuter le getenforce commande pour vérifier le mode SELinux actuel.

getenforce

SELinux devrait actuellement être désactivé, donc la sortie ressemblera à ceci :

Disabled

Nous pouvons également exécuter le sestatus commande :

sestatus

Lorsque SELinux est désactivé, la sortie affichera :

SELinux status:        disabled

Fichier de configuration SELinux

Le fichier de configuration principal pour SELinux est /etc/selinux/config. Nous pouvons exécuter la commande suivante pour afficher son contenu :

cat /etc/selinux/config

La sortie ressemblera à ceci :

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Il y a deux directives dans ce fichier. La directive SELINUX dicte le mode SELinux et elle peut avoir trois valeurs possibles comme nous en avons discuté précédemment.

Activation et désactivation de SELinux

L'activation de SELinux est assez simple; mais contrairement à la désactivation, cela doit être fait en deux étapes. Nous supposons que SELinux est actuellement désactivé et que vous avez installé tous les packages SELinux de la section précédente.

Dans un premier temps, nous devons modifier le /etc/selinux/config fichier pour changer la directive SELINUX en mode permissif.

vi /etc/sysconfig/selinux
...
SELINUX=permissive
...

Définir l'état sur permissive est nécessaire car chaque fichier du système doit avoir son contexte étiqueté avant que SELinux puisse être appliqué. À moins que tous les fichiers ne soient correctement étiquetés, les processus exécutés dans des domaines confinés peuvent échouer car ils ne peuvent pas accéder aux fichiers avec les contextes corrects. Cela peut entraîner l'échec ou le démarrage du processus de démarrage avec des erreurs. Nous présenterons des contextes et domaines plus loin dans le didacticiel.

Effectuez maintenant un redémarrage du système :

reboot

Le processus de redémarrage verra tous les fichiers du serveur étiquetés avec un contexte SELinux.

Dans la deuxième phase, nous devons modifier le fichier de configuration pour changer la directive SELINUX de permissive pour appliquer dans le /etc/sysconfig/selinux fichier :

...
SELINUX=enforcing
...

Ensuite, redémarrez à nouveau le serveur.

reboot

Une fois le serveur de nouveau en ligne, nous pouvons exécuter le sestatus commande pour vérifier l'état de SELinux. Il devrait maintenant afficher plus de détails sur le serveur :

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          error (Success)
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

Cent OS
  1. Comment installer Bugzilla 5.0 sur CentOS 7

  2. Comment configurer la liste grise dans SmarterMail

  3. Comment configurer IMAP avec SSL

  4. Comment désactiver SELinux sur CentOS ?

  5. Comment installer et configurer "setroubleshootd" sur CentOS/RHEL

Comment configurer l'adresse IP dans CentOS 7 / RHEL 7 et CentOS 6 / RHEL 6

Comment désactiver SELinux sur CentOS

Comment désactiver SELinux sur AlmaLinux 8

Comment configurer Nginx avec SSL

Comment configurer les "touches de souris" ?

Comment configurer Skeleton Directory ?