SELinux

Tutoriel SELinux sur Ubuntu

Tutoriel SELinux sur Ubuntu

introduction

SELinux est un module de contrôle d'accès obligatoire (MAC) résidant au niveau du noyau des systèmes Linux. Il s'agit d'un développement conjoint de Redhat et de la NSA publié vers 1998 et toujours maintenu par une communauté de passionnés. Par défaut, Ubuntu utilise AppArmor et non SeLinux, qui est similaire en termes de performances mais plutôt populaire en termes de simplicité. Cependant, SeLinux est connu pour être assez sécurisé en raison de l'implication d'une agence gouvernementale. SELinux est une application open source qui protège l'hôte en isolant chaque application et en confinant ses activités. Par défaut, les processus ne peuvent effectuer aucune activité à moins que l'autorisation explicite ne soit accordée. Le module fournit nativement deux règles de gestion de niveau global : Permissive et Enforcing qui enregistrent respectivement chaque règle violée, et refuse l'accès à une requête particulière envoyée depuis un processus. Ce tutoriel montre comment l'utiliser sur Ubuntu avec facilité.

Comment installer et activer

SeLinux est une application très délicate à installer, car si elle n'est pas correctement configurée avant le premier redémarrage, elle rendra l'ensemble du système d'exploitation non amorçable, ce qui signifie que tout ce qui va au-delà de l'écran de démarrage initial sera pratiquement inaccessible par des moyens normaux.

Comme indiqué précédemment, Ubuntu dispose déjà d'un système sophistiqué de contrôle d'accès obligatoire de haut niveau connu sous le nom d'AppArmor, et il doit donc être désactivé avant d'installer SeLinux pour éviter tout conflit. Utilisez les instructions suivantes pour désactiver AppArmor et activer SeLinux.

sudo /etc/init.d/apparmor stop apt-get update && upgrade -yuf apt-get install selinux nano /etc/selinux/config 'set SELINUX to permissive, SELINUXTYPE to default' reboot 

Cette configuration de fichier peut être ouverte avec n'importe quel éditeur de texte pour apporter des modifications. La raison de l'attribution d'une règle permissive à SETLINUX est de rendre le système d'exploitation accessible tout en laissant SeLinux activé. Il est fortement recommandé d'utiliser l'option permissive car elle est sans tracas, mais elle enregistre les règles violées définies dans SeLinux.

Options disponibles

SELinux est un module complexe et complet ; par conséquent, il contient beaucoup de fonctionnalités et d'options. Cela étant dit, la plupart de ces options peuvent ne pas être utiles pour tout le monde en raison de leur nature exotique. Les options suivantes sont quelques-unes des options de base et utiles de ce module. Ils sont plus que suffisants pour faire fonctionner SELinux.

Vérifiez l'état :  L'état de SELinux peut être vérifié directement via la fenêtre du terminal, qui affiche les informations de base telles que l'activation de SeLinux, le répertoire racine de SELinux, le nom de la politique chargée, le mode actuel, etc.  Après avoir redémarré le système après l'installation de SeLinux, utilisez la commande suivante en tant qu'utilisateur root avec la commande sudo. S'il indique que SeLinux est activé dans la section d'état, cela signifie qu'il est opérationnel en arrière-plan.

[email protected]:/home/dondilanga# sestatus

Modifier le niveau d'autorisation globale: Le niveau d'autorisation global indique comment SELinux se comporte lorsqu'il tombe sur une règle. Par déf.

nano /etc/selinux/config 'définir SELINUX sur permissif ou contraignant, SELINUXTYPE sur défaut' 

Vérifiez le fichier journal : Le fichier journal qui indique les règles violées par chaque requête.  Cela ne conserve les journaux que si SeLinux est activé.

grep selinux /var/log/audit/audit.Journal

Activer et désactiver les stratégies et les protections qu'elles offrent : C'est l'une des options les plus importantes de SeLinux, car elle permet d'activer et de désactiver les politiques. SeLinux a un grand nombre de politiques prédéfinies qui déterminent si la requête spécifiée est autorisée ou non. Allow_ftpd_full_access qui détermine la capacité du service FTP à se connecter aux utilisateurs locaux et à lire et écrire tous les fichiers du système, allow_ssh_keysign qui permet d'utiliser les clés lors de la connexion à SSH, allow_user_mysql_connect qui permet aux utilisateurs de se connecter à mysql , httpd_can_sendmail qui détermine la capacité du service HTTP à envoyer un e-mail, etc.  Dans l'exemple de code suivant, il installe policycoreutils-python-utils qui aide en fait à répertorier chaque politique de manière descriptive, puis il répertorie toutes les politiques disponibles au terminal , enfin, il enseigne comment activer ou désactiver une politique, allow_ftpd_full_access est le nom de la politique comme indiqué dans le terminal renvoyé par semanage,

apt-get install policycoreutils-python-utils semanage boolean -l setsebool -P allow_ftpd_full_access ON 

Options avancées

Les options avancées sont des options qui aident à étendre les fonctionnalités de SELInux. Il existe une quantité énorme de combinaisons en raison de la nature complète de SeLinux, donc cet article répertorie certaines des plus importantes et utiles parmi elles.

Contrôle d'accès basé sur les rôles (RBAC) : RBAC permet aux administrateurs de passer à une méthode basée sur les rôles pour limiter l'autorisation des applications. Cela signifie qu'un utilisateur d'un groupe d'utilisateurs particulier est autorisé à exécuter ou à effectuer certaines actions prédéfinies. Tant que l'utilisateur fait partie du rôle, tout va bien. C'est la même chose que de passer en root lors de l'installation d'applications sur Linux avec des droits d'administration.

semanage login -a -s 'myrole' -r 's0-s0:c0.c1023' 

Les utilisateurs peuvent changer de rôle avec la commande suivante.

sudo -r nouveau_rôle_r -i

Les utilisateurs peuvent également se connecter à distance au serveur via SSH avec le rôle activé au démarrage.

ssh /[email protégé]

Autoriser un service à écouter un port non standard: Ceci est très utile pour personnaliser un service, par exemple lorsqu'un port FTP est changé en un port non standard afin d'éviter les accès non autorisés, SELinux doit être informé en conséquence pour permettre à ces ports de passer et de fonctionner comme d'habitude. L'exemple suivant permet au port FTP d'écouter le port 992. De même, tout service retourné par semanage port -l Peut être remplacé.  Certains des ports populaires sont http_port_t , pop_port_t, ssh_port_t.

port de semanage -a -t    semanage port -a -t ftp_port_t -p tcp 992 

Comment désactiver

La désactivation de SELinux est plus facile car elle est activée et installée. En gros, il y a deux façons de le désactiver. Soit temporairement, soit définitivement. La désactivation temporaire de SeLinux le désactive pendant un certain temps jusqu'au prochain démarrage, et dès que l'ordinateur est rallumé, l'état est redémarré. D'un autre côté, la désactivation permanente de SeLinux l'arrête complètement, l'exposant ainsi aux menaces ; c'est donc un choix judicieux de restaurer l'AppArmor par défaut d'Ubuntu au moins pour des raisons de sécurité du système.

La commande suivante sur le terminal le désactive temporairement :

mettre en vigueur 0 

Pour désactiver définitivement la modification /etc/selinux/config et définissez SELINUX sur désactivé.

Comment utiliser AutoKey pour automatiser les jeux Linux
AutoKey est un utilitaire d'automatisation de bureau pour Linux et X11, programmé en Python 3, GTK et Qt. En utilisant ses fonctionnalités de script e...
Comment afficher le compteur FPS dans les jeux Linux
Les jeux Linux ont reçu une impulsion majeure lorsque Valve a annoncé la prise en charge de Linux pour le client Steam et leurs jeux en 2012. Depuis l...
Comment télécharger et jouer à Civilization VI de Sid Meier sur Linux
Présentation du jeu Civilization 6 est une version moderne du concept classique introduit dans la série de jeux Age of Empires. L'idée était assez sim...