Ce chapitre aborde les sujets généraux d'administration de zone suivants :
Mise en réseau dans des zones non globales en mode IP partagé
Solaris 10 8/07 : mise en réseau dans des zones non globales en mode IP exclusif
Utilisation de contrôles de ressources dans les zones non globales
Comptabilisation étendue sur un système Solaris doté de zones
À propos de la sauvegarde d'un système Solaris doté de zones
Identification des éléments à sauvegarder dans les zones non globales
Pour plus d'informations sur les zones marquées lx, reportez-vous à la Partie III, Zones marquées lx.
Solaris 10 1/06 : la section Démontage des systèmes de fichiers dans les zones a été ajoutée.
Solaris 10 1/06 : des sections sur la sauvegarde et la restauration de zone ont été ajoutées. Voir la section À propos de la sauvegarde d'un système Solaris doté de zones.
Solaris 10 6/06 : une entrée ZFS a été ajoutée à la section Montage de systèmes de fichiers dans les zones.
Solaris 10 8/07 : les informations ci-dessous sont nouvelles ou mises à jour dans cette version.
Dans cette version, deux types IP sont désormais disponibles pour les zones non globales. Des informations sur les fonctions disponibles par type IP ont été ajoutées. Voir les sections Mise en réseau dans des zones non globales en mode IP partagé et Solaris 10 8/07 : mise en réseau dans des zones non globales en mode IP exclusif.
Vous pouvez à présent utiliser un filtre IP Solaris dans les zones en mode IP partagé. Pour plus d'informations, reportez-vous à la section Solaris IP Filter dans les zones en mode IP partagé.
Les informations sur les paramètres de privilèges au sein des zones ont été revues. Voir le Tableau 27–1.
Les informations de la section Commandes utilisées dans un système Solaris doté de zones ont été mises à jour.
Vous trouverez une liste complète des nouvelles fonctionnalités de Solaris 10 et la description des différentes versions de Solaris dans le guide Nouveautés apportées à Oracle Solaris 10 9/10.
La zone globale sert à la fois de zone par défaut pour le système et de zone utilisée pour le contrôle administratif au niveau du système. Ce double rôle présente des problèmes d'administration. Comme les applications au sein de la zone ont accès aux processus et autres objets du système, les opérations d'administration peuvent avoir des répercussions plus importantes que prévues. Par exemple, pour indiquer la sortie des processus d'un nom donné, les scripts d'arrêt de service utilisent fréquemment la commande pkill. Lorsque vous exécutez ce script à partir de la zone globale, tous les processus du système se voient communiquer l'arrêt, quelle que soit la zone.
Cette portée au niveau du système est souvent requise. Par exemple, pour contrôler l'utilisation des ressources système, vous devez afficher les statistiques concernant les processus de l'ensemble du système. En affichant l'activité de la zone globale uniquement, vous ne disposeriez pas d'informations pertinentes relatives aux autres zones partageant les ressources système ou une partie de ces ressources. Un tel affichage revêt toute son importance lorsque les ressources système, la CPU notamment, ne sont pas strictement partitionnées à l'aide de fonctions de gestion de ressources.
Par conséquent, les processus de la zone globale peuvent observer les processus et les autres objets des zones non globales. Ils disposent ainsi d'une capacité d'observation au niveau de l'ensemble du système. Le privilège PRIV_PROC_ZONE limite le contrôle et l'envoi de signaux aux processus. À l'instar de PRIV_PROC_OWNER, ce privilège permet aux processus d'ignorer les restrictions placées sur les processus sans privilège. Dans ce cas, la restriction consiste à empêcher les processus sans privilège de la zone globale de contrôler les processus des autres zones ou de leur envoyer des signaux. Ceci est également vrai lorsque les ID utilisateur des processus correspondent ou que le processus réalisant l'action possède le privilège PRIV_PROC_OWNER. Vous pouvez supprimer le privilège PRIV_PROC_ZONE des processus disposant d'autres privilèges afin de limiter les opérations concernant la zone globale.
Pour plus d'informations sur la correspondance des processus à l'aide de zoneidlist, reportez-vous aux pages de manuel pgrep(1) et pkill(1).
Seuls les processus d'une même zone sont visibles par le biais d'interfaces d'appel système utilisant les identificateurs de processus, comme les commandes kill et priocntl. Pour plus d'informations, reportez-vous aux pages de manuel kill(1) et priocntl(1).
Les modifications suivantes ont été apportées à la commande ps :
L'option -o permet de spécifier le format de sortie. Elle permet d'imprimer l'ID de zone d'un processus ou le nom de la zone dans laquelle le processus est exécuté.
L'option -z zone de liste permet de répertorier les processus dans les zones spécifiées. Pour spécifier une zone, vous pouvez utiliser un nom ou un identificateur (ID). Cette option n'est utile que si la commande est exécutée dans la zone globale.
L'option -Z permet d'imprimer le nom de la zone associée au processus. Le nom s'imprime sous l'en-tête de colonne ZONE.
Pour plus d'informations, reportez-vous à la page de manuel ps(1) .
L'option -z nom de zone a été ajoutée aux utilitaires Solaris suivants. Elle permet de filtrer les informations à inclure aux zones spécifiées.
ipcs (voir la page de manuel ipcs(1))
pgrep (voir la page de manuel pgrep(1))
ptree (voir la page de manuel proc(1))
prstat (voir la page de manuel prstat(1M))
Pour obtenir la liste complète des modifications apportées aux commandes, reportez-vous au Tableau 27–5.
L'administrateur de zone peut définir le nom de nœud dans /etc/nodename renvoyé par uname - n. Les noms de nœud doivent être uniques.
Cette section contient les informations relatives aux problèmes liés aux systèmes de fichiers des systèmes Solaris dotés de zones. Chaque zone possède sa section de l'arborescence du système de fichiers, située dans le répertoire appelé la racine de zone. Les processus de la zone peuvent accéder uniquement aux fichiers de la partie de l'arborescence située sous la racine de zone. Vous pouvez employer l'utilitaire chroot au sein d'une zone, mais uniquement à des fins de restriction du processus à un chemin racine de la zone en question. Pour plus d'informations sur chroot, reportez-vous à la page de manuel chroot(1M).
L'option -o nosuid de l'utilitaire mount a la fonction suivante :
Les processus d'un binaire setuid résidant sur un système de fichiers monté à l'aide de l'option nosetuid ne s'exécutent pas avec les privilèges du binaire setuid. mais avec ceux de l'utilisateur qui exécute le binaire.
En d'autres termes, si un utilisateur exécute un binaire setuid appartenant à root, les processus s'exécutent avec les privilèges de l'utilisateur.
L'ouverture d'entrées spécifiques à un périphérique dans le système de fichiers n'est pas autorisée. Ce comportement équivaut à spécifier l'option nodevices.
Cette option spécifique au système de fichiers est disponible pour tous les systèmes Solaris que vous pouvez monter à l'aide des utilitaires mount, comme le décrit la page de manuel mount(1M) Dans ce manuel, ces systèmes de fichiers sont répertoriés à la section Montage de systèmes de fichiers dans les zones. Les capacités de montage y sont également décrites. Pour plus d'informations sur l'option -o nosuid voir la section Accessing Network File Systems (Reference) du System Administration Guide: Network Services .
L'option nodevices s'applique lors du montage des systèmes de fichiers au sein d'une zone. Par exemple, si une zone se voit accorder l'accès à un périphérique en mode bloc (/dev/dsk/c0t0d0s7 ) et à un périphérique brut (/dev/rdsk/c0t0d0s7) correspondant à un système de fichiers UFS, le système de fichiers est automatiquement monté avec l'option nodevices dans le cadre d'un montage au sein d'une zone. Cette règle ne s'applique pas aux montages spécifiés par le biais d'une configuration zonecfg.
Le tableau ci-dessous décrit les options de montage de systèmes de fichiers dans les zones non globales. Les procédures concernant ces options de montage sont fournies aux sections Configuration, vérification et validation d'une zone et Montage de systèmes de fichiers dans des zones non globales en cours d'exécution.
Les types de système de fichiers qui ne sont pas répertoriés dans le tableau peuvent être spécifiés dans la configuration s'ils présentent un binaire de montage dans /usr/lib/type fs/mount .
Système de fichiers |
Options de montage dans une zone non globale |
---|---|
AutoFS |
Ne peut être monté à l'aide de la commande zonecfg, ne peut être monté manuellement dans une zone non globale à partir de la zone globale. Peut être monté au sein d'une zone. |
CacheFS |
Ne peut être utilisé dans une zone non globale. |
FDFS |
Peut être monté à l'aide de la commande zonecfg, peut être monté manuellement dans une zone non globale à partir de la zone globale, peut être monté au sein de la zone. |
HSFS |
Peut être monté à l'aide de la commande zonecfg, peut être monté manuellement dans une zone non globale à partir de la zone globale, peut être monté au sein de la zone. |
LOFS |
Peut être monté à l'aide de la commande zonecfg, peut être monté manuellement dans une zone non globale à partir de la zone globale, peut être monté au sein de la zone. |
MNTFS |
Ne peut être monté à l'aide de la commande zonecfg, ne peut être monté manuellement dans une zone non globale à partir de la zone globale. Peut être monté au sein d'une zone. |
NFS |
Ne peut pas être monté à l'aide de la commande zonecfg. Les versions V2, V3 et V4 actuellement prises en charge dans les zones peuvent être montées au sein de la zone. |
PCFS |
Peut être monté à l'aide de la commande zonecfg, peut être monté manuellement dans une zone non globale à partir de la zone globale, peut être monté au sein de la zone. |
PROCFS |
Ne peut être monté à l'aide de la commande zonecfg, ne peut être monté manuellement dans une zone non globale à partir de la zone globale. Peut être monté au sein d'une zone. |
TMPFS |
Peut être monté à l'aide de la commande zonecfg, peut être monté manuellement dans une zone non globale à partir de la zone globale, peut être monté au sein de la zone. |
UDFS |
Peut être monté à l'aide de la commande zonecfg, peut être monté manuellement dans une zone non globale à partir de la zone globale, peut être monté au sein de la zone. |
UFS |
Peut être monté à l'aide de la commande zonecfg, peut être monté manuellement dans une zone non globale à partir de la zone globale, peut être monté au sein de la zone. |
XMEMFS |
Peut être monté à l'aide de la commande zonecfg, peut être monté manuellement dans une zone non globale à partir de la zone globale, peut être monté au sein de la zone. Ce système de fichiers ne sera plus pris en charge dans les versions à venir du système Solaris. |
ZFS |
Peut être monté à l'aide des types de ressources zonecfg dataset et fs. |
Pour plus d'informations, reportez-vous aux sections Configuration d'une zone et Montage de systèmes de fichiers dans des zones non globales en cours d'exécution, ainsi qu'à la page de manuel mount(1M).
La possibilité de démonter un système de fichiers dépend de l'identité de l'utilisateur ayant réalisé le montage initial. Si le système de fichiers est spécifié dans la configuration de la zone à l'aide de la commande zonecfg, le montage appartient à la zone globale. Par conséquent, l'administrateur de la zone non globale ne peut pas démonter le système de fichiers. En revanche, si le système de fichiers est monté à l'intérieur de la zone non globale, par exemple, en spécifiant le montage dans le fichier /etc/vfstab de la zone, l'administrateur de la zone non globale est autorisé à le démonter.
Le montage de certains systèmes de fichiers au sein d'une zone est soumis à des restrictions de sécurité. et d'autres systèmes de fichiers ont un comportement particulier lorsqu'ils sont montés dans une zone. Les systèmes de fichiers modifiés sont répertoriés ci-dessous.
AutoFS est un service côté client qui monte automatiquement le système de fichiers adéquat. Lorsqu'un client essaie d'accéder à un système de fichiers non monté, le système de fichiers AutoFS intercepte la requête et appelle la commande automountd pour monter le répertoire spécifié. Les montages AutoFS établis au sein d'une zone sont locaux à cette zone. Ils ne sont pas accessibles à partir d'autres zones, pas même de la zone globale. Ils sont supprimés à l'arrêt ou à la réinitialisation de la zone. Pour plus d'informations sur AutoFS, reportez-vous à la section How Autofs Works du System Administration Guide: Network Services .
Chaque zone exécute sa copie de automountd. L'administrateur de zone contrôle les délais et les cartes automatiques. Vous ne pouvez pas déclencher un montage dans une autre zone en croisant un point de montage AutoFS pour une zone non globale à partir de la zone globale.
Certains montages AutoFS sont créés dans le noyau lors du déclenchement d'un autre montage. Ces montages ne peuvent pas être supprimés à l'aide de l'interface standard umount, car ils doivent être montés ou démontés en tant que groupe. Notez que cette fonctionnalité s'applique à l'arrêt de zone.
MNTFS est un système de fichiers virtuel fournissant au système local l'accès en lecture seule à la table des systèmes de fichiers montés. Le groupe de systèmes de fichiers qui s'affiche lorsque vous exécutez la commande mnttab à l'intérieur d'une zone non globale correspond au groupe de systèmes de fichiers figurant dans la zone, plus une entrée racine (/) . Dans le cas des points de montage dotés d'un périphérique spécial inaccessible à l'intérieur de la zone, tel que /dev/rdsk/c0t0d0s0, la configuration du périphérique est identique à celle du point de montage. Tous les montages du système s'affichent dans la table /etc/mnttab de la zone. Pour plus d'informations sur MNTFS, reportez-vous au Chapitre 18, Mounting and Unmounting File Systems (Tasks) du System Administration Guide: Devices and File Systems.
Les montages AutoFS établis au sein d'une zone sont locaux à cette zone. Ils ne sont pas accessibles à partir d'autres zones, pas même de la zone globale. Ils sont supprimés à l'arrêt ou à la réinitialisation de la zone.
Comme indiqué dans la page de manuel mount_nfs(1M), un serveur NFS ne doit pas essayer de monter son système de fichiers. Par conséquent, une zone ne doit pas monter en mode NFS un système de fichiers exporté par la zone globale. Les zones ne peuvent pas être des serveurs NFS. Au sein d'une zone, les montages NFS se comportent comme s'ils étaient montés à l'aide de l'option nodevices.
La sortie de commande nfsstat appartient uniquement à la zone dans laquelle la commande est exécutée. Par exemple, si la commande est exécutée dans la zone globale, seules les informations concernant la zone globale sont signalées. Pour plus d'informations sur la commande nfsstat, reportez-vous à la page de manuelnfsstat(1M).
La commande zlogin échoue si l'un de ses fichiers ouverts ou l'une des régions de son espace d'adressage réside sur NFS. Pour plus d'informations, reportez-vous à la section Commande zlogin.
Le système de fichiers /proc ou PROCFS fournit la visibilité de processus et les restrictions d'accès, ainsi que les informations concernant l'association de processus au niveau de la zone. Seuls les processus d'une même zone sont visibles par le biais de /proc.
Les processus de la zone globale peuvent observer les processus et les autres objets des zones non globales. Ils disposent ainsi d'une capacité d'observation au niveau de l'ensemble du système.
Au sein d'une zone, les montages, procfs se comportent comme s'ils étaient montés à l'aide de l'option nodevices. Pour plus d'informations sur la commande procfs, reportez-vous à la page de manuel proc(4).
La portée du montage par le biais de LOFS se limite à la partie du système de fichiers visible à la zone. Ainsi, aucune restriction ne s'applique aux montages LOFS dans une zone.
Lorsqu'il utilise la commande zonecfg pour configurer des systèmes de fichiers basés sur le stockage et dotés d'un binaire fsck, comme UFS, l'administrateur de zone doit spécifier un paramètre brut. Ce paramètre indique le périphérique brut (en mode caractère) tel que /dev/rdsk/c0t0d0s7. La commande zoneadmd exécute automatiquement la commande fsck en mode vérification uniquement non interactif (fsck -m) sur le périphérique préalablement au montage du système de fichiers. En cas d'échec de la commande fsck, la commande zoneadmd ne peut pas préparer la zone. Le chemin spécifié par le paramètre raw ne peut pas être relatif.
Indiquer un périphérique à la commande fsck pour un système de fichiers qui ne fournit pas de binaire fsck dans /usr/lib/ type fs/fsck constitue une erreur. Ne pas indiquer un périphérique à la commande fsck si un binaire fsck existe pour ce fichier constitue également une erreur.
Pour plus d'informations, reportez-vous à la section Démon zoneadmd et la page de manuel fsck(1M).
Vous pouvez ajouter un jeu de données ZFS à une zone non globale à l'aide de la commande zonecfg et de la ressource add dataset. Le jeu de données est visible et monté dans la zone non globale et n'est plus visible dans la zone globale. L'administrateur de zone peut créer et détruire les systèmes de fichiers à l'intérieur de cet ensemble de données ou les propriétés du jeu de données.
L'attribut zoned de la commande zfs indique l'ajout d'un jeu de données à une zone non globale.
# zfs get zoned tank/sales NAME PROPERTY VALUE SOURCE tank/sales zoned on local |
Si vous souhaitez partager un jeu de données de la zone globale, vous pouvez ajouter un système de fichiers ZFS monté en LOFS à l'aide de la commande zonecfg et de la sous-commande add fs. L'administrateur global est chargé de la configuration et du contrôle des propriétés du jeu de données.
Pour plus d'informations sur les systèmes de fichiers ZFS, reportez-vous au Chapitre 10, Rubriques avancées Oracle Solaris ZFS du Guide d’administration Oracle Solaris ZFS.
Les zones peuvent être des clients NFS. Les protocoles version 2, version 3 et version 4 sont pris en charge. Pour plus d'informations sur ces versions NFS, reportez-vous à la section Features of the NFS Service du System Administration Guide: Network Services
La version par défaut est NFS version 4. Vous pouvez activer d'autres versions NFS sur un client par l'une des méthodes suivantes :
Vous pouvez modifier /etc/default/nfs pour définir NFS_CLIENT_VERSMAX=numéro de sorte que la zone utilise la version spécifiée par défaut. Voir la section Setting Up NFS Services du System Administration Guide: Network Services . Pour cela, suivez la procédure de sélection d'autres versions NFS sur un client en modifiant le fichier /etc/default/nfs de la liste des tâches.
Vous pouvez créer manuellement un montage de version. Cette méthode ignore le contenu du fichier /etc/default/nfs. Voir la section Setting Up NFS Services du System Administration Guide: Network Services . Suivez la procédure de sélection d'autres versions NFS sur un client dans la liste des tâches à l'aide de la ligne de commande.
Vous ne pouvez pas utiliser la commande mknod décrite dans la page de manuel mknod(1M) pour créer un fichier spécial dans une zone non globale.
L'espace de noms de système de fichiers d'une zone est un sous-ensemble de l'espace de noms accessible à partir de la zone globale. Pour empêcher les processus sans privilèges de la zone globale de parcourir l'arborescence de système de fichiers d'une zone non globale :
Spécifiez que le répertoire parent de la racine de zone appartient uniquement à la racine et que seule celle-ci peut l'exécuter et y accéder en lecture et en écriture.
Limitez l'accès aux répertoires exportés par /proc.
Toute tentative d'accès aux nœuds AutoFS montés pour une autre zone est vouée à l'échec. L'administrateur global ne doit pas avoir de mappages automatiques descendant dans d'autres zones.
Pour accéder directement à partir de la zone globale à une zone non globale installée, vous devez utiliser les utilitaires de sauvegarde du système. En outre, une zone non globale n'est plus sécurisée dès qu'elle est exposée à un environnement inconnu. Imaginons une zone placée sur un réseau public et courant le risque que le contenu de ses systèmes de fichiers soit modifié. S'il existe le moindre doute que la zone ait été exposée à un tel risque, l'administrateur système doit la traiter comme non sécurisée.
Toute commande acceptant une racine alternative via l'option -R ou - b (ou l'équivalent) ne doit pas être utilisée lorsque :
La commande est exécutée dans la zone globale.
La racine alternative renvoie à un chemin racine au sein d'une zone non globale, que le chemin soit relatif à la zone globale du système en cours d'exécution ou à la zone globale dans une racine alternative.
Tel est le cas, par exemple, de l'option -R root_path de l'utilitaire pkgadd exécuté à partir de la zone globale avec un chemin racine de zone non globale.
Les commandes, programmes et utilitaires utilisant l'option -R avec un chemin racine alternatif sont répertoriés ci-dessous.
auditreduce
bart
flar
flarcreate
installf
localeadm
makeuuid
metaroot
patchadd
patchrm
pkgadd
pkgadm
pkgask
pkgchk
pkgrm
prodreg
removef
routeadm
showrev
syseventadm
Les commandes et programmes utilisant l'option -b avec un chemin racine alternatif sont répertoriés ci-dessous.
add_drv
pprosetup
rem_drv
roleadd
sysidconfig
update_drv
useradd
Sur un système Solaris doté de zones, les zones peuvent communiquer entre elles sur le réseau. Toutes possèdent des connexions ou des liaisons distinctes et peuvent exécuter leurs propres démons de serveur. Ces derniers peuvent écouter sur les mêmes ports sans que cela n'engendre de conflit. La pile IP résout les conflits en prenant en compte les adresses IP pour les connexions entrantes. Les adresses IP identifient la zone.
La pile IP dans un système prenant en charge les zones organise la séparation, entre les zones, du trafic sur le réseau. Les applications réceptrices de trafic IP reçoivent uniquement le trafic envoyé à la même zone.
Chaque interface logique du système appartient à une zone donnée (par défaut, la zone globale). Les interfaces réseau logiques assignées à des zones par le biais de l'utilitaire zonecfg permettent la communication sur le réseau. Tous les flux et connexions appartiennent à la zone du processus à l'origine de leur ouverture.
Des restrictions s'appliquent aux liaisons entre les flux de couche supérieure et les interfaces logiques. Un flux peut uniquement établir des liaisons aux interfaces logiques figurant dans sa zone. De même, les paquets d'une interface logique peuvent être transmis uniquement aux flux de couche supérieure de la zone dans laquelle figure l'interface logique.
Chaque zone possède son propre ensemble de liaisons. Chaque zone peut exécuter la même application à l'écoute sur le même port sans que les liaisons n'échouent parce que l'adresse est déjà utilisée. Chaque zone peut exécuter sa propre version des services suivants :
démons de services Internet avec un fichier de configuration complet (voir la page de manuel inetd(1M)) ;
commande sendmail (voir la page de manuel sendmail(1M)) ;
commande apache (voir la page de manuel apache(1M)).
Les zones non globales disposent d'un accès limité au réseau. Les interfaces socket TCP et UDP standard sont disponibles, mais les interfaces socket SOCK_RAW sont limitées au protocole ICMP (Internet Control Message Protocol). Le protocole ICMP est requis pour la détection et le signalement des conditions d'erreur réseau ou l'utilisation de la commande ping.
Chaque zone non globale devant se connecter au réseau dispose d'une ou plusieurs adresses IP dédiées. Ces adresses sont associées à des interfaces réseau logiques que vous pouvez placer dans une zone à l'aide de la commande ifconfig. Les interfaces réseau de zone configurées à l'aide de la commande zonecfg sont automatiquement paramétrées et placées dans la zone lors de l'initialisation de cette dernière. La commande ifconfig permet d'ajouter ou de supprimer des interfaces logiques lorsque la zone est en cours d'exécution. Seul l'administrateur global est autorisé à modifier la configuration de l'interface et les routes du réseau.
Au sein d'une zone non globale, seules les interfaces associées à cette zone sont visibles par le biais de la commande ifconfig.
Pour plus d'informations, reportez-vous aux pages de manuel ifconfig(1M) et if_tcp(7P).
La livraison de paquets entre deux zones d'une même machine n'est autorisée que si une route de concordance existe pour la destination et la zone dans la table de transfert.
Les informations de concordance sont implémentées comme suit :
L'adresse source pour les paquets est sélectionnée sur l'interface de sortie spécifiée par la route de concordance.
Par défaut, le trafic est autorisé entre deux zones disposant d'adresses sur le même sous-réseau. Dans ce cas, la route de concordance est la route d'interface pour le sous-réseau.
Lorsqu'une route par défaut existe pour une zone et que la passerelle correspond à l'un des sous-réseaux de la zone, le trafic en provenance de cette zone vers les autres zones est autorisé. Dans ce cas, la route de concordance correspond à la route par défaut.
Si une route de concordance présente l'indicateur RTF_REJECT, les paquets déclenchent un message ICMP inaccessible. Si une route de concordance présente l'indicateur RTF_BLACKHOLE, les paquets sont rejetés. L'administrateur global peut créer des routes avec ces indicateurs à l'aide des options de commande route décrites dans le tableau suivant.
Modificateur |
Indicateur |
Description |
---|---|---|
-reject |
RTF_REJECT |
Émet un message ICMP inaccessible en cas de concordance. |
-blackhole |
RTF_BLACKHOLE |
Rejette en mode silencieux les paquets lors des mises à jour. |
Pour plus d'informations, reportez-vous à la page de manuel route(1M).
Solaris IP Filter permet le filtrage de paquets avec état et la traduction d'adresse réseau (NAT, Network Address Translation). Un filtre de paquets avec état permet de contrôler l'état des connexions actives. À l'aide des informations obtenues, il identifie alors les paquets autorisés à franchir le pare-feu. Solaris IP Filter permet également le filtrage de paquets sans état ainsi que la création et la gestion des pools d'adresses. Pour plus d'informations, reportez-vous au Chapitre 25, Oracle Solaris IP Filter (présentation) du Guide d’administration système : services IP.
Pour activer Solaris IP Filter dans les zones non globales, activez le filtrage en loopback, comme décrit dans le Chapitre 26, Oracle Solaris IP Filter (tâches) du Guide d’administration système : services IP.
Solaris IP Filter est dérivé du logiciel Open Source IP Filter.
Le multiacheminement sur réseau IP (IPMP, IP Network Multipathing) permet de détecter les défaillances des interfaces physiques et de basculer en transparence l'accès au réseau pour un système présentant plusieurs interfaces sur une même liaison IP. IPMP permet également de répartir la charge des paquets pour les systèmes dotés de plusieurs interfaces.
L'intégralité de la configuration du réseau s'effectue dans la zone globale. Vous pouvez configurer IPMP dans la zone globale, puis étendre cette fonctionnalité aux zones non globales. Pour cela, lorsque vous configurez la zone, vous devez placer son adresse dans un groupe IPMP. En cas d'échec de l'une des interfaces de la zone globale, les adresses de zone non globale migrent vers une autre carte d'interface réseau. Une zone en mode IP partagé peut contenir plusieurs adresses IP, faire partie de plusieurs groupes IPMP et plusieurs zones en mode IP partagé peuvent utiliser le même groupe IPMP.
Au sein d'une zone non globale, seules les interfaces qui lui sont associées sont visibles par le biais de la commande ifconfig.
Voir la section Extension de la fonction IPMP aux zones non globales en mode IP partagé. La procédure de configuration des zones est traitée dans la section Configuration d'une zone. Pour plus d'informations sur l'utilisation d'IPMP, ses composants et ses fonctions, reportez-vous au Chapitre 30, Présentation d’IPMP du Guide d’administration système : services IP.
Une zone en mode IP exclusif possède ses variables de réglage et d'état IP. Lors de sa configuration, la zone reçoit un ensemble de liaisons de données qui lui est propre.
Pour plus d'informations sur les fonctions disponibles dans les zones non globales en mode IP exclusif, reportez-vous à la section Solaris 10 8/07 : zones non globales en mode IP exclusif. Pour plus d'informations sur les variables ndd IP de réglage, reportez-vous au Oracle Solaris Tunable Parameters Reference Manual .
Les zones en mode IP exclusif possèdent des piles TCP/IP distinctes. Ainsi, le partitionnement s'applique jusqu'au niveau de la couche de liaisons de données. L'administrateur global attribue un ou plusieurs noms de liaison de données (un NIC ou un VLAN sur un NIC) à une zone en mode IP exclusif. Pour configurer IP sur ces liaisons de données, il dispose de la souplesse et des options disponibles dans la zone globale.
Le nom de liaison de données assigné exclusivement à une zone.
Pour afficher les liaisons de données assignées aux zones en cours d'exécution, vous pouvez utiliser la commande dladm show-link.
Pour plus d'informations, reportez-vous à la page de manuel dladm(1M).
Les paquets entre zones en mode IP exclusif ne sont pas soumis à un loopback interne. Tous les paquets sont envoyés à la liaison de données. Habituellement, cela signifie que les paquets sont envoyés sur une interface réseau. Ensuite, les périphériques, tels que les commutateurs Ethernet ou les routeurs IP peuvent transférer les paquets vers leur destination, éventuellement une autre zone sur la machine de l'expéditeur.
Les fonctionnalités de filtre IP dont vous disposez dans la zone globale sont également disponibles dans les zones en mode IP exclusif. La configuration du filtre IP dans la zone globale et dans les zones en mode IP exclusif est identique.
Le multiacheminement sur réseau IP (IPMP, IP Network Multipathing) permet de détecter les défaillances des interfaces physiques et de basculer en transparence l'accès au réseau pour un système présentant plusieurs interfaces sur une même liaison IP. En plus de la tolérance aux pannes, IPMP permet également de répartir la charge des paquets pour les systèmes dotés de plusieurs interfaces.
La configuration de la liaison des données s'effectue dans la zone globale. Tout d'abord, vous assignez plusieurs interfaces de liaison de données à une zone à l'aide de la commande zonecfg. Vous devez joindre les différentes interfaces de liaisons de données au même sous-réseau IP. L'administrateur de zone peut alors configurer IPMP de l'intérieur de la zone en mode IP exclusif. Plusieurs groupes IPMP peuvent être assignés à chaque zone en mode IP exclusif, mais ces groupes IPMP ne peuvent pas être partagés avec d'autres zones.
Pour empêcher toute interférence entre processus de zones différentes, le groupe de périphériques au sein d'une zone est limité. Par exemple, un processus dans une zone ne peut pas modifier la mémoire du noyau ni le contenu du disque racine. Ainsi, par défaut, seuls certains pseudopériphériques dont l'utilisation dans une zone ne comporte pas de risque sont disponibles. Vous pouvez rendre d'autres périphériques disponibles au sein d'une zone spécifique à l'aide de l'utilitaire zonecfg.
Le système de fichiers devfs décrit dans la page de manuel devfs(7FS) permet au système Solaris de gérer /devices. Chaque élément de cet espace de nom représente le chemin physique d'un périphérique matériel, d'un pseudopériphérique ou d'un périphérique Nexus. L'espace de nom reflète l'arborescence des périphériques. Ainsi, le système de fichiers est constitué d'une arborescence de répertoires et de fichiers spécifiques aux périphériques.
L'arborescence de fichiers /dev, désormais partie intégrante du système de fichiers (racine) /, comporte des liaisons symboliques ou des chemins logiques vers les chemins physiques présents dans /devices. Les applications font référence au chemin logique vers un périphérique présent dans /dev. Le système de fichiers /dev est monté en loopback dans la zone selon un montage en lecture seule.
L'arborescence de fichiers /dev est géré par un système comportant les composants suivants :
devfsadm (voir la page de manuel devfsadm(1M)) ;
syseventd (voir la page de manuel syseventd(1M)) ;
bibliothèque d'informations sur les périphériques libdevinfo (voir la page de manuel libdevinfo(3LIB)) ;
pilote devinfo (voir la page de manuel devinfo(7D)) ;
Reconfiguration Coordination Manager (RCM, gestionnaire de coordination de reconfiguration). Voir la section Reconfiguration Coordination Manager (RCM) Script Overview du System Administration Guide: Devices and File Systems.
Les sous-systèmes qui dépendent de chemins /devices ne peuvent pas s'exécuter dans les zones non globales avant l'établissement des chemins /dev.
Vous souhaitez peut-être assigner des périphériques à des zones spécifiques. Si vous accordez à des utilisateurs sans privilèges l'accès à des périphériques en mode bloc, ceux-ci pourraient être utilisés pour occasionner des erreurs graves, des réinitialisations de bus ou autres effets négatifs. Avant toute assignation de ce genre, veillez à tenir compte des points suivants :
Avant d'assigner un périphérique de bande SCSI à une zone spécifique, consultez la page de manuel sgen(7D).
Le placement d'un périphérique physique dans plusieurs zones peut créer un canal secret entre les zones. Les applications de la zone globale qui utilisent ce périphérique peuvent subir des dommages de données occasionnés par une zone non globale.
Dans une zone non globale, vous pouvez consulter la liste des modules du noyau chargés à l'aide de la commande modinfo décrite dans la page de manuel modinfo(1M).
La plupart des opérations de gestion du noyau, des périphériques et de la plate-forme ne peuvent pas s'effectuer au sein des zones non globales. En effet, la modification des configurations matérielles de plate-forme représente une violation du modèle de sécurité de zone. Quelques-unes de ces opérations sont indiquées ci-dessous :
ajout et suppression de pilotes ;
chargement et déchargement explicites de modules de noyau ;
initialisation de la reconfiguration dynamique (DR, Dynamic Reconfiguration) ;
utilisation de fonctions ayant une incidence sur l'état de la plate-forme physique.
Les utilitaires suivants ne fonctionnent pas dans une zone, car ils dépendent de périphériques habituellement indisponibles :
cdrecord (reportez-vous à la page de manuel dans le répertoire /usr/share/man/man1 . )
cdrw (reportez-vous à la page de manuel cdrw(1))
rmformat (reportez-vous à la page de manuel rmformat(1))
add_drv (reportez-vous à la page de manuel add_drv(1M))
disks (reportez-vous à la page de manuel disks(1M))
prtconf (voir la page de manuel prtconf(1M)) ;
prtdiag (voir la page de manuel prtdiag(1M)).
rem_drv (reportez-vous à la page de manuel rem_drv(1M))
Vous pouvez exécuter l'utilitaire eeprom dans une zone pour afficher des paramètres. Il ne permet cependant pas de modifier les paramètres. Pour plus d'informations, reportez-vous aux pages de manuel eeprom(1M) et openprom(7D).
En règle générale, vous pouvez exécuter toutes les applications dans les zones non globales. Toutefois, il est possible que les types d'applications suivants ne conviennent pas à cet environnement :
les applications faisant appel à des opérations requérant des privilèges et concernant l'ensemble du système, telles que la configuration de l'horloge du système global ou le verrouillage de la mémoire physique ;
les quelques applications dépendant de certains périphériques qui n'existent pas dans une zone non globale, comme /dev/kmem ;
les applications requérant l'accès en écriture à /usr, à l'exécution, à l'installation, à l'application de patch ou à la mise à niveau. En effet, /usr est, par défaut, en lecture seule pour les zones non globales. Il est parfois possible de minimiser les problèmes associés à ce type d'application sans modifier l'application elle-même ;
dans une zone en mode IP partagé, les applications dépendant de périphériques dans /dev/ip.
Pour plus d'informations sur l'utilisation de la fonction de gestion de ressources dans une zone, reportez-vous également au chapitre décrivant la fonction dans la partie 1 du présent manuel.
Tous les attributs et contrôles de ressources décrits dans les chapitres sur la gestion de ressources peuvent être configurés dans le service d'annuaire LDAP, la carte NIS ou le fichier /etc/project. Les paramètres sont propres à chaque zone. Un projet exécuté de manière autonome dans différentes zones peut présenter des contrôles configurés de manière individuelle dans chaque zone. Par exemple, le projet A peut être paramétré project.cpu-shares=10 dans la zone globale et project.cpu-shares=5 dans une zone non globale. Plusieurs instances de rcapd peuvent être exécutées sur le système, les opérations de chacune d'elles étant toutefois circonscrites à la zone qui lui correspond.
Les attributs et contrôles de ressources permettant de contrôler les projets, tâches et processus d'une zone font l'objet d'exigences supplémentaires en ce qui concerne les pools et les contrôles de ressources à l'échelle de la zone.
Dans le cadre des zones non globales, la règle "une zone, un pool" s'applique. Plusieurs zones non globales peuvent partager les ressources d'un pool. Toutefois, les processus dans la zone globale peuvent être liés à tout pool par un processus disposant des privilèges suffisants. Le contrôleur de ressources poold s'exécute uniquement dans la zone globale contenant plusieurs pools sur lesquels il peut fonctionner. L'utilitaire poolstat affiche uniquement les informations relatives au pool associé à la zone non globale dans laquelle il s'exécute. La commande pooladm exécutée sans argument dans une zone non globale affiche uniquement les informations concernant le pool associé à la zone en question.
Les contrôles de ressources à l'échelle de la zone sont inopérants lorsqu'ils sont configurés dans le fichier project. Pour configurer un contrôle de ressources à l'échelle d'une zone, exécutez l'utilitaire zonecfg.
Cette section décrit l'utilisation de l'ordonnanceur FSS (Fair Share Scheduler) dans le cadre des zones.
Les partages CPU FSS d'une zone sont hiérarchiques. L'administrateur global définit les partages de la zone globale et des zones non globales par le biais du contrôle de ressources à l'échelle de la zone zone.cpu-shares. Le contrôle de ressources project.cpu-shares peut ensuite être défini pour chaque projet au sein de la zone en question afin de sous-diviser plus avant les partages définis par le biais du contrôle à l'échelle de la zone.
Pour assigner des partages de zone à l'aide de la commande zonecfg, reportez-vous à la section Définition de zone.cpu-shares dans une zone globale. Pour plus d'informations sur project.cpu-shares, reportez-vous à la section Contrôles de ressources disponibles. Pour obtenir des exemples de procédures illustrant la définition de partages temporaires, reportez-vous à la section Utilisation de l'ordonnanceur FSS sur un système Solaris doté de zones.
Pour assigner des partages FSS pour la zone globale et pour les zones non globales, exécutez zone.cpu-shares. Si FSS est l'ordonnanceur par défaut du système et que les partages ne sont pas assignés, chaque zone reçoit automatiquement un partage, y compris la zone globale. Si vous assignez deux partages par le biais de zone.cpu-shares à la zone non globale unique du système, vous définissez ainsi la proportion de CPU que cette zone reçoit par rapport à la zone globale. Dans ce cas, le rapport de CPU entre les deux zones est de 2:1.
Le sous-système de comptabilisation étendue effectue la collecte de données et produit des rapports pour le système entier (y compris les zones non globales) en cas d'exécution dans la zone globale. L'administrateur global peut également déterminer le mode d'utilisation des ressources par zone.
Le sous-système de comptabilisation étendue autorise différents fichiers et paramètres de comptabilité par zone dans le cadre de la comptabilisation des tâches et des processus. Vous pouvez attribuer aux enregistrements exacct le nom de zone EXD PROC ZONENAME pour les processus et EXD TASK ZONENAME pour les tâches. Les enregistrements comptables sont enregistrés dans les fichiers de comptabilité de la zone globale ainsi que dans les fichiers de comptabilité de chaque zone. Les enregistrements EXD TASK HOSTNAME, EXD PROC HOSTNAME et EXD HOSTNAME contiennent la valeur uname -n pour la zone dans laquelle le processus ou la tâche ont été exécutés au lieu du nom de nœud de la zone globale.
Pour plus d'informations sur la comptabilisation du flux IPQoS, reportez-vous au Chapitre 36, Utilisation de la comptabilisation des flux et de la collecte statistique (tâches) du Guide d’administration système : services IP.
Un sous-ensemble de privilèges limite les processus. La restriction au niveau des privilèges empêche une zone de réaliser des opérations qui pourraient avoir une incidence sur d'autres zones. L'ensemble de privilèges limite les possibilités d'action des utilisateurs disposant de privilèges au sein d'une zone. Pour afficher la liste des privilèges disponibles au sein d'une zone, exécutez l'utilitaire ppriv.
Le tableau suivant répertorie tous les privilèges Solaris et le statut qui leur est associé par rapport aux zones. Les privilèges facultatifs ne font pas partie de l'ensemble par défaut des privilèges. Vous pouvez toutefois les spécifier à l'aide de la propriété limitpriv. Les privilèges requis doivent être inclus dans l'ensemble des privilèges obtenu. Les privilèges interdits ne peuvent pas être inclus dans l'ensemble des privilèges obtenu.
La propriété limitpriv est disponible depuis la version Solaris 10 11/06.
Tableau 27–1 Statut des privilèges dans les zones
Privilège |
Statut |
Remarques |
---|---|---|
cpc_cpu |
FACULTATIF |
Accès à certains compteurs cpc(3CPC) |
dtrace_proc |
FACULTATIF |
Fournisseurs fasttrap et pid ; plockstat(1M) |
dtrace_user |
FACULTATIF |
Fournisseurs profile et syscall |
Graphics_access |
FACULTATIF |
Accès ioctl(2) à agpgart_io(7I) |
Graphics_map |
FACULTATIF |
Accès mmap(2) à agpgart_io(7I) |
net_rawaccess |
Facultatif dans les zones en mode IP partagé Par défaut dans les zones en mode IP exclusif |
Accès au paquet PF_INET/PF_INET6 brut |
proc_clock_highres |
FACULTATIF |
Utilisation d'horloges haute résolution |
proc_priocntl |
FACULTATIF |
Contrôle de programmation ; priocntl(1) |
sys_ipc_config |
FACULTATIF |
Augmentation de la taille du tampon de file d'attente des messages IP |
sys_time |
FACULTATIF |
Manipulation du temps système ; xntp(1M) |
dtrace_kernel |
Interdit |
Actuellement non pris en charge |
proc_zone |
Interdit |
Actuellement non pris en charge |
sys_config |
Interdit |
Actuellement non pris en charge |
sys_devices |
Interdit |
Actuellement non pris en charge |
sys_linkdir |
Interdit |
Actuellement non pris en charge |
sys_net_config |
Interdit |
Actuellement non pris en charge |
sys_res_config |
Interdit |
Actuellement non pris en charge |
sys_suser_compat |
Interdit |
Actuellement non pris en charge |
proc_exec |
Requis, par défaut |
Permet de démarrer init(1M ) |
proc_fork |
Requis, par défaut |
Permet de démarrer init(1M ) |
sys_mount |
Requis, par défaut |
Nécessaire dans le cadre du montage de systèmes de fichiers requis |
sys_ip_config |
Requis, par défaut dans les zones en mode IP exclusif Interdit dans les zones en mode IP partagé |
Requis pour initialiser la zone et le réseau IP dans les zones en mode IP exclusif |
contract_event |
Par défaut |
Utilisé par le système de fichiers de contrat |
contract_observer |
Par défaut |
Observation de contrat quel que soit l'ID utilisateur |
file_chown |
Par défaut |
Modification de la propriété des fichiers |
file_chown_self |
Par défaut |
Modification apportée au propriétaire/groupe de ses propres fichiers |
file_dac_execute |
Par défaut |
Accès d'exécution quel que soit le mode ou la liste ACL |
file_dac_read |
Par défaut |
Accès en lecture quel que soit le mode ou la liste ACL |
file_dac_search |
Par défaut |
Accès de recherche quel que soit le mode ou la liste ACL |
file_dac_write |
Par défaut |
Accès en écriture quel que soit le mode ou la liste ACL |
file_link_any |
Par défaut |
Accès de liaison quel que soit le propriétaire |
file_owner |
Par défaut |
Autre accès quel que soit le propriétaire |
file_setid |
Par défaut |
Modification des droits d'accès pour les fichiers setid, setgid et setuid |
ipc_dac_read |
Par défaut |
Accès en lecture IPC quel que soit le mode |
ipc_dac_owner |
Par défaut |
Accès en écriture IPC quel que soit le mode |
ipc_owner |
Par défaut |
Autre accès IPC quel que soit le mode |
net_icmpaccess |
Par défaut |
Accès au paquet ICMP : ping(1M) |
net_privaddr |
Par défaut |
Liaison aux ports avec privilèges |
proc_audit |
Par défaut |
Génération d'enregistrements d'audit |
proc_chroot |
Par défaut |
Modification du répertoire racine |
proc_info |
Par défaut |
Examen de processus |
proc_lock_memory |
Par défaut |
Verrouillage de mémoire ; shmctl(2) et mlock(3C) Si l'administrateur système a assigné ce privilège à une zone non globale, envisagez également de configurer le contrôle de ressources zone.max-locked-memory pour empêcher la zone de verrouiller la totalité de la mémoire. |
proc_owner |
Par défaut |
Contrôle de processus quel que soit le propriétaire |
proc_session |
Par défaut |
Contrôle de processus quelle que soit la session |
proc_setid |
Par défaut |
Définition des ID d'utilisateur ou de groupe à convenance |
proc_taskid |
Par défaut |
Assignation des ID de tâche à l'appelant |
sys_acct |
Par défaut |
Gestion de la comptabilité |
sys_admin |
Par défaut |
Tâches simples d'administration système |
sys_audit |
Par défaut |
Gestion de l'audit |
sys_nfs |
Par défaut |
Support client NFS |
sys_resource |
Par défaut |
Manipulation de limite des ressources |
Le tableau suivant répertorie tous les privilèges Solaris Trusted Extensions ainsi que leur statut par rapport aux zones. Les privilèges facultatifs ne font pas partie de l'ensemble par défaut des privilèges. Vous pouvez toutefois les spécifier à l'aide de la propriété limitpriv.
Ces privilèges sont interprétés uniquement si le système est configuré avec Solaris Trusted Extensions.
Privilège Solaris Trusted Extensions |
Statut |
Remarques |
---|---|---|
File_downgrade_sl |
FACULTATIF |
Définissez l'étiquette de sensibilité d'un fichier ou d'un répertoire de manière à ce qu'elle ne domine pas l'étiquette de sensibilité existante. |
File_upgrade_sl |
FACULTATIF |
Définissez l'étiquette de sensibilité d'un fichier ou d'un répertoire de manière à ce qu'elle domine l'étiquette de sensibilité existante. |
sys_trans_label |
FACULTATIF |
Traduction des étiquettes non dominées par l'étiquette de sensibilité |
win_colormap |
FACULTATIF |
Redéfinition des restrictions de la palette des couleurs |
win_config |
FACULTATIF |
Configuration ou destruction des ressources retenues en permanence par le serveur X |
win_dac_read |
FACULTATIF |
Lecture à partir de la ressource fenêtre qui n'appartient pas à l'ID utilisateur du client |
win_dac_write |
FACULTATIF |
Création de la ressource fenêtre qui n'appartient pas à l'ID utilisateur du client ou écriture dans celle-ci |
win_devices |
FACULTATIF |
Réalisation d'opérations sur les périphériques d'entrée |
win_dga |
FACULTATIF |
Utilisation des extensions du protocole X d'accès direct aux graphiques ; privilèges de mémoire graphique requis |
win_downgrade_sl |
FACULTATIF |
Remplacement de l'étiquette de sensibilité de la ressource fenêtre par une nouvelle étiquette dominée par l'étiquette existante |
win_fontpath |
FACULTATIF |
Ajout d'un chemin de police supplémentaire |
win_mac_read |
FACULTATIF |
Lecture à partir de la ressource fenêtre avec une étiquette dominant l'étiquette du client |
win_mac_write |
FACULTATIF |
Écriture dans la ressource fenêtre avec une étiquette différente de l'étiquette du client |
win_selection |
FACULTATIF |
Requête de déplacement de données sans intervention du confirmeur |
win_upgrade_sl |
FACULTATIF |
Remplacement de l'étiquette de sensibilité de la ressource fenêtre par une nouvelle étiquette non dominée par l'étiquette existante |
net_bindmlp |
Par défaut |
Autorisation de la liaison à un port multiniveau (MLP, multilevel port) |
net_mac_aware |
Par défaut |
Autorisation de la lecture via NFS |
Pour modifier les privilèges dans une configuration de zone non globale, reportez-vous à la section Configuration, vérification et validation d'une zone.
Pour examiner les ensembles de privilèges, reportez-vous à la section Utilisation de l'utilitaire ppriv. Pour plus d'informations sur les privilèges, voir la page de manuel ppriv(1) et le System Administration Guide: Security Services.
L'architecture IPsec (Internet Protocol Security Architecture) offrant la protection de datagramme IP est décrite au Chapitre 19, Architecture IPsec (présentation) du Guide d’administration système : services IP. Le protocole IKE (Internet Key Exchange, échange de clés sur Internet) permet de gérer automatiquement les clés matérielles requises à l'authentification et au chiffrement.
Pour de plus amples informations, reportez-vous aux pages de manuel ipsecconf(1M) et ipseckey(1M).
Vous pouvez utiliser l'architecture IPsec dans la zone globale. Toutefois, dans une zone non globale, l'architecture IPsec ne peut pas avoir recours au protocole IKE. Par conséquent, vous devez gérer les clés et la stratégie IPsec des zones non globales en utilisant le protocole IKE (Internet Key Exchange) dans la zone globale. Utilisez l'adresse source correspondant à la zone non globale que vous configurez.
Vous pouvez utiliser l'architecture IPsec dans les zones en mode IP exclusif.
Le contrôle Solaris est décrit au Chapitre 28, Oracle Solaris Auditing (Overview) du System Administration Guide: Security Services. Les points à prendre en compte dans le cadre du contrôle au niveau des zones sont décrits aux sections suivantes :
Chapitre 29, Planning for Oracle Solaris Auditing du System Administration Guide: Security Services
Auditing and Solaris Zones du System Administration Guide: Security Services
Un enregistrement d'audit décrit un événement tel que la connexion à un système ou l'écriture dans un fichier. Il contient des jetons qui sont des jeux de données d'audit. Le jeton zonename permet de configurer le contrôle Solaris afin d'identifier les événements d'audit par zone et L'utilisation du jeton zonename permet de générer les informations suivantes :
des enregistrements d'audit portant le nom de la zone ayant généré l'enregistrement ;
un journal d'audit destiné à une zone spécifique que l'administrateur global peut rendre disponible à l'administrateur de zone.
Les pistes de vérification Solaris sont configurées dans la zone globale. La stratégie d'audit est définie dans la zone globale et s'applique aux processus de toutes les zones. Les enregistrements d'audit peuvent porter le nom de la zone dans lequel l'événement se produit. Pour inclure des noms de zone dans les enregistrements d'audit, vous devez modifier le fichier /etc/security/audit_startup avant d'installer les zones non globales. La sélection de nom de zone respecte la casse.
Pour configurer le contrôle dans la zone globale de sorte à inclure tous les enregistrements d'audit de zone, ajoutez la ligne suivante au fichier /etc/security/audit_startup :
/usr/sbin/auditconfig -setpolicy +zonename |
En tant qu'administrateur global dans la zone globale, exécutez l'utilitaire auditconfig :
global# auditconfig -setpolicy +zonename |
Pour plus d'informations, reportez-vous aux pages de manuel audit_startup(1M) et auditconfig(1M), ainsi qu'à la section "Configuring Audit Files (Tasks)" du guide System Administration Guide: Security Services (en anglais).
À l'installation d'une zone non globale, les fichiers audit_control et audit_user de la zone globale sont copiés dans le répertoire /etc/security de cette zone. Vous devrez peut-être modifier ces fichiers pour refléter les besoins en audit de la zone.
Par exemple, vous pouvez configurer chaque zone pour qu'un contrôle différent soit appliqué aux divers utilisateurs. Pour définir différents critères de présélection par utilisateur, vous devez modifier les fichiers audit_control et audit_user. Si nécessaire, apportez des corrections au fichier audit_user dans la zone non globale pour refléter la base utilisateur de la zone. Le contrôle des utilisateurs pouvant être configuré différemment pour chaque zone, le fichier audit_user peut être vide.
Pour plus d'informations, reportez-vous aux pages de manuel audit_control(4) et audit_user(4).
Vous pouvez catégoriser les enregistrements d'audit Solaris par zone en incluant le jeton zonename, comme illustré à la section Configuration du contrôle dans la zone globale La commande auditreduce permet alors de recueillir des enregistrements de diverses zones afin de créer des journaux spécifiques à une zone.
Pour plus d'informations, reportez-vous aux pages de manuel audit_startup(1M) et auditreduce(1M).
Pour indiquer le nom et l'emplacement des fichiers Core générés par des processus prenant fin de manière anormale, exécutez la commande coreadm. Pour produire les chemins de fichier Core comportant le nom de zone de la zone dans laquelle le processus a été exécuté, spécifiez la variable %z. Le nom de chemin est relatif à un répertoire racine de la zone.
Pour plus d'informations, reportez-vous aux pages de manuel coreadm(1M) et core(4).
Vous pouvez exécuter dans une zone non globale les programmes DTrace pour lesquels seuls les privilèges dtrace_proc et dtrace_user sont nécessaires. Pour ajouter des privilèges à un ensemble de privilèges disponibles pour la zone non globale, utilisez la propriété zonecfg limitpriv. Pour obtenir des instructions à ce sujet, reportez-vous à la section Utilisation de DTrace.
Les fournisseurs pris en charge par dtrace_proc sont fasttrap et pid. Les fournisseurs pris en charge par dtrace_user sont profile et syscall. Certaines limites s'appliquent aux fournisseurs et actions DTrace dans la zone.
Pour plus d'informations, reportez-vous également à la section Privilèges dans une zone non globale.
Vous pouvez effectuer des sauvegardes dans chaque zone non globale ou sauvegarder le système dans son intégralité à partir de la zone globale.
De nombreuses zones non globales partageant des fichiers avec la zone globale par le biais de montages en lecture seule de système de fichiers en loopback (habituellement /usr, /lib, /sbin et /platform), vous devez sauvegarder les répertoires lofs selon une méthode de sauvegarde de zone globale.
Ne sauvegardez pas les systèmes de fichiers lofs partagés avec la zone globale dans des zones non globales. Si l'administrateur global tentait de restaurer les systèmes de fichiers lofs à partir d'une zone non globale, de graves problèmes pourraient se produire.
Il est conseillé d'effectuer les sauvegardes à partir de la zone globale dans les cas suivants :
Vous souhaitez sauvegarder les configurations des zones non globales et les données d'application.
Votre préoccupation principale est de pouvoir réaliser une reprise sur sinistre. Si vous devez restaurer le système en partie ou en totalité, notamment les systèmes de fichiers racine des zones et leurs données de configuration ainsi que les données de la zone globale, vous devez effectuer les sauvegardes dans la zone globale.
Vous souhaitez utiliser la commande ufsdump pour réaliser une sauvegarde des données. L'importation d'un périphérique de disque physique dans une zone non globale modifie le profil de sécurité de la zone. Il est donc impératif d'utiliser la commande ufsdump à partir de la zone globale.
Vous possédez un logiciel de sauvegarde réseau commercial.
Dans la mesure du possible, configurez votre logiciel de sauvegarde réseau de sorte à ce que tous les systèmes de fichiers lofs soient ignorés. Vous devez effectuer la sauvegarde lorsque la zone et ses applications ont mis en attente les données à sauvegarder.
Il est conseillé d'effectuer des sauvegardes au sein des zones non globales dans les cas suivants :
L'administrateur de zone non globale doit pouvoir effectuer une récupération des défaillances bénignes ou une restauration des données d'utilisateur ou d'application spécifiques à une zone.
Vous souhaitez utiliser des programmes de sauvegarde par fichier, notamment tar ou cpio. Reportez-vous aux pages de manuel tar(1) et cpio(1).
Vous utilisez le logiciel de sauvegarde d'une application ou d'un service particulier en cours d'exécution dans une zone. L'exécution du logiciel de sauvegarde à partir de la zone globale peut se révéler difficile, car les environnements d'application (chemin de répertoire et logiciels installés, notamment) peuvent différer entre la zone globale et la zone non globale.
Si l'application peut réaliser un instantané sur son propre programme de sauvegarde dans chaque zone non globale et enregistrer ces sauvegardes dans un répertoire en écriture exporté depuis la zone globale, l'administrateur global peut recueillir ces sauvegardes dans le cadre de la stratégie de sauvegarde menée à partir de la zone globale.
Vous pouvez sauvegarder l'intégralité du contenu d'une zone non globale. En raison des rares modifications apportées à la configuration d'une zone, vous pouvez aussi sauvegarder les données d'application uniquement.
Si les données d'application sont conservées dans un emplacement spécifique du système de fichiers, vous opterez peut-être pour des sauvegardes régulières de ces données uniquement. En raison de la moindre fréquence des modifications qui lui sont apportées, le système de fichiers racine de la zone ne requiert pas de sauvegardes aussi nombreuses.
Vous devez déterminer l'emplacement des fichiers de l'application. Les emplacements de stockage des fichiers sont les suivants :
répertoires de base des utilisateurs ;
/etc pour les fichiers de données de configuration ;
/var.
En supposant que l'administrateur d'application connaisse l'emplacement de stockage des données, vous pouvez éventuellement créer un système présentant un répertoire accessible en écriture par zone disponible pour chaque zone. Les zones peuvent alors y stocker leurs propres sauvegardes et l'administrateur global peut désigner ce répertoire comme l'un des emplacements sur le système à sauvegarder.
Si les données d'application de base de données ne figurent pas dans leur propre répertoire, les règles suivantes s'appliquent :
Veillez d'abord à ce que l'état des bases de données soit cohérent.
Les bases de données doivent se trouver en mode quiescent, car leurs tampons internes doivent être remis à zéro sur le disque. Avant de lancer la sauvegarde à partir de la zone globale, veillez à ce que les bases de données dans les zones non globales descendent.
Au sein de chaque zone, réalisez un instantané des données à l'aide des fonctions de système de fichiers. Ensuite, sauvegardez les instantanés directement à partir de la zone globale.
Ce processus réduit le temps écoulé de la fenêtre de sauvegarde et évite d'avoir à sauvegarder les clients ou modules dans toutes les zones.
À leur convenance, les zones non globales peuvent prendre un instantané de leurs systèmes de fichiers privés lorsque l'application se trouve temporairement en mode quiescence. La zone globale peut ultérieurement sauvegarder chaque instantané et les placer sur bande après la reprise du service de l'application.
Cette méthode présente les avantages suivants :
Le nombre de périphériques de bande requis est moindre.
Aucune coordination entre les zones non globales n'est nécessaire.
La sécurité est renforcée, car il n'est pas obligatoire d'assigner des périphériques directement aux zones.
En général, la zone globale conserve la gestion du système, ce qui est recommandé.
Dans le cas de restaurations à partir de sauvegardes réalisées dans la zone globale, l'administrateur global peut réinstaller les zones concernées, puis restaurer les fichiers leur appartenant. Pour cela, les conditions suivantes doivent s'appliquer :
La configuration de la zone restaurée ne doit pas avoir été modifiée depuis la sauvegarde.
Aucune mise à jour ni aucun patch ne doit avoir été appliqué à la zone globale entre la sauvegarde et la restauration de la zone.
Dans le cas contraire, la restauration pourrait écraser certains fichiers requérant une fusion manuelle.
Par exemple, une fusion manuelle de fichiers s'impose lorsqu'un patch a été appliqué à une zone globale entre la sauvegarde et la restauration de la zone non globale. Dans ce cas, soyez particulièrement vigilant lorsque vous restaurez les fichiers sauvegardés d'une zone. En effet, il est possible qu'un fichier sauvegardé ne soit pas compatible avec la zone récemment installée et créée après l'application des patchs à la zone globale. Dans une telle situation, vous devez examiner les fichiers un par un et les comparer avec les copies figurant dans la zone que vous venez d'installer. En règle générale, vous constaterez que vous pouvez copier le fichier directement, mais il arrive que vous deviez fusionner les modifications initiales apportées au fichier dans la copie que vous venez d'installer et à laquelle vous avez appliqué des patchs dans la zone.
En cas de perte de tous les systèmes de fichiers de la zone globale, la restauration de l'intégralité de la zone globale inclut les zones non globales, à condition que les systèmes de fichiers racine de chacune des zones non globales aient également été sauvegardés.
Les commandes répertoriées dans le Tableau 27–3 constituent l'interface d'administration principale de l'utilitaire de zones.
Tableau 27–3 Commandes d'administration de zones
Aide-mémoire des commandes |
Description |
---|---|
Connexion à une zone non globale |
|
Impression du nom de la zone actuelle |
|
Administration de zones au sein d'un système |
|
Définition d'une configuration de zone |
|
Mappage du nom et de l'ID de zone |
|
Description de la fonction de zones |
|
Pilote de périphérique de console de zone |
Le démon zoneadmd est le processus principal de gestion de la plate-forme virtuelle de la zone. Pour plus d'informations sur le démon zoneadmd reportez-vous à la page de manuel zoneadmd(1M). Le démon ne constitue pas une interface de programmation.
Les commandes répertoriées dans le tableau suivant sont utilisées avec le démon d'allocation restrictive.
Tableau 27–4 Commandes utilisées avec rcapd
Aide-mémoire des commandes |
Description |
---|---|
Gère l'utilisation des ressources des projets faisant l'objet d'une restriction de ressources . |
|
Configure le démon d'allocation restrictive, affiche l'état actuel du démon s'il a été configuré et active ou désactive la limitation des ressources. Également utilisé pour définir une limitation temporaire de mémoire. |
|
Démon d'allocation restrictive des ressources. |
Les commandes répertoriées dans le tableau suivant ont été modifiées pour être utilisées dans un système Solaris doté de zones. Elles disposent d'options spécifiques aux zones ou présentent les informations de manière différente. Elles sont répertoriées par section de page de manuel.
Tableau 27–5 Commandes modifiées pour une utilisation dans un système Solaris doté de zones
Aide-mémoire des commandes |
Description |
---|---|
Ajout de l'option de zone -z. Cette option n'est utile que si la commande est exécutée dans la zone globale. |
|
Ajout de l'option de zone -z. Cette option n'est utile que si la commande est exécutée dans la zone globale. |
|
Ajout de l'option de liste d'ID de zone -z. Cette option n'est utile que si la commande est exécutée dans la zone globale. |
|
Ajout de l'expression zone pour une utilisation conjointe avec l'option -l afin de répertorier tous les privilèges disponibles dans la zone active. L'option -v après zone permet également d'obtenir une sortie détaillée. |
|
L'utilisation conjointe de l'ID de zone avec liste d'ID et -i type d'ID permet de spécifier des processus. La commande priocntl -i ID de zone permet de déplacer des processus en cours d'exécution vers une autre classe de programmation au sein d'une zone non globale. |
|
Ajout de l'option -z zone à ptree uniquement. Cette option n'est utile que si la commande est exécutée dans la zone globale. |
|
Ajout de nom de zone et ID de zone à la liste des noms de format reconnus utilisés avec l'option -o. Ajout de -z liste de zones afin de répertorier uniquement les processus dans les zones spécifiées. Pour spécifier une zone, vous pouvez utiliser un nom ou un identificateur (ID). Cette option n'est utile que si la commande est exécutée dans la zone globale. Ajout de -Z pour imprimer le nom de la zone associée au processus. Le nom est imprimé sous l'en-tête de colonne supplémentaire ZONE. |
|
Ajout de ID de zone à la liste des arguments valides utilisés avec l'option -i. |
|
Si elles sont exécutées dans une zone non globale dans laquelle la fonction de pools est désactivée, les options -b, -c -g, -m, - p, -u, -w, et -y affiche des valeurs uniquement pour les processeurs figurant dans le groupe de processeurs du pool auquel la zone est liée. |
|
Ajout du jeton nom de zone. |
|
Ajout de l'option -z nom de zone. Ajout de la possibilité d'obtenir un journal d'audit d'une zone. |
|
Ajout de la variable %z permettant d'identifier la zone dans laquelle le processus a été exécuté. |
|
Ajout de l'option -Z pour afficher les montages dans toutes les zones visibles. |
|
Ajout de l'option zone pour l'utilisation de la zone globale et de l'option -zone nom de zone pour l'application à une zone non globale. |
|
Si cette commande est exécutée dans une zone non globale où la fonction de pool est activée, les informations ne sont fournies que pour les processeurs figurant dans le groupe de processeurs du pool auquel la zone est liée. |
|
Si cette commande est exécutée dans la zone globale, les kstat s'affichent pour toutes les zones. Si elle est exécutée dans une zone non globale, seules les kstat avec un ID de zone correspondant s'affichent. |
|
Si cette commande est exécutée dans une zone non globale dans laquelle la fonction de pools est activée, elle affiche uniquement les lignes des processeurs figurant dans le groupe de processeurs du pool auquel la zone est liée. |
|
Lorsque cette commande est exécutée dans la zone globale, elle affiche des informations sur toutes les zones. ndd sur les modules TCP/IP dans une zone en mode IP exclusif affiche uniquement les informations relatives à cette zone. |
|
Affiche les informations relatives à la zone active uniquement. |
|
Affiche les statistiques sur la zone active uniquement. |
|
Ajout de la liste ID de zone. Pour des informations sur l'utilisation des zones avec des pools de ressources, reportez-vous également à la section Pools de ressources utilisés dans les zones. |
|
Ajout de l'option de liste d'ID de zone -z. Ajout de l'option -Z également. Si cette commande est exécutée dans une zone non globale dans laquelle la fonction de pools est activée, le pourcentage de temps CPU récent utilisé par le processus s'affiche uniquement pour les processeurs figurant dans le groupe de processeurs du pool auquel la zone est liée. La sortie des options -a, -t, -T, - J et -Z affiche une colonne SWAP, au lieu d'une colonne SIZE. indiquant le swap total consommé par les montages tmpfs et les processus de la zone. Cette valeur permet de contrôler le swap réservé par chaque zone, que vous pouvez utiliser pour choisir un paramètre zone.max-swap raisonnable. |
|
Lorsque cette commande est exécutée dans une zone non globale, seules les informations sur les processeurs visibles pour la zone s'affichent. |
|
Modification d'utilisation. Lorsque cette commande est spécifiée au sein d'une zone non globale, l'option -F n'a aucun effet, car l'élément "don't fragment" est défini en permanence. |
|
Lorsque cette commande est exécutée dans une zone non globale dans laquelle la fonction de pools est activée, les statistiques sont générées uniquement pour les processeurs figurant dans le groupe de processeurs du pool auquel la zone est liée. S'applique à la sortie de l'option -p et des champs de rapport page, faults et cpu. |
|
Ajout de AUDIT_ZONENAME pour générer un jeton ID de zone avec chaque enregistrement d'audit. |
|
Ajout de l'argument P_ZONEID ID. |
|
Si le programme appelant réside dans une zone non globale et que la fonction de pools est activée, une erreur est renvoyée lorsque le processeur ne figure pas dans le groupe de processeurs du pool auquel la zone est liée. |
|
Si le programme appelant réside dans une zone non globale et que la fonction de pools est activée, une erreur est renvoyée lorsque le processeur ne figure pas dans le groupe de processeurs du pool auquel la zone est liée. |
|
Ajout de P_ZONEID en tant que type d'ID. Ajout de zone aux choix possibles pour la spécification P_MYID. Ajout de P_ZONEID à la liste de types d'ID dans la description d'erreur EINVAL. |
|
Si le programme appelant réside dans une zone non globale et que la fonction de pools est activée, une erreur est renvoyée lorsque le processeur ne figure pas dans le groupe de processeurs du pool auquel la zone est liée. |
|
Si le programme appelant réside dans une zone non globale et que la fonction de pools est activée, une erreur est renvoyée lorsque le processeur ne figure pas dans le groupe de processeurs du pool auquel la zone est liée. |
|
Si le programme appelant réside dans une zone non globale et que la fonction de pools est activée, une erreur est renvoyée lorsque le processeur ne figure pas dans le groupe de processeurs du pool auquel la zone est liée. |
|
Modification de PRIV_SYS_CONFIG en PRIV_SYS_ADMIN. |
|
ENOENT est renvoyé si le fichier indiqué par fichier n'est pas un chemin absolu. |
|
Si le programme appelant réside dans une zone non globale et que la fonction de pools est activée, le comportement équivaut à un appel avec un psetid de PS_MYID. |
|
Ajout d'ID de zone aux processus cibles pouvant être spécifiés. Ajout d'ID de zone à la description d'erreur EINVAL. |
|
Ajout de la chaîne "zone" pour le groupe de tous les privilèges disponibles au sein de la zone du programme appelant. |
|
Si le programme appelant réside dans une zone non globale et que la fonction de pools est activée, une erreur est renvoyée lorsque le processeur ne figure pas dans le groupe de processeurs du pool auquel la zone est liée. |
|
Si le programme appelant réside dans une zone non globale et que la fonction de pools est activée, sysconf(_SC_NPROCESSORS_CONF) et sysconf(_SC_NPROCESSORS_ONLN) renvoient le nombre des processeurs dans le groupe de processeurs du pool auquel la zone est liée. |
|
Ajout de la fonction ucred_getzoneid()qui renvoie l'ID de zone du processus ou la valeur -1 si l'ID de zone n'est pas disponible. |
|
Ajout de n_type: NT_ZONENAME. Cette entrée contient une chaîne indiquant le nom de la zone dans laquelle le processus était exécuté. |
|
Pour aider les zones, cette commande fournit désormais des paramètres facultatifs et une variable d'environnement. |
|
Ajout de capacité pour l'obtention d'informations relatives aux processus en cours d'exécution dans les zones. |
|
Ajout du champ in<nom de zone > utilisé lorsque la stratégie d'audit zonename est définie. |
|
Ajout de PRIV_PROC_ZONE qui permet à un processus de suivre ou d'envoyer des signaux à des processus d'autres zones. Voir zones(5). |
|
Ajout d'appels ioctl() de zone. |
|
Ajout d'un paramètre de zone. |
|
Ajout de crgetzoneid(), qui renvoie l'ID de zone à partir des informations d'identification de l'utilisateur signalées par cr. |