Comment installer SELinux sur Debian 12, 11 ou 10

SELinux (Security-Enhanced Linux) est une architecture de sécurité intégrée au noyau Linux qui fournit un mécanisme de prise en charge des politiques de sécurité de contrôle d'accès. Il aide à protéger les systèmes contre les activités malveillantes en appliquant des contrôles d'accès obligatoires (MAC), réduisant ainsi le risque de failles de sécurité. SELinux utilise un ensemble de politiques de sécurité qui définissent la manière dont les processus et les utilisateurs peuvent interagir avec différents fichiers, périphériques et ports réseau.

Pour installer et configurer SELinux sur Debian 12, 11 ou 10, suivez ces étapes. Ce guide couvrira le processus d'installation, la configuration de base et certaines commandes courantes pour gérer les politiques et l'état de SELinux.

Désactiver AppArmor sur Debian

Avant d'installer SELinux, assurez-vous qu'AppArmor, un autre module de sécurité, ne s'exécute pas activement sur votre système Debian. L'exécution simultanée des deux modules de sécurité peut provoquer des conflits.

Pour vérifier si AppArmor est installé et actif, exécutez la commande suivante :

sudo systemctl status apparmor

Si AppArmor est en cours d'exécution, vous devez le désactiver avant d'installer SELinux. Utilisez la commande suivante pour désactiver AppArmor :

sudo systemctl disable apparmor --now

Assurez-vous de le faire, sinon vous pourriez rencontrer des problèmes lorsque vous travaillez avec SELinux.

Procéder à l'installation de SELinux

L'étape suivante implique l'installation des packages SELinux nécessaires et l'activation ultérieure de SELinux sur votre système Debian.

Commencez par ces étapes :

  • Installer Policycoreutils : ce package contient des utilitaires essentiels pour la gestion des politiques SELinux.
  • Installez selinux-utils : ce package propose un ensemble étendu d'utilitaires SELinux.
  • Installez selinux-basics : cela fournit l'infrastructure de base SELinux.

Pour lancer le processus, installez les packages nécessaires pour SELinux en exécutant la commande suivante :

sudo apt install policycoreutils selinux-utils selinux-basics selinux-policy-default

Cette commande récupère et installe les packages essentiels pour activer SELinux sur votre système Debian.

Après avoir installé les packages, la prochaine étape consiste à activer SELinux. Pour ce faire, exécutez la commande suivante avec les autorisations root :

sudo selinux-activate

Cette commande prépare votre système à charger SELinux pendant le processus de démarrage, facilitant ainsi l'utilisation des fonctionnalités de sécurité de SELinux.

Une fois ces étapes terminées, redémarrez votre système pour mettre en œuvre les modifications et lancez SELinux dans le mode souhaité.

sudo reboot

Remarque : Cela peut prendre un certain temps lors du redémarrage du système.

Après le redémarrage du système, installez, activez et configurez SELinux en mode d'application. Ensuite, configurez SELinux selon vos besoins.

Comprendre les modes de SELinux

SELinux, ou Security-Enhanced Linux, offre un mécanisme robuste pour gérer les contrôles d'accès et améliorer la sécurité du système. Au cœur de sa fonctionnalité se trouvent trois modes distincts :

  • Mode d'application: Ce sont les paramètres par défauts. Dans ce mode, SELinux applique activement ses politiques de sécurité, refusant l'accès sur la base de règles prédéterminées.
  • Mode permissif: Bien que ce mode enregistre toutes les violations de politique, il ne parvient pas à les appliquer. C’est utile pour tester et déboguer vos stratégies sans provoquer de perturbations.
  • Mode désactivé: Comme son nom l'indique, ce mode désactive SELinux, garantissant qu'aucune politique n'est appliquée ou enregistrée.

Modification du fichier de configuration SELinux

Le fichier /etc/selinux/config est l'épicentre de la configuration SELinux. Pour accéder à ce fichier à l'aide d'un éditeur de texte comme Nano, la commande suivante est utilisée :

sudo nano /etc/selinux/config

Dans ce fichier de configuration, vous devrez modifier la ligne SELINUX en fonction de votre mode préféré, par exemple :

Mode d'application :

SELINUX=enforcing

Mode permissif :

SELINUX=permissive

Mode désactivé :

SELINUX=disabled

Application de la configuration

Pour que les modifications de la configuration de SELinux prennent effet, un redémarrage du système est nécessaire :

sudo reboot

Options de configuration SELinux supplémentaires

SELinux propose diverses options de configuration qui peuvent être adaptées à vos besoins. Par exemple:

  • SETLOCALDEFS : ce paramètre spécifie l'utilisation de contextes de fichiers définis localement. En définissant cette valeur sur 0, vous demandez au système d'utiliser les contextes de fichiers par défaut fournis par la politique SELinux. Pour désactiver l'utilisation de contextes de fichiers définis localement, éditez le fichier /etc/selinux/config et mettez à jour la ligne SETLOCALDEFS :
SETLOCALDEFS=0
  • SELINUXTYPE : ce paramètre définit le type de stratégie à utiliser. Le type de politique le plus courant est « ciblé », un ensemble de politiques destinées à protéger des services système spécifiques sans affecter l'ensemble du système. Pour définir le type de politique sur « ciblé », modifiez le fichier /etc/selinux/config et mettez à jour la ligne SELINUXTYPE :
SELINUXTYPE=targeted

Configuration de SELinux pour un serveur Web

Par exemple, supposons que vous exécutez un serveur Web sur votre système Debian et que vous visez à configurer SELinux pour autoriser le trafic HTTP et HTTPS. Le semanage La commande est utilisée à cet effet pour mettre à jour la politique SELinux.

Commencez par installer le semanage utilitaire:

sudo apt install policycoreutils-python-utils

Ensuite, exécutez les commandes suivantes pour autoriser le trafic HTTP et HTTPS :

sudo semanage port -a -t http_port_t -p tcp 80
sudo semanage port -a -t http_port_t -p tcp 443

Ces commandes mettent à jour la politique SELinux, permettant à votre serveur Web d'accepter les connexions entrantes sur les ports 80 (HTTP) et 443 (HTTPS).

Ces commandes modifient la politique SELinux, permettant à votre serveur Web de recevoir les connexions entrantes sur les ports 80 (HTTP) et 443 (HTTPS). La commande semanage peut également configurer divers aspects de la sécurité de votre système. Par exemple, pour permettre à un utilisateur spécifique d'accéder à un répertoire, vous pouvez utiliser une commande telle que :

sudo semanage fcontext -a -t user_home_t "/home/myuser(/.*)?"

Cette commande modifie le contexte du fichier pour le répertoire « /home/myuser », permettant à « myuser » d'y accéder. Veuillez vous référer à la page de manuel semanage pour plus de détails sur son utilisation et sa syntaxe.

Enfin, vous pouvez toujours obtenir une mise à jour de votre statut SELinux en exécutant la commande suivante :

sestatus

Vous devriez maintenant voir un résultat similaire à celui-ci :

Statut SELinux : activé Montage SELinuxfs : /sys/fs/selinux Répertoire racine SELinux : /etc/selinux Nom de la politique chargée : par défaut Mode actuel : permissif Mode à partir du fichier de configuration : permissif Statut MLS de la politique : activé Statut deny_unknown de la politique : autorisé Vérification de la protection de la mémoire : Version réelle (sécurisée) de la politique maximale du noyau : 33

N'oubliez pas qu'il s'agit d'un exemple ; votre sortie doit différer en fonction de votre configuration.

Résoudre les problèmes courants de SELinux

Dans cette section, nous aborderons certains problèmes SELinux habituels et donnerons des conseils sur la façon de les résoudre.

Restauration des contextes de fichiers par défaut

Un problème courant avec SELinux concerne les contextes de fichiers incorrects. SELinux refusera l'accès si le contexte du fichier est erroné, ce qui entraînera plusieurs problèmes d'application. Pour restaurer les contextes de fichiers par défaut, utilisez la commande restaurercon.

Par exemple, si vous rencontrez des problèmes avec le répertoire /var/www/html, exécutez :

sudo restorecon -Rv /var/www/html

Passage temporaire en mode permissif

Si vous ne savez pas si SELinux provoque un problème, vous pouvez temporairement passer en mode permissif pour les tests. Pour passer en mode permissif, exécutez :

sudo setenforce 0

Testez votre application pour voir si le problème est résolu. Si tel est le cas, cela est probablement lié aux politiques SELinux. N'oubliez pas de revenir en mode d'application une fois les tests terminés :

sudo setenforce 1

Examen des journaux SELinux

Pour comprendre la cause première d'un problème SELinux, il est crucial de consulter les journaux SELinux. Sur Debian, le fichier journal principal pour SELinux est /var/log/audit/audit.log. Utilisez la commande tail pour afficher les entrées de journal les plus récentes :

sudo tail /var/log/audit/audit.log

Recherchez les entrées de journal contenant « refusé » ou « AVC » pour identifier les violations potentielles de la politique SELinux.

Utilisation d'Audit2allow pour créer des modules de stratégie personnalisés

Si vous rencontrez des problèmes liés aux politiques SELinux, l'outil audit2allow peut analyser les journaux d'audit et générer un module de politique personnalisé pour résoudre le problème.

Par exemple, pour créer une stratégie personnalisée pour un problème spécifique, exécutez :

sudo grep 'denied' /var/log/audit/audit.log | audit2allow -M mycustommodule
sudo semodule -i mycustommodule.pp

Dépannage des booléens SELinux

SELinux Booleans vous permet d'activer ou de désactiver des fonctionnalités spécifiques. Si vous rencontrez un problème pouvant être lié à un booléen, utilisez la commande getsebool -a pour répertorier tous les booléens disponibles et leurs valeurs actuelles :

sudo getsebool -a

Après avoir identifié le booléen approprié, vous pouvez modifier sa valeur à l'aide de la commande setsebool. Par exemple, pour activer le booléen httpd_can_network_connect, exécutez :

sudo setsebool -P httpd_can_network_connect 1

N'oubliez pas que l'indicateur -P fait persister la modification lors des redémarrages.

Conclusion

Avec SELinux installé et configuré avec succès sur votre système Debian, vous pouvez améliorer la sécurité de votre système en appliquant des contrôles d'accès stricts. Mettez à jour et surveillez régulièrement les politiques SELinux pour maintenir une sécurité optimale. L'utilisation de SELinux fournit une couche de sécurité robuste qui aide à protéger votre système contre les accès non autorisés et les menaces potentielles, garantissant ainsi un environnement informatique plus sûr.

Joshua James
Suis-moi
Les derniers articles par Joshua James (tout voir)

Laissez un commentaire