informatique:linux:selinux
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| informatique:linux:selinux [2010/08/31 06:28] – benoit | informatique:linux:selinux [2010/08/31 07:17] (Version actuelle) – benoit | ||
|---|---|---|---|
| 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' | ||
| - | 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 |
| Auditer les règles permet de régler un certain nombre le problèmes d' | Auditer les règles permet de régler un certain nombre le problèmes d' | ||
| Ligne 211: | Ligne 203: | ||
| Pour créer des modules de règles à partir des interdictions suivre les instructions suivantes : | Pour créer des modules de règles à partir des interdictions suivre les instructions suivantes : | ||
| - | mkdir -p / | + | mkdir -p / |
| - | | + | semodule -R |
| cat / | cat / | ||
| checkmodule -M -m -o local.mod local.te | checkmodule -M -m -o local.mod local.te | ||
| semodule_package -o local.pp -m local.mod | semodule_package -o local.pp -m local.mod | ||
| semodule -i local.pp | semodule -i local.pp | ||
| + | semodule -l | ||
| + | sesearch --allow | ||
| 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 affiche les logs ''/ | + | |
| + | | ||
| - On compile le fichier '' | - On compile le fichier '' | ||
| - On crée le paquetage SELinux '' | - On crée le paquetage SELinux '' | ||
| - On installe le paquetage SELinux '' | - On installe le paquetage SELinux '' | ||
| + | - On vérifie que le module **local** est bien chargé | ||
| + | - On analyse si nos nouvelles règles sont bien intégrées | ||
| **Attention :!: Vérifiez bien le contenu de '' | **Attention :!: Vérifiez bien le contenu de '' | ||
| Ligne 229: | Ligne 226: | ||
| Exemple d'un fichier **local.te** : | Exemple d'un fichier **local.te** : | ||
| module local 1.0; | module local 1.0; | ||
| + | | ||
| 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 |
| } | } | ||
| + | | ||
| # | # | ||
| allow crond_t httpd_sys_content_t: | allow crond_t httpd_sys_content_t: | ||
| + | | ||
| # | # | ||
| allow postfix_pickup_t self: | allow postfix_pickup_t self: | ||
| + | | ||
| + | # | ||
| + | allow semanage_t selinux_config_t: | ||
| + | | ||
| - | On peut constater qu'une partie du fichier | + | On peut distinguer 3 parties dans le fichier : |
| - | * type prérequis : **httpd_sys_content_t** **postfix_pickup_t** et **crond_t** et qu'il faut un certain nombre de class. | + | * l'entête |
| - | * class prérequise : **capability { sys_chroot }**, **dir { search }** | + | * Les pré-requis |
| + | | ||
| - | Et l' | + | **Entête |
| - | | + | |
| - | | + | |
| - | Vérifiez que le module | + | **Pré-requis** : Il faut déclarer les type et les class nécessaires à la création du module |
| - | | + | |
| + | * class pré-requises : **capability sys_chroot**, | ||
| - | Vérifier que les nouvelles | + | **Règles** : Définir |
| - | | + | * **allow crond_t httpd_sys_content_t: |
| + | * **allow postfix_pickup_t self: | ||
| + | * **allow semanage_t selinux_config_t: | ||
| + | |||
| + | ==== Autorisations particulières ==== | ||
| + | Pour beaucoup de cas communs, il est possible d' | ||
| + | |||
| + | Pour lister les autorisations particulières qui peuvent être autorisées lancer l'une des commandes suivantes | ||
| + | | ||
| + | semanage boolean | ||
| + | |||
| + | 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 285: | Ligne 300: | ||
| ===== Documentation et articles ===== | ===== Documentation et articles ===== | ||
| - | Ci-dessous, tous les articles et tutoriels qui m' | + | Ci-dessous, tous les articles et tutoriels qui m' |
| * Voici un article où le concept de SE Linux est très bien expliqué : [[http:// | * Voici un article où le concept de SE Linux est très bien expliqué : [[http:// | ||
| * Documentation de SE Linux sous RedHat : {{informatique: | * Documentation de SE Linux sous RedHat : {{informatique: | ||
informatique/linux/selinux.1283236139.txt.gz · Dernière modification : (modification externe)
