[ << ]
[ < ]
[ Sommaire ]
[ > ]
[ >> ]
5. Les modules de politique locale
Table des matières :
5.a. Introduction
Ce guide explique comment mettre en place un module de politique permettant
l'ajout de règles locales à la politique.
5.b. Préparation
Copiez l'exemple de Makefile depuis le répertoire doc de selinux-base-policy
vers le répertoire qui sera utilisé pour la construction de la politique. Il
est suggéré d'utiliser /root/. Les endroits dans lesquels
semodule peut lire les modules de politique comprennent les répertoires
utilisateurs des sysadm.
Exemple de code 2.1 : Récupérer un Makefile initial |
# zcat /usr/share/doc/selinux-base-policy-20061008/Makefile.example.gz > /root/Makefile
|
5.c. Écrire un fichier TE
La plupart des déclarations sont utilisables dans un module, ainsi que quelques
déclarations supplémentaires.
Exemple de code 3.1 : Exemple de local.te |
policy_module(local,1.0)
require {
type sysadm_su_t, newrole_t;
}
allow sysadm_su_t newrole_t:process sigchld;
|
En plus des règles de base, quelques déclarations sont requises par les modules
de politiques. La première est une macro policy_module() qui contient le nom du
module et sa version. Le bloc require suivant spécifie tous les types qui sont
requis afin que le module puisse fonctionner. Tous les types utilisés dans un
module doivent soit être déclarés dans ce module, soit requis par ce module.
5.d. Écrire un fichier FC (facultatif)
Le fichier de contextes est facultatif et utilise la même syntaxe que
d'habitude.
Exemple de code 4.1 : Exemple de local.fc |
/opt/myprogs/mybin system_u:object_r:bin_t
|
Les types utilisés dans ce fichier de contexte doivent être requis ou déclarés
dans le fichier TE.
5.e. Compiler les modules de politique
Lancez simplement make pour construire tous les modules du répertoire.
Chaque module sera compilé pour fonctionner avec la politique courante, comme
spécifié dans /etc/selinux/config.
Exemple de code 5.1 : Construction des modules |
# make
Compiling strict local module
/usr/bin/checkmodule: loading policy configuration from tmp/local.tmp
/usr/bin/checkmodule: policy configuration loaded
/usr/bin/checkmodule: writing binary representation (version 6) to tmp/local.mod
Creating strict local.pp policy package
|
Pour construire un module pour une politique différente que celle en place,
utilisez l'option NAME=.
Exemple de code 5.2 : Construction des modules |
# make NAME=targeted
Compiling targeted local module
/usr/bin/checkmodule: loading policy configuration from tmp/local.tmp
/usr/bin/checkmodule: policy configuration loaded
/usr/bin/checkmodule: writing binary representation (version 6) to tmp/local.mod
Creating targeted local.pp policy package
|
5.f. Charger les modules
Les modules peuvent être chargés dans la politique courante simplement en
utilisant la cible load du Makefile.
Exemple de code 6.1 : Charger les modules de politique |
# make load
|
La cible load respecte également l'option NAME=. Accessoirement, la
commande semodule peut être aussi utilisée pour charger des modules
individuellement.
Exemple de code 6.2 : Charger un module individuel |
# semodule -i local.pp
|
5.g. Faire un module avec la SELinux Reference Policy
La nouvelle politique de Gentoo est basée sur la SELinux Reference Policy.
Pour plus d'information à propos de la construction d'un module selon SELinux
Reference Policy, consultez le wiki
Reference Policy.
[ << ]
[ < ]
[ Sommaire ]
[ > ]
[ >> ]
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|