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 -tsemanage 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é.