Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
informatique:linux:selinux [2010/08/31 09:02] benoit |
informatique:linux:selinux [2018/09/06 19:10] (Version actuelle) |
||
---|---|---|---|
Ligne 160: | Ligne 160: | ||
semanage port -d -t http_port_t -p tcp 81 | semanage port -d -t http_port_t -p tcp 81 | ||
- | ==== Autorisations particulières ==== | ||
- | Pour beaucoup de cas communs, il est possible d'activer des droits particuliers à l'aide de booléens. Les booléens sont des paramètres que l'on peut activer ou désactiver selon l'utilisation particulière qu'on fait des services protégés. | ||
- | Pour lister les autorisations particulières qui peuvent être autorisées lancer l'une des commandes suivantes : | ||
- | getsebool -a | ||
- | semanage boolean -l | ||
- | | ||
- | SE Linux ne permet pas pardéfaut à un utilisateur **sysadm_u** de se connecter directement en SSH. Pour que SE Linux permette cette action : | ||
- | setsebool ssh_sysadm_login on | ||
==== Labelliser les objets ==== | ==== Labelliser les objets ==== | ||
Ligne 192: | Ligne 184: | ||
reboot | reboot | ||
- | ==== Auditer les règles ==== | + | ==== Auditer les règles et ajouter des autorisations ==== |
Auditer les règles permet de régler un certain nombre le problèmes d'accès lié à SELinux. | Auditer les règles permet de régler un certain nombre le problèmes d'accès lié à SELinux. | ||
Ligne 222: | Ligne 214: | ||
Description des actions réalisées ci-dessus : | Description des actions réalisées ci-dessus : | ||
- On crée un répertoire pour stocker nos fichiers sources SELinux et on se positionne dedans | - On crée un répertoire pour stocker nos fichiers sources SELinux et on se positionne dedans | ||
- | - On recharge les modules SE Linux... Il faut attendre quelques minutes, voir heures, pour laisser l'audit relever des interdictions. | + | - On recharge les modules SE Linux... Il faut attendre quelques minutes, voir quelques heures, pour laisser l'audit relever des interdictions. |
- | - On affiche les logs ''/var/log/audit/audit.log'' et on génère un fichier des descriptions des nouvelles règles à partir des interdictions relevées depuis le dernier rechargement des modules SE Linux. | + | - On affiche les logs ''/var/log/audit/audit.log'' et on génère un fichier de description des nouvelles règles à partir des interdictions relevées depuis le dernier rechargement des modules SE Linux. |
- On compile le fichier ''local.te'' pour en faire un module | - On compile le fichier ''local.te'' pour en faire un module | ||
- On crée le paquetage SELinux ''local.pp'' | - On crée le paquetage SELinux ''local.pp'' | ||
Ligne 236: | Ligne 228: | ||
| | ||
require { | require { | ||
+ | type semanage_t; | ||
type postfix_pickup_t; | type postfix_pickup_t; | ||
type httpd_sys_content_t; | type httpd_sys_content_t; | ||
type crond_t; | type crond_t; | ||
+ | type selinux_config_t; | ||
class capability sys_chroot; | class capability sys_chroot; | ||
- | class dir search; | + | class dir { rename search }; |
} | } | ||
| | ||
Ligne 248: | Ligne 242: | ||
#============= postfix_pickup_t ============== | #============= postfix_pickup_t ============== | ||
allow postfix_pickup_t self:capability sys_chroot; | allow postfix_pickup_t self:capability sys_chroot; | ||
+ | | ||
+ | #============= semanage_t ============== | ||
+ | allow semanage_t selinux_config_t:dir rename; | ||
+ | |||
| | ||
Ligne 258: | Ligne 256: | ||
**Pré-requis** : Il faut déclarer les type et les class nécessaires à la création du module : | **Pré-requis** : Il faut déclarer les type et les class nécessaires à la création du module : | ||
- | * type prérequis : **httpd_sys_content_t** **postfix_pickup_t** et **crond_t** et qu'il faut un certain nombre de class. | + | * type prérequis : **httpd_sys_content_t, postfix_pickup_t, crond_t, semanage_t, selinux_config_t** et qu'il faut un certain nombre de class. |
- | * class pré-requises : **capability { sys_chroot }**, **dir { search }** | + | * class pré-requises : **capability sys_chroot**, **dir { rename search };** |
**Règles** : Définir les autorisations. __Si les types et class ne sont pas déclarés dans les prérequis, les règles ne pourront pas être créées__: | **Règles** : Définir les autorisations. __Si les types et class ne sont pas déclarés dans les prérequis, les règles ne pourront pas être créées__: | ||
* **allow crond_t httpd_sys_content_t:dir search;** | * **allow crond_t httpd_sys_content_t:dir search;** | ||
* **allow postfix_pickup_t self:capability sys_chroot;** | * **allow postfix_pickup_t self:capability sys_chroot;** | ||
+ | * **allow semanage_t selinux_config_t:dir rename;** | ||
+ | ==== Autorisations particulières ==== | ||
+ | Pour beaucoup de cas communs, il est possible d'activer des droits particuliers à l'aide de booléens. Les booléens sont des paramètres que l'on peut activer ou désactiver selon l'utilisation particulière qu'on fait des services protégés. | ||
+ | |||
+ | Pour lister les autorisations particulières qui peuvent être autorisées lancer l'une des commandes suivantes : | ||
+ | getsebool -a | ||
+ | semanage boolean -l | ||
+ | | ||
+ | SE Linux ne permet pas pardéfaut à un utilisateur **sysadm_u** de se connecter directement en SSH. Pour que SE Linux permette cette action : | ||
+ | setsebool ssh_sysadm_login on | ||
===== Quelques conseils pour changer vos habitudes après activation de SELinux ===== | ===== Quelques conseils pour changer vos habitudes après activation de SELinux ===== | ||
Ligne 292: | Ligne 300: | ||
===== Documentation et articles ===== | ===== Documentation et articles ===== | ||
- | Ci-dessous, tous les articles et tutoriels qui m'ont aider à créer cette page sur SELinux : | + | Ci-dessous, tous les articles et tutoriels qui m'ont aidé à créer cette page sur SELinux : |
* Voici un article où le concept de SE Linux est très bien expliqué : [[http://www.linuxcertif.com/doc/Comprendre%20SELinux/]] | * Voici un article où le concept de SE Linux est très bien expliqué : [[http://www.linuxcertif.com/doc/Comprendre%20SELinux/]] | ||
* Documentation de SE Linux sous RedHat : {{informatique:linux:manage-selinux-rhel5.pdf}} | * Documentation de SE Linux sous RedHat : {{informatique:linux:manage-selinux-rhel5.pdf}} |