Aperçu
semanage est utilisé pour apporter des modifications permanentes aux politiques SELinux. Alors que `chcon` ou `restorecon` appliquent des politiques temporaires ou existantes, `semanage` définit de nouvelles règles de politique qui persistent après le redémarrage du système.
Éléments de politique gérés
Voici les principaux éléments de politique SELinux que vous pouvez gérer avec semanage.
- Contextes de fichiers (File Contexts) : Attribution de types SELinux aux fichiers et répertoires à des chemins spécifiques.
- Ports réseau (Network Ports) : Attribution de types SELinux aux ports réseau.
- Booléens SELinux (Booleans) : Interrupteurs pour activer ou désactiver des comportements spécifiques de la politique SELinux.
- Mappages d'utilisateurs SELinux (User Mappings) : Association des utilisateurs Linux aux utilisateurs SELinux.
Options principales
semanage gère les politiques pour divers types d'objets SELinux. Cette section décrit les options courantes utilisées avec chaque type d'objet.
Options de gestion générale
Types d'objets
Commande générée :
Essayez de combiner les commandes.
Description:
`semanage` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Exemples d'utilisation
Cette section présente divers scénarios d'utilisation de la commande semanage pour gérer les politiques SELinux.
Lister toutes les règles de contexte de fichier
sudo semanage fcontext -l
Vérifie toutes les règles de mappage de contexte de fichier définies sur le système actuel.
Lister les règles pour un port spécifique
sudo semanage port -l | grep http
Liste les règles de port utilisées par le service HTTP.
Ajouter un contexte de fichier personnalisé
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html/my_app(/.*)?"
Ajoute une règle pour spécifier le type httpd_sys_content_t pour le répertoire /var/www/html/my_app et ses sous-fichiers. (Nécessite restorecon après l'ajout).
Ajouter un port personnalisé
sudo semanage port -a -t http_port_t -p tcp 8080
Ajoute le port TCP 8080 avec le type http_port_t, le rendant utilisable pour les services web.
Activer un booléen SELinux
sudo semanage boolean -m --on httpd_can_network_connect
Active le booléen httpd_can_network_connect pour permettre au serveur web Apache d'initier des connexions réseau.
Installation
semanage est généralement fourni dans le cadre du paquet 'policycoreutils' ou d'un paquet similaire sur la plupart des distributions Linux utilisant SELinux. Voici comment l'installer sur les distributions courantes.
RHEL/CentOS/Fedora
sudo dnf install policycoreutils-python-utils
Utilisez le gestionnaire de paquets DNF ou YUM pour installer le paquet 'policycoreutils-python-utils'.
Debian/Ubuntu
sudo apt install selinux-utils
Utilisez le gestionnaire de paquets APT pour installer le paquet 'selinux-utils'.
Conseils et précautions
Cette section fournit des conseils utiles et des points à considérer lors de la gestion des politiques SELinux avec semanage.
Application des modifications
Après avoir modifié les règles de contexte de fichier, vous devez impérativement utiliser la commande 'restorecon' pour appliquer les contextes modifiés au système de fichiers.
- `sudo restorecon -Rv /path/to/directory`
Diagnostic des problèmes et génération de politiques
En cas de problèmes liés à SELinux, consultez le fichier `/var/log/audit/audit.log` pour identifier les actions refusées, puis utilisez l'outil `audit2allow` pour générer les règles de politique nécessaires.
- `sudo tail -f /var/log/audit/audit.log` (pour voir les logs en temps réel)
- `sudo audit2allow -a -M mypolicy` (génère les fichiers 'mypolicy.te' et 'mypolicy.pp' basés sur les logs de violation de politique)
- `sudo semodule -i mypolicy.pp` (charge le module de politique généré)
Précautions
La modification incorrecte des politiques SELinux peut entraîner le blocage de l'accès à certains services ou à l'ensemble du système. Il est important de sauvegarder la politique actuelle ou de tester soigneusement avant d'apporter des modifications.