Certains administrateurs divisent les environnements jail en deux catégories: les environnements jails « complets », qui ressemblent à un véritable système FreeBSD, et les environnements jails de « service », qui sont dédiés à une application ou un seul service, et tournant éventuellement avec des privilèges. Cette séparation est juste conceptuelle et n'affecte pas la création de l'environnement jail. La page de manuel jail(8) est très claire quant à la procédure de création d'un environnement jail:
#
setenv D /here/is/the/jail
#
mkdir -p $D
![]()
#
cd /usr/src
#
make world DESTDIR=$D
![]()
#
cd etc/
[9]#
make distribution DESTDIR=$D
![]()
#
mount_devfs devfs $D/dev
![]()
Sélectionner un emplacement pour l'environnement est le meilleur point de départ. C'est l'endroit où l'environnement jail se trouvera dans le système de fichiers de la machine hôte. Un bon choix peut être
/usr/jail/jailname
, oùjailname
est le nom de machine identifiant l'environnement jail. Le système de fichiers/usr/
dispose généralement de suffisamment d'espace pour le système de fichiers de l'environnement jail, qui est pour les environnements « complets », essentiellement, une copie de chaque fichier présent dans une installation par défaut du système de base de FreeBSD.Cette commande peuplera l'arborescence du répertoire choisi comme emplacement pour l'environnement jail avec les binaires, les bibliothèques, les pages de manuel, etc. nécessaires. Tout sera fait selon le style FreeBSD habituel — en premier lieu tout est compilé, puis ensuite installé à l'emplacement voulu.
La cible
distribution
pour make installe tous les fichiers de configuration nécessaires. Ou pour faire simple, cette commande installe tous les fichiers installables du répertoire/usr/src/etc/
vers le répertoire/etc
de l'environnement jail:$D/etc/
.Le montage du système de fichiers devfs(8) à l'intérieur d'un environnement jail n'est pas requis. Cependant, toutes, ou presque toutes les applications nécessitent l'accès à au moins un périphérique, en fonction du rôle de l'application. Il est vraiment important de contrôler l'accès aux périphériques depuis l'intérieur d'un environnement jail, comme un mauvais paramétrage pourrait permettre à quelqu'un de malintentionné de faire de « mauvaises » choses dans l'environnement jail. Le contrôle sur devfs(8) est géré par l'intermédiaire d'un ensemble de règles qui est décrit dans les pages de manuel devfs(8) et devfs.conf(5).
Une fois l'environnement jail installé, il peut
être lancé en employant l'utilitaire jail(8).
Cet outil requiert obligatoirement quatre arguments qui sont
décrits dans la Section 16.3.1, « Qu'est-ce qu'un environnement jail? ». D'autres
arguments peuvent également être utilisés,
pour par exemple exécuter le processus avec les droits
d'un utilisateur particulier. L'argument
dépend du type d'environnement; pour un
système virtuel,
command
/etc/rc
est un bon choix puisque la
séquence de démarrage d'un véritable
système FreeBSD sera dupliquée. Pour un
environnement jail de type service, cela
dépendra du service ou de l'application qui sera
exécuté dans l'environnement jail.
Les environnements jails sont souvent lancés au
démarrage de la machine et le système
rc
de FreeBSD propose une méthode
simple pour cela.
Une liste des environnements jail autorisés à être lancés au démarrage du système devrait être ajoutée au fichier rc.conf(5):
jail_enable="YES" # Utiliser NO pour désactiver le lancement des environnements jail
jail_list="www
" # Liste des noms des environnements jail séparés par une espace
Pour chaque environnement listé dans
jail_list
, un ensemble de
paramètres rc.conf(5), qui décrivent
l'environnement jail, devrait être
ajouté:
jail_www
_rootdir="/usr/jail/www" # le répertoire racine de l'environnement jail jail_www
_hostname="www
.example.org" # le nom de machine de l'environnement jail jail_www
_ip="192.168.0.10" # son adresse IP jail_www
_devfs_enable="YES" # monter devfs dans l'environnement jail jail_www
_devfs_ruleset="www_ruleset
" # les règles devfs à appliquer à l'environnement jail
Le démarrage par défaut des environnements
jails, configuré dans rc.conf(5),
exécutera la procédure
/etc/rc
de l'environnement jail, ce qui
suppose que l'environnement est un système virtuel
complet. Pour les environnements jail de service, la
commande de démarrage par défaut de
l'environnement devrait être modifiée en
configurant correctement l'option
jail_
.jailname
_exec_start
Pour une liste complète des options disponibles, veuillez consulter la page de manuel rc.conf(5).
La procedure /etc/rc.d/jail
peut
être utilisée pour démarrer ou arrêter
un environnement jail à la main si une entrée pour
l'environnement existe dans le fichier
rc.conf
:
#
/etc/rc.d/jail start www
#
/etc/rc.d/jail stop www
Il n'existe pas pour le moment de méthode propre pour arrêter un environnement jail(8). C'est dû au fait que les commandes normalement employées pour arrêter proprement un système ne peuvent être utilisées à l'intérieur d'un environnement jail. La meilleur façon d'arrêter un environnement jail est de lancer la commande suivante à l'intérieur de l'environnement ou en utilisant le programme jexec(8) depuis l'extérieur de l'environnement:
#
sh /etc/rc.shutdown
Plus d'information à ce sujet peut être trouvé dans la page de manuel de jail(8).
Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Pour toutes questions à propos de FreeBSD, lisez la
documentation avant de contacter
<questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez
<doc@FreeBSD.org>.