Gentoo Logo

[ << ] [ < ] [ 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 ] [ > ] [ >> ]


Imprimer

Voir tout

Dernière mise à jour le 15 octobre 2006

Résumé : Ce chapitre explique comment ajouter des règles et des nouveaux modules à votre politique de sécurité.

Chris PeBenito
Author

Camille Huot
Traducteur

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.