SELinux peut vous aider à sécuriser votre serveur contre les processus ou applications défectueux. Développée par la NSA (National Security Agency) pour sécuriser les appareils gouvernementaux contre les attaquants, l’architecture Linux à sécurité renforcée (SE) utilise des protocoles de sécurité pour restreindre l’accès aux ressources système. Découvrez comment vous pouvez l’utiliser pour votre propre serveur.

Architecture SELinux

SELinux est un module du noyau qui peut être activé ou désactivé par l’administrateur système. Comme l’accès aux fichiers et aux ports réseau est limité selon une politique de sécurité, un programme défectueux ou un démon mal configuré ne peut pas avoir un impact énorme sur la sécurité du système.

Lorsqu’une application ou un processus demande l’accès à un fichier dans le système SELinux, il vérifie d’abord le cache vectoriel d’accès (AVC). Si l’autorisation est précédemment mise en cache, elle revient avec le fichier pour lequel l’application est demandée. Si l’autorisation n’est pas mise en cache, il envoie la demande au serveur de sécurité. Le serveur de sécurité vérifie toutes les politiques de sécurité dans sa base de données. Selon la politique de sécurité, l’autorisation est alors accordée ou refusée.

Il n’y a pas de concept de root ou de superutilisateur dans SELinux. La sécurité d’une distribution Linux non modifiée sans SE Linux dépend de l’exactitude du noyau, de toutes les applications privilégiées et de leurs configurations. une défaillance ou un bogue dans l’un de ces composants peut créer une surface d’attaque et compromettre le système.

D’autre part, un système Linux modifié avec SELinux dépend principalement de l’exactitude du noyau et des politiques de sécurité.

Comment installer ou activer SELinux

SELinux signifie Security Enhanced Linux. SELinux fait partie du noyau Linux depuis 2003. Vous n’avez donc pas besoin de l’installer séparément. Dans la plupart des distributions Linux de bureau, cependant, il est désactivé par défaut.

Se Linux 2

SELinux a principalement 3 modes : appliqué, permissif et désactivé. Discutons-en brièvement :

  1. Forcée: Cela active et protège le système Linux à l’aide de politiques de sécurité.
  2. Permissif: Il n’applique pas les politiques de sécurité mais enregistre tout. Ce mode est utile à des fins de dépannage.
  3. Handicapé: Il désactive SELinux. Cette option n’est pas recommandée et si vous réactivez SELinux dans votre système, cela entraînera des erreurs dues aux changements d’étiquetage.

Noter: Ubuntu est livré avec AppArmor qui est une alternative à SELinux. Bien que SELinux soit disponible sur Ubuntu, il n’est pas compatible avec AppArmor et peut bloquer votre système s’il est activé. Si vous avez vraiment besoin d’utiliser SELinux dans Ubuntu, assurez-vous de désactiver AppArmor et de faire des tests intensifs (commencez d’abord par le mode permissif) avant de l’utiliser pour une utilisation en production.

  1. Pour activer SELinux dans votre système, vous devez éditer le fichier « /etc/selinux/config ». Ouvrez ce fichier dans votre éditeur de texte.
sudo nano /etc/selinux/config
  1. Dans le fichier de configuration, définissez SELINUX=permissive . Presse Ctrl + O et frappe Entrer pour enregistrer le fichier et appuyez sur Ctrl + X pour quitter l’éditeur. SELinux est maintenant activé dans votre système.

Noter: Si vous essayez d’appliquer SELinux directement avant de le rendre permissif, cela peut mal étiqueter les fichiers et les processus et vous empêcher de démarrer.

  1. Maintenant, pour renommer automatiquement le système de fichiers, créez un fichier appelé « .autorelabel » dans votre système de fichiers racine. Maintenant, lorsque vous démarrez votre système, SELinux renommera automatiquement votre système de fichiers. Pour réduire les erreurs, gardez le SELINUX=permissive option telle qu’elle se trouve dans le dossier de configuration. Une fois que tout est réétiqueté, réglez SELinux sur SELINUX=enforcing dans « /etc/selinux/config » et redémarrez.

Maintenant, SE Linux est appliqué avec succès dans votre système.

Comment configurer SELinux

SELinux est une architecture qui permet aux administrateurs système de contrôler ce qui peut accéder aux ressources système. SELinux limite l’accès au système en utilisant des politiques de sécurité. Il existe de nombreuses façons de configurer SELinux pour protéger votre système. Les plus populaires sont la « politique ciblée » et la « sécurité à plusieurs niveaux » (MLS).

Une politique ciblée est la politique de sécurité par défaut qui sort de la boîte. Il couvre une gamme de politiques de sécurité telles que l’accès aux fichiers, les tâches, les services, etc. La sécurité à plusieurs niveaux (MLS) est généralement utilisée par le gouvernement et les grandes organisations. Il est très compliqué à mettre en place et nécessite une équipe dédiée pour le gérer.

Vous pouvez vérifier votre mode SELinux actuel avec la commande getenforce et sestatus.

Si vous avez seulement besoin de changer le mode SELinux dans la session en cours, vous pouvez exécuter les 2 commandes suivantes.

  • sudo setenforce 0: Réglage de SELinux en mode permissif pour la session en cours.
  • sudo setenforce 1: Configuration de SELinux en mode d’application pour la session en cours.

Politiques SELinux

SELinux fonctionne comme un système d’étiquetage. Il associe chaque fichier, port et processus à une étiquette. Les étiquettes sont un moyen logique de regrouper les choses. Le noyau est responsable de la gestion de l’étiquette lors du démarrage.

Se Linux 1
Source des images : MIT

Les politiques SELinux peuvent être gérées par des booléens. Prenons un exemple de vue et définissons boolean sur un démon appelé httpd. httpd est un démon de serveur HTTP Apache que nous utilisons pour exécuter des serveurs Web sous Linux.

Maintenant, pour lister tous les modules spécifiques à httpdexécutez la commande suivante dans votre terminal.

getsebool -a | grep httpd

Ici -a option liste tous les booléens et nous utilisons grep pour filtrer les booléens liés uniquement httpd. Lisez cet article pour en savoir plus sur grep sous Linux.

La sortie de la commande ci-dessus ressemble à ceci.

httpd_builtin scripting --> on 
httpd_can_check_spam --> off 
httpd can connect ftp --> off 
httpd_can_connect_ldap --> off 
httpd_can_connect_mythty --> off 
httpd_can_connect_zabbix --> off 
httpd_can_network_connect --> off httpd_can_network_connect_cobbler --> off httpd_can_network_connect_db --> off 
httpd_can_network_memcache --> off 
httpd_can_network_relay --> off 
httpd_can_sendmail --> off 
httpd_dbus_avahi --> off 
httpd dbus sssd--> off

Maintenant, à partir de la liste ci-dessus, nous prenons httpd_can_connect_ftp Booléen et changez sa valeur. Lisez d’abord la valeur de httpd_can_connect_ftp s’il est allumé ou éteint :

getsebool httpd_can_connect_ftp

Fixons maintenant la valeur de httpd_can_connect_ftp autoriser.

setsebool -P httpd_can_connect_ftp 1

Ici 1 représente allow ou on. -P tag est utilisé pour rendre le changement permanent. Maintenant, si vous listez à nouveau les booléens liés à httpd, nous pouvons voir le changement dans httpd_can_connect_ftp valeur à on.

httpd_builtin_scripting --> on 
httpd_can_check_spam --> off 
httpd can connect ftp --> on 
httpd_can_connect_ldap --> off 
httpd_can_connect_mythty --> off 
httpd_can_connect_zabbix --> off 
httpd_can_network_connect --> off httpd_can_network_connect_cobbler --> off httpd_can_network_connect_db --> off 
httpd_can_network_memcache --> off 
httpd_can_network_relay --> off 
httpd_can_sendmail --> off 
httpd_dbus_avahi --> off 
httpd dbus sssd--> off

Comment gérer les erreurs SELinux

SELinux a 4 types d’erreurs en général :

  1. Le système a été cassé: SELinux protège votre système en limitant l’accès. Mais parfois, cela ne suffit pas. Si vous obtenez ces erreurs, votre système peut être compromis. Prenez les mesures nécessaires le plus rapidement possible.
  2. Bug dans la politique: S’il y a un bogue dans la stratégie qui doit être corrigé, cette erreur apparaît.
  3. Les étiquettes sont fausses: Ce message d’erreur apparaît lors de la personnalisation de l’étiquetage par l’utilisateur ou lorsque l’étiquetage automatique par SELinux va vers le sud. Il existe de nombreux outils sur le marché pour corriger ces erreurs d’étiquette erronées.
  4. Une politique doit être fixée: Ces erreurs surviennent lorsque vous apportez des modifications au système et que vous n’en informez pas SELinux. Vous pouvez corriger cette erreur à l’aide de modules booléens ou de stratégie.

Comment désactiver SELinux

La désactivation de SELinux n’est jamais une bonne option pour les serveurs d’entreprise et gouvernementaux et les appareils publics qui sont très sujets aux attaques. Mais si vous souhaitez désactiver SELinux sur votre système, suivez simplement ces instructions.

  1. Accédez au fichier de configuration SE Linux dans « /etc/selinux » et changez le mode de configuration SE Linux de enforcing à permissive. Redémarrez ensuite votre système.
  2. Après cela, changez le mode SELinux de permissive à disabled.

Après le prochain redémarrage, SELinux de votre système est désactivé et devient une machine Linux normale.

Questions fréquemment posées

SELinux est-il présent dans Android ?

Oui, SELinux est implémenté dans Android à partir de la version 4.3. Il a amélioré la sécurité d’Android et protégé les utilisateurs d’Android contre les cyberattaques.

SELinux est-il un pare-feu ?

SELinux n’est pas un pare-feu. Le pare-feu contrôle le trafic entre l’ordinateur et le réseau. Alors que SELinux contrôle et régit le système de fichiers et l’accès au réseau de différents programmes à l’intérieur du système. Nous pouvons considérer SELinux comme un pare-feu interne pour protéger le système de ses programmes.

SELinux est-il un système d’exploitation ?

SELinux n’est pas un système d’exploitation. C’est un module de sécurité du noyau qui existe dans le noyau Linux. Il prend en charge les politiques de sécurité de contrôle d’accès et les contrôles d’accès obligatoires (MAC). Pour l’appeler un système d’exploitation, il a besoin de plus que le noyau lui-même. Dans la plupart des systèmes d’exploitation basés sur Linux, vous pouvez utiliser SELinux.

Faut-il utiliser SELinux ?

Si vous êtes un administrateur système et que vous connaissez bien le système Unix, vous devez utiliser SELinux. Il améliore la sécurité de votre serveur et minimise la surface d’attaque. Si vous n’êtes pas très familier avec les systèmes Unix, vous pouvez également utiliser Apparmour. C’est relativement plus facile que SELinux. Si vous êtes un utilisateur à domicile et que vous utilisez Linux uniquement sur votre ordinateur de bureau, il n’est pas nécessaire d’utiliser SELinux. Cela vous donnera juste mal à la tête pour configurer et réduire votre productivité.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici