Comment installer SELinux sur Ubuntu 24.04/22.04/20.04

Security-Enhanced Linux (SELinux) est essentiel pour gérer les politiques de sécurité du contrôle d'accès sur les systèmes Linux. Principalement utilisé par les administrateurs système, les développeurs et les professionnels de la sécurité, SELinux offre une sécurité robuste au niveau du noyau. Son implémentation sur les serveurs Ubuntu, notamment pour les versions 24.04, 22.04 et 20.04 LTS, renforce la sécurité de ces systèmes.

Les principales fonctionnalités de SELinux qui améliorent la sécurité d'Ubuntu incluent :

  • Contrôle d'accès obligatoire (MAC) : Contrairement aux systèmes de contrôle d'accès discrétionnaire traditionnels, SELinux applique des règles de politique strictes qui limitent les processus du système et les utilisateurs, atténuant ainsi le risque d'accès non autorisé.
  • Contrôle à granularité fine : Il fournit un contrôle détaillé sur les processus système et leurs interactions avec les fichiers et autres ressources.
  • Politiques de sécurité améliorées : Des politiques de sécurité sur mesure contribuent à vous protéger contre les menaces externes et internes.
  • Audit et journalisation : Des fonctionnalités de journalisation complètes facilitent la surveillance et le traçage des événements liés à la sécurité, facilitant ainsi l'identification et la résolution rapides des problèmes.

L'intégration de SELinux dans un environnement serveur Ubuntu, en particulier pour ceux qui gèrent des applications critiques ou des données sensibles, améliore considérablement la sécurité du système. Ce guide, axé sur l'installation et l'utilisation de base de SELinux, vise à fournir une approche simple pour tirer parti de ces avantages en matière de sécurité.

Désactiver le service AppArmor

Pour garantir la compatibilité, vérifiez si AppArmor est actif, car l'exécution conjointe d'AppArmor et de SELinux peut provoquer des conflits. Déterminez l'état d'AppArmor avec :

sudo systemctl status apparmor

Si AppArmor est opérationnel, désactivez-le pour éviter toute interférence avec SELinux. Exécutez la commande suivante pour désactiver AppArmor :

sudo systemctl disable apparmor --now

Installez SELinux via la commande APT

Cette étape implique l'installation des packages SELinux clés : policycoreutils, selinux-utils, et selinux-basics. Ceux-ci sont essentiels pour gérer les politiques SELinux et fournir une prise en charge fondamentale de SELinux.

Lancez l'installation avec cette commande :

sudo apt install policycoreutils selinux-utils selinux-basics

L'exécution de cette opération installera les packages SELinux requis sur votre système Ubuntu.

Activer SELinux

Après avoir installé les packages nécessaires, activez SELinux pour vous assurer qu'il se charge au démarrage. Cette activation est essentielle pour activer les fonctionnalités de sécurité de SELinux. Exécutez la commande suivante avec les privilèges root :

sudo selinux-activate

Cette étape configure votre système pour initialiser SELinux pendant le processus de démarrage.

Appliquer le mode SELinux

Définir SELinux sur son mode d'application est crucial. Dans ce mode, SELinux applique activement ses politiques de sécurité, refusant l'accès en fonction de règles prédéfinies. Passez en mode d'application en utilisant :

sudo selinux-config-enforcing

Cette action modifie votre configuration SELinux pour fonctionner en mode d'application.

Redémarrage du système pour l'activation de SELinux

Finalisez le processus de configuration en redémarrant votre système. Cela garantit que toutes les modifications sont appliquées et que SELinux commence à fonctionner en mode défini :

sudo reboot

Après le redémarrage, votre système fonctionnera avec SELinux installé, activé et configuré pour appliquer ses politiques de sécurité. Les sections suivantes vous guideront dans la personnalisation ultérieure de SELinux pour répondre à vos besoins de sécurité.

Configurer SELinux

Comprendre les modes SELinux

SELinux fonctionne selon trois modes distincts :

  • Mode d'application: Le paramètre par défaut, où SELinux applique rigoureusement ses politiques de sécurité, refusant l'accès conformément aux règles établies.
  • Mode permissif: Ici, SELinux enregistre les violations de politique mais ne les applique pas activement. Ce mode est utile pour tester et dépanner les stratégies.
  • Mode désactivé: Dans ce mode, SELinux est complètement désactivé, aucune stratégie n'est appliquée.

Modifier le fichier de configuration SELinux

Pour personnaliser les paramètres SELinux, modifiez le /etc/selinux/config déposer. Utilisez un éditeur de texte préféré, comme nano, pour cette tâche :

sudo nano /etc/selinux/config

Dans le fichier, modifiez le SELINUX ligne pour définir votre mode préféré. Par exemple, pour activer le mode d'application :

SELINUX=enforcing

Application des modifications de configuration

Pour que les modifications prennent effet, redémarrez votre système :

sudo reboot

Personnalisation des options de configuration SELinux supplémentaires

SELinux propose plusieurs options de personnalisation :

  • SETLOCALDEFS: Détermine l'utilisation de contextes de fichiers définis localement. Pour utiliser les contextes par défaut, définissez-le sur 0. Modifiez le /etc/selinux/config déposer en conséquence :
SETLOCALDEFS=0
  • TYPE SELINUX: définit le type de stratégie. Le type de politique commun « ciblé » se concentre sur la protection de services système spécifiques. Pour définir cela, mettez à jour le SELINUXTYPE ligne dans le fichier de configuration :
SELINUXTYPE=targeted

Exemple : configuration de SELinux pour un serveur Web

Pensez à configurer SELinux pour autoriser le trafic HTTP et HTTPS sur un serveur Web Ubuntu. Le semanage La commande est utilisée pour la gestion des politiques.

Tout d'abord, installez le semanage utilitaire:

sudo apt install policycoreutils-python-utils

Ensuite, autorisez le trafic HTTP sur le port 80 :

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

Et le trafic HTTPS sur le port 443 :

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

Ces commandes mettront à jour la politique SELinux, permettant à votre serveur Web de recevoir des connexions entrantes sur les ports 80 (HTTP) et 443 (HTTPS), garantissant ainsi un fonctionnement sécurisé du service Web.

Vérification du mode SELinux

Vérification de l'état de SELinux après le redémarrage

Après avoir redémarré votre système Ubuntu, il est crucial de confirmer l'état opérationnel de SELinux. Cette vérification garantit que le système applique correctement les paramètres de configuration SELinux.

Exécutez la commande suivante pour vérifier l'état actuel :

sestatus

Cette commande fournit des détails complets sur SELinux, y compris son état opérationnel actuel, le mode dans lequel il s'exécute (appliqué, permissif ou désactivé) et la stratégie utilisée. Croisez cette sortie avec vos paramètres dans le /etc/selinux/config fichier pour confirmer que SELinux fonctionne comme prévu.

Dépannage des problèmes courants de SELinux

Restauration des contextes de fichiers par défaut

Des contextes de fichiers incorrects entraînent souvent des refus d'accès de la part de SELinux, perturbant ainsi la fonctionnalité de l'application. Pour remédier à cela, utilisez le restorecon commande. Par exemple, pour résoudre les problèmes dans le /var/www/html répertoire, exécutez :

sudo restorecon -Rv /var/www/html

Cette commande restaure de manière récursive le contexte par défaut pour tous les fichiers et répertoires de /var/www/html, avec une sortie détaillée détaillant les modifications.

Passage temporaire en mode permissif pour le dépannage

Vous ne savez pas si SELinux est à l'origine d'un problème spécifique ? Passez temporairement en mode permissif pour diagnostiquer. Ce mode enregistre les violations sans les appliquer. Activez le mode permissif avec :

sudo setenforce 0

Testez votre application maintenant. Si les problèmes cessent, ils proviennent probablement des politiques de SELinux. N'oubliez pas de revenir au mode d'application après le test :

sudo setenforce 1

Examen des journaux SELinux pour le diagnostic des problèmes

Les journaux SELinux sont essentiels pour identifier les violations de politique. Sur Ubuntu, le journal SELinux principal est /var/log/audit/audit.log. Pour afficher les entrées récentes, utilisez :

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

Recherchez « refusé » ou « AVC » dans les journaux pour identifier les violations potentielles.

Génération de modules de stratégie personnalisés avec audit2allow

Vous rencontrez des problèmes liés à la politique ? Utiliser audit2allow pour analyser les journaux d'audit et créer un module de stratégie personnalisé. Par exemple:

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

La première commande génère une stratégie nommée « mycustommodule » à partir des entrées « refusées » dans le journal d'audit. La seconde installe cette stratégie, résolvant potentiellement le problème.

Gestion des booléens SELinux

Les booléens SELinux contrôlent des fonctionnalités spécifiques. Pour lister tous les booléens et leurs états, utilisez :

sudo getsebool -a

Pour modifier un booléen, par exemple en activant httpd_can_network_connect, exécuter:

sudo setsebool -P httpd_can_network_connect 1

Le -P L’indicateur garantit la persistance lors des redémarrages.

Configuration de SELinux pour les applications Web : autoriser le trafic HTTP et HTTPS

Pour les applications Web comme WordPress, l'ouverture des ports réseau nécessaires dans SELinux est cruciale. Activez les ports 80 (HTTP) et 443 (HTTPS) avec :

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

Configuration SELinux pour WordPress

Ajustez les politiques SELinux pour un fonctionnement transparent de WordPress :

  • Connexions réseau pour les scripts et modules HTTPD: Activez ceci pour les mises à jour des plugins et des thèmes :
sudo setsebool -P httpd_can_network_connect 1
  • Accès en lecture et en écriture dans le répertoire WordPress: Assurez-vous que HTTPD peut interagir avec les fichiers WordPress :
sudo chcon -R -t httpd_sys_rw_content_t /var/www/html/wp-content
sudo chcon -R -t httpd_sys_rw_content_t /var/www/html/wp-config.php

Options de configuration supplémentaires de dépannage SELinux

Personnalisez SELinux pour diverses exigences logicielles :

  • Accès aux répertoires personnalisés : modifiez les contextes de fichiers pour les répertoires Web personnalisés, par exemple : /opt/myapp:
sudo chcon -R -t httpd_sys_content_t /opt/myapp
  • Accès FTP pour le serveur Web: Activez l'accès FTP si nécessaire :
sudo setsebool -P allow_ftpd_full_access 1
  • Fonctionnalité de messagerie du serveur Web: Si votre application nécessite des fonctionnalités d'envoi d'e-mails :
sudo setsebool -P httpd_can_sendmail 1

Ces configurations illustrent la flexibilité de SELinux pour répondre à des besoins spécifiques de sécurité et d'exploitation.

Conclusion

C'est la conclusion de notre guide pour l'installation de SELinux sur Ubuntu 24.04, 22.04 ou 20.04. Nous avons parcouru le processus d'installation, couvert quelques commandes de base et exploré quelques conseils de configuration clés. N'oubliez pas que des mises à jour régulières et une surveillance continue sont essentielles pour maintenir la sécurité de votre système. N'hésitez pas à expérimenter les politiques SELinux pour mieux répondre aux besoins de votre serveur, mais sauvegardez toujours vos configurations avant d'apporter des modifications.

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