Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Kapitel 27 Einführung in die Verwaltung der Solaris Zones

In diesem Kapitel werden Themen zur allgemeinen Zonenadministration behandelt:

Informationen zu den lx Branded Zones finden Sie in Teil III, lx Branded Zones.

Neuerungen in diesem Kapitel

Solaris 10 1/06: Ein neuer Abschnitt Aushängen von Dateisystemen in Zonen wurde hinzugefügt.

Solaris 10 1/06: Neue Abschnitte zum Zonen-Backup und zur Wiederherstellung von Zonen wurden hinzugefügt. Lesen Sie dazu Allgemeine Informationen zum Sichern eines Solaris-Systems mit installierten Zonen.

Solaris 10 6/06: Der Tabelle in Einhängen von Dateisystemen in Zonen wurde ein Eintrag für ZFS hinzugefügt.

Solaris 10 8/07: Die folgenden Informationen sind neu oder wurden in diesem Release aktualisiert.

Eine vollständige Liste der neuen Funktionen in Solaris 10 sowie eine Beschreibung der Solaris-Releases finden Sie in Neuerungen in Oracle Solaris 9 10/10.

Sichtbarkeit und Zugriff in einer globalen Zone

Die globale Zone dient sowohl als Standardzone für das System als auch als eine Zone für die systemweite administrative Steuerung. Bei dieser Doppelrolle sind einige administrative Aspekte zu berücksichtigen. Da Anwendungen in der globalen Zone Zugriff auf Prozesse und andere Systemobjekte in anderen Zonen haben, können die Auswirkungen von administrativen Maßnahmen weitreichender als erwartet sein. Beispielsweise verwenden Skripten zum Herunterfahren von Services häufig den Befehl pkill, um bestimmten Prozessen das Beenden zu signalisieren. Wenn ein solches Skript in der globalen Zone ausgeführt wird, werden alle Prozesse im System angesprochen, unabhängig von der Zone, in der sie ausgeführt werden.

Dieser systemweite Geltungsbereich ist häufig erforderlich. Um beispielsweise die systemweite Ressourcennutzung zu überwachen, müssen Sie die Prozessstatistiken des gesamten Systems anzeigen. Würden nur die Aktivitäten in der globalen Zone angezeigt, fehlen wichtige Informationen aus anderen Zonen des Systems, die eventuell einen Teil oder sogar die gesamten Systemressourcen nutzen. Eine solche Ansicht ist insbesondere dann wichtig, wenn Systemressourcen wie CPUs nicht strikt mit den Funktionen der Ressourcenverwaltung partitioniert wurden.

Folglich können Prozesse in der globalen Zone Prozesse und andere Objekte in nicht-globalen Zonen überwachen. Dies gestattet diesen Prozessen, systemweit zu überwachen. Die Fähigkeit zur Kontrolle oder zum Senden von Signalen an Prozesse in anderen Zonen wird durch die Berechtigung PRIV_PROC_ZONE eingeschränkt. Diese Berechtigung ähnelt PRIV_PROC_OWNER, da es Prozessen gestattet, die Einschränkungen für nichtberechtigte Prozesse außer Kraft zu setzen. In diesem Fall besteht die Einschränkung darin, dass nichtberechtigte Prozesse in der globalen Zone keine Signale an Prozesse in anderen Zonen senden bzw. diese kontrollieren können. Dies trifft auch dann zu, wenn die Benutzer-IDs der Prozesse übereinstimmen oder der ausführende Prozess über die Berechtigung PRIV_PROC_OWNER verfügt. Die Berechtigung PRIV_PROC_ZONE kann von anderweitig berechtigten Prozessen entfernt werden, um die Maßnahmen für eine globale Zone einzuschränken.

Weitere Informationen zum Matching von Prozessen mithilfe einer zoneidlist finden Sie in den Manpages pgrep(1) und pkill(1).

Sichtbarkeit von Prozess-IDs in Zonen

Nur Prozesse in der gleichen Zone, die Prozess-IDs akzeptieren (wie die Befehle kill und priocntl) sind über Systemaufruf-Schnittstellen sichtbar. Weitere Informationen finden Sie in den Manpages kill(1) und priocntl(1).

System-Überwachbarkeit in Zonen

Der Befehl ps kann wie folgt erweitert werden:

Weitere Informationen finden Sie in der Man Page ps(1).

Für die im Folgenden aufgeführten Solaris-Dienstprogramme wurde die Option -z Zonennamen hinzugefügt. Mit dieser Option können Sie Informationen so filtern, dass nur die angegebene Zone bzw. die angegebenen Zonen enthalten sind.

Eine vollständige Liste der Änderungen an diesen Befehlen finden Sie in Tabelle 27–5.

Knotennamen in nicht-globalen Zonen

Der Knotenname in /etc/nodename, der von dem Befehl uname - n zurückgegeben wird, kann vom Zonenadministrator gesetzt werden. Der Knotenname muss eindeutig sein.

Dateisysteme und nicht-globale Zonen

In diesem Abschnitt finden Sie Informationen zu möglichen Problemen mit Dateisystemen auf einem Solaris-System mit installierten Zonen. Jede Zone verfügt über einen eigenen Bereich in der Dateisystemhierarchie, die in einem Verzeichnis beginnt, das als root der Zone bezeichnet wird. Prozesse in der Zone können nur auf Dateien in dem Teil der Hierarchie zugreifen, der sich unter dem Zonenroot befindet. Das Dienstprogramm chroot kann in einer Zone verwendet werden, es dient aber nur dazu, den Prozess auf den Root-Pfad innerhalb der Zone zu beschränken. Weitere Informationen zu chroot finden Sie in der Manpage chroot(1M).

Die Option -o nosuid

Die Option -o nosuid für das Dienstprogramm mount bietet folgende Funktionen:

Diese dateisystemspezifische Option ist für alle Solaris-Dateisysteme verfügbar, die mit mount-Dienstprogrammen eingehängt werden können. Diese Dienstprogramme sein in der Manpage mount(1M) beschrieben. In diesem Handbuch sind diese Dateisysteme unter Einhängen von Dateisystemen in Zonen aufgelistet. Dort werden auch die Leistungsmerkmale beim Einhängen beschrieben. Weitere Informationen zur Option -o nosuid finden Sie unter „Accessing Network File Systems (Reference)“ im System Administration Guide: Network Services .

Einhängen von Dateisystemen in Zonen

Wenn Dateisysteme in einer Zone eingehängt werden, wird die Option nodevices angewendet. Angenommen, eine Zone erhält Zugriff auf ein Block-Gerät (/dev/dsk/c0t0d0s7) und ein Raw-Gerät (/dev/rdsk/c0t0d0s7) entsprechend einem UFS-Dateisystem, so wird das Dateisystem automatisch als nodevices eingehängt, wenn das Einhängen innerhalb einer Zone erfolgt. Diese Regelung gilt nicht für Mounts, die über eine zonecfg-Konfiguration angegeben wurden.

Optionen zum Einhängen von Dateisystemen in nicht-globalen Zonen sind in der folgenden Tabelle beschrieben. Verfahren für diese verschiedenen Einhängevarianten finden Sie unter Konfigurieren, Prüfen und Übernehmen einer Zone und unter Einhängen von Dateisystemen in laufenden nicht-globalen Zonen.

Ein nicht in der Liste aufgeführter Dateisystemtyp kann in der Konfiguration angegeben werden, sofern er über eine Mount-Binärdatei unter /usr/lib/fstype/mount verfügt.

Dateisystem 

Optionen zum Einhängen in einer nicht-globalen Zone 

AutoFS 

Kann nicht mit zonecfg eingehängt werden; kann nicht manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden. Kann innerhalb der Zone eingehängt werden.

CacheFS 

Kann nicht in einer nicht-globalen Zone verwendet werden. 

FDFS 

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

HSFS 

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

LOFS 

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

MNTFS 

Kann nicht mit zonecfg eingehängt werden; kann nicht manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden. Kann innerhalb der Zone eingehängt werden.

NFS 

Kann nicht mit zonecfg eingehängt werden. V2, V3 und V4, die derzeit in Zonen unterstützten Versionen, können innerhalb der Zone eingehängt werden.

PCFS  

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

PROCFS 

Kann nicht mit zonecfg eingehängt werden; kann nicht manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden. Kann innerhalb der Zone eingehängt werden.

TMPFS 

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

UDFS 

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

UFS 

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

XMEMFS 

Kann mit zonecfg eingehängt werden; kann manuell von der globalen Zone aus in einer nicht-globalen Zone eingehängt werden; kann innerhalb der Zone eingehängt werden.

Die Unterstützung für dieses Dateisystem wird in einer zukünftigen Version des Solaris-Systems entfernt. 

ZFS 

Kann mit den Ressourcentypen zonecfg dataset und fs eingehängt werden.

Weitere Informationen finden Sie unter So konfigurieren Sie die Zone, Einhängen von Dateisystemen in laufenden nicht-globalen Zonen und in der Manpage mount(1M).

Aushängen von Dateisystemen in Zonen

Die Fähigkeit zum Aushängen eines Dateisystems hängt davon ab, wer das Dateisystem ursprünglich eingehängt hat. Wenn ein Dateisystem als Teil der Zonenkonfiguration mit dem Befehl zonecfg angegeben wurde, tritt die globale Zone als Eigentümer dieses Mounts auf und der Zonenadministrator der nicht-globalen Zone kann das Dateisystem nicht aushängen. Wenn das Dateisystem innerhalb der nicht-globalen Zone eingehängt wurde, beispielsweise durch Angabe des Mounts in der Datei /etc/vfstab der Zone, kann das Dateisystem vom Zonenadministrator der nicht-globalen Zone ausgehängt werden.

Sicherheitseinschränkungen und Dateisystemverhalten

Für das Einhängen bestimmter Dateisysteme innerhalb einer Zone gelten Sicherheitseinschränkungen. Einige Dateisysteme zeigen ein besonderes Verhalten, wenn sie in einer Zone eingehängt werden. Die Liste der modifizierten Dateisysteme folgt.

AutoFS

Autofs ist ein clientseitiger Service, der das entsprechende Dateisystem automatisch einhängt. Wenn ein Client versucht, auf ein aktuell nicht eingehängtes Dateisystem zuzugreifen, fängt das AutoFS-Dateisystem die Anforderung ab und ruft automountd auf, um das angeforderte Verzeichnis einzuhängen. AutoFS-Mounts, die innerhalb einer Zone hergestellt wurden, gelten nur lokal für diese Zone. Auf diese Mounts kann nicht von anderen Zonen zugegriffen werden; dies gilt auch für die globalen Zone. Die Mounts werden entfernt, wenn die Zone angehalten oder neu gestartet wird. Weitere Informationen zu AutoFS finden Sie unter How Autofs Works in System Administration Guide: Network Services.

Jede Zone führt ihre eigene Kopie von automountd aus. Die automatischen Zuordnungen und Zeitüberschreitungen werden vom Zonenadministrator gesteuert. Sie können das Einhängen in einer anderen Zone nicht auslösen, indem Sie einen AutoFS-Einhängepunkt für eine nicht-globale Zone von der globalen Zone kreuzen.

Bestimmte AutoFS-Mounts werden im Kernel erstellt, wenn ein anderer Mount ausgelöst wird. Solche Mounts können nicht mit der normalen umount-Schnittstelle entfernt werden, da sie als Gruppe eingehängt oder ausgehängt werden müssen. Dieses Leistungsmerkmal dient zum Herunterfahren einer Zone.

MNTFS

MNTFS ist ein virtuelles Dateisystem, das dem lokalen System schreibgeschützten Zugriff auf die Tabelle der eingehängten Dateisysteme bereitstellt. Mithilfe von mnttab umfassen die in einer nicht-globalen Zone angezeigten Dateisysteme die in dieser Zone eingehängten Dateisysteme plus eines Eintrags für den Root (/). Bei Einhängepunkten mit einem speziellen Gerät, auf das innerhalb der Zone nicht zugegriffen werden kann (wie /dev/rdsk/c0t0d0s0), ist das spezielle Gerät entsprechend dem Einhängepunkt eingestellt. Alle Mounts im System sind in der Tabelle /etc/mnttab der globalen Zone ersichtlich. Weitere Informationen zu MNTFS finden Sie in Kapitel 18, Mounting and Unmounting File Systems (Tasks) in System Administration Guide: Devices and File Systems.

NFS

Innerhalb einer Zone eingerichtete NFS-Mounts gelten nur lokal für diese Zone. Auf diese Mounts kann nicht von anderen Zonen zugegriffen werden; dies gilt auch für die globalen Zone. Die Mounts werden entfernt, wenn die Zone angehalten oder neu gestartet wird.

Wie in der Manpage mount_nfs(1M) dokumentiert, darf ein NFS-Server nicht versuchen, seine eigenen Dateisysteme einzuhängen. Daher darf eine Zone ein von der globalen Zone exportiertes Dateisystem nicht in einem NFS einhängen. Zonen können keine NFS-Server sein. Innerhalb einer Zone verhalten sich NFS-Mounts so, als ob sie mit der Option nodevices eingehängt wurden.

Die Ausgabe des Befehls nfsstat bezieht sich nur auf die Zone, in der der Befehl ausgeführt wird. Wird der Befehl z. B. in der globalen Zone ausgeführt, so werden nur Informationen zur globalen Zone ausgegeben. Weitere Informationen zum Befehl nfsstat finden Sie in der Manpage nfsstat(1M).

Der Befehl zlogin schlägt fehl, wenn sich eine der offenen Dateien oder ein Teil des Adressraums auf einem NFS befinden. Weitere Informationen finden Sie unter zlogin-Befehl.

PROCFS

Das Dateisystem /proc (oder PROCFS) bietet Prozess-Sichtbarkeit sowie Zugriffseinschränkungen und Informationen über die Zonenzuordnung von Prozessen. Über /proc sind nur Prozesse in der gleichen Zone sichtbar.

Prozesse in der globalen Zone können Prozesse und andere Objekte in nicht-globalen Zonen überwachen. Dies gestattet diesen Prozessen, systemweit zu überwachen.

Innerhalb einer Zone verhalten sich procfs-Mounts so, als ob sie mit der Option nodevices eingehängt wurden. Weitere Informationen zu procfs finden Sie in der Manpage proc(4).

LOFS

Der Bereich dessen, was über LOFS eingehängt werden kann, ist auf den Teil des Dateisystems beschränkt, der für die Zone sichtbar ist. Aus diesem Grund gibt es keine Einschränkungen für LOFS-Mounts in einer Zone.

UFS, UDFS, PCFS und andere speicherbasierte Dateisysteme

Wenn Sie den Befehl zonecfg zum Konfigurieren von speicherbasierten Dateisystemen verwenden, die über eine fsck-Binärdatei verfügen (z. B. UFS) muss der Zonenadministrator einen raw-Parameter angeben. Dieser Parameter kennzeichnet ein Raw-Gerät (zeichenorientiert), z. B. /dev/rdsk/c0t0d0s7. zoneadmd führt automatisch den Befehl fsck im nicht-interaktiven Prüfmodus an diesem Gerät aus (fsck -m), bevor es das Dateisystem einhängt. Wenn der Befehl fsck fehlschlägt, kann zoneadmd die Zone nicht in den Status „ready“ versetzen. Der von raw angegebene Pfad darf kein relativer Pfad sein.

Die Angabe eines Geräts für fsck für ein Dateisystem, das keine Binärdatei fsck unter /usr/lib/fstype/fsck enthält, führt zu einem Fehler. Auch wenn Sie kein Gerät für fsck angeben, wenn eine Binärdatei fsck für das Dateisystem vorhanden ist, tritt ein Fehler auf.

Weitere Informationen finden Sie unter Der Daemon zoneadmd und in der Manpage fsck(1M)

ZFS

Sie können ein ZFS-Dataset mit dem Befehl zonecfg und der Ressource add dataset zu einer nicht-globalen Zone hinzufügen. Das Dataset ist in der nicht-globalen Zone sichtbar und eingehängt, und in der globalen Zone nicht mehr sichtbar. Der Zonenadministrator kann Dateisysteme innerhalb dieses Datasets erstellen und löschen, Klone erstellen und löschen und die Eigenschaften des Datasets bearbeiten.

Das Attribut zoned von zfs kennzeichnet, ob ein Dataset zu einer nicht-globalen Zone hinzugefügt wurde.


# zfs get zoned tank/sales
NAME          PROPERTY    VALUE      SOURCE
tank/sales    zoned       on         local

Wenn Sie ein Dataset von der globalen Zone aus gemeinsam nutzen möchten, können Sie mit dem Befehl zonecfg und den Optionen add fs ein LOFS-mounted ZFS-Dateisystem hinzufügen. Der globale Administrator ist für das Einstellen und Steuern der Dataset-Eigenschaften verantwortlich.

Weitere Informationen zum ZFS finden Sie in Kapitel 10, Fortgeschrittene Oracle Solaris ZFS-Themen in Oracle Solaris ZFS-Administrationshandbuch.

Nicht-globale Zonen als NFS-Clients

Zonen können NFS-Clients sein. Protokolle aus Version 2, Version 3 und Version 4 werden unterstützt. Weitere Informationen zu diesen NFS-Versionen finden Sie unter Features of the NFS Service in System Administration Guide: Network Services .

Die Standardversion ist NFS Version 4. Mithilfe einer der folgenden Methoden können Sie andere NFS-Versionen auf einem Client aktivieren:

Verwendung von mknod in einer Zone nicht gestattet

Beachten Sie, dass Sie den in der Manpage mknod(1M) beschriebenen Befehl mknod nicht zum Erstellen einer speziellen Datei in einer nicht-globalen Zone verwenden können.

Durchlaufen von Dateisystemen

Der Dateisystem-Namespace einer Zone ist ein Teil des Namespace, der von der globalen Zone aus zugänglich ist. Das Durchlaufen der Dateisystemhierarchie einer nicht-globalen Zone durch nicht berechtigte Prozesse in der globalen Zone wird mit den folgenden Mitteln verhindert:

Beachten Sie, dass der Versuch eines Zugriffs auf AutoFS-Knoten, die für eine andere Zone eingehängt sind, fehlschlägt. Der globale Administrator darf keine automatischen Maps haben, die in andere Zonen hineinreichen.

Einschränken des Zugriffs von der globalen Zone auf eine nicht-globale Zone

Nachdem eine nicht-globale Zone installiert wurde, darf der Zugriff auf diese Zone niemals direkt von der globalen Zone aus erfolgen, es sei denn, mit den Befehlen eines Dienstprogramms zum System-Backup. Darüber hinaus wird eine nicht-globale Zone nicht mehr als sicher betrachtet, nachdem sie einer unbekannten Umgebung offen gelegt wurde. Ein Beispiel wäre eine Zone, die in einem öffentlich zugänglichen Netzwerk platziert wurde, in dem die Sicherheit der Zone gefährdet und eine Änderung der Dateisysteme möglich wäre. Nach einer möglichen Sicherheitsgefährdung muss der globale Administrator die Zone als nicht vertrauenswürdig behandeln.

Ein Befehl, der einen alternativen Root akzeptiert, indem die Optionen -R oder -b (oder die Entsprechungen) verwendet werden, darf nicht verwendet werden, wenn Folgendes zutrifft:

Ein Beispiel ist die Option -R Rootpfad für das Dienstprogramm pkgadd, das von der globalen Zone aus mit einem Root-Pfad zu einer nicht-globalen Zone ausgeführt wird.

Zu den Befehlen, Programmen und Dienstprogrammen, die die Option -R mit einem alternativen Root-Pfad verwenden, gehören:

Die Befehle und Programme, die -b mit einem alternativen Root-Pfad verwenden, sind:

Netzwerkverbindungen in nicht-globalen Shared IP-Zonen

Auf einem Solaris-System mit installierten Zonen können die Zonen über das Netzwerk miteinander kommunizieren. Alle Zonen haben separate Bindungen, oder Verbindungen, und alle Zonen können ihre eigenen Server-Daemons ausführen. Diese Daemons können die gleichen Ports überwachen, ohne dass ein Konflikt auftritt. Der IP-Stack löst Konflikte, indem die IP-Adressen für ankommende Verbindungen berücksichtigt werden. Die IP-Adressen identifizieren die Zone.

Partitionierung von Shared IP-Zonen

Der IP-Stack eines Systems, das Zonen unterstützt, setzt die Trennung des Netzwerkverkehrs zwischen den Zonen um. Anwendungen, die IP-Verkehr empfangen, empfangen nur Daten, die in der gleichen Zone gesendet wurden.

Jede logische Schnittstelle des Systems gehört zu einer bestimmten Zone; standardmäßig zur globalen Zone. Mithilfe des Dienstprogramms zonecfg werden den Zonen logische Netzwerkschnittstellen zugeordnet, mit denen sie über das Netzwerk kommunizieren können. Jeder Stream und jede Verbindung gehört zur Zone des Prozesses, der diesen Stream bzw. die Verbindung geöffnet hat.

Bindungen zwischen Streams höherer Schichten und logischen Schnittstellen sind eingeschränkt. Ein Stream kann nur Bindungen mit logischen Schnittstellen in der gleichen Zone herstellen. Entsprechend können Pakete von einer logischen Schnittstelle nur an Streams einer höheren Schicht in der gleichen Zone wie die logische Schnittstelle übergeben werden.

Jede Zone verfügt über ein eigenes Bindungsset. Jede Zone kann die gleiche Anwendung ausführen, die den gleichen Port überwacht, ohne dass Bindungen fehlschlagen, weil die Adresse bereits verwendet wird. Jede Zone kann ihre eigene Version der folgenden Services ausführen:

Für Zonen, bei denen es sich nicht um die globalen Zone handelt, ist der Zugriff auf das Netzwerk eingeschränkt. Die standardmäßigen TCP- und UDP-Socket-Schnittstellen sind verfügbar, aber die SOCK_RAW-Socket-Schnittstellen sind auf das Internet Control Message Protocol (ICMP) beschränkt. ICMP ist für das Erfassen und Melden von Netzwerkfehlerzuständen oder das Verwenden des Befehls ping erforderlich.

Shared IP-Netzwerkschnittstellen

Jede mit einem Netzwerk verbundene nicht-globale Zone benötigt mindestens eine dedizierte IP-Adresse. Diese Adressen werden über logische Netzwerkschnittstellen zugeordnet, die mithilfe des Befehls ifconfig in einer Zone platziert werden. Mit dem Befehl zonecfg konfigurierte Zonen-Netzwerkschnittstellen werden beim Booten einer Zone automatisch eingerichtet und platziert. Mit dem Befehl ifconfig können logische Schnittstellen einer laufenden Zone hinzugefügt bzw. daraus entfernt werden. Nur der globale Administrator kann die Schnittstellenkonfiguration und Netzwerkrouten ändern.

Innerhalb einer nicht-globalen Zone sind nur die Schnittstellen der Zone für ifconfig sichtbar.

Weitere Informationen finden Sie in den Manpages ifconfig(1M) und if_tcp(7P).

IP-Verkehr zwischen Shared IP-Zonen auf dem gleichen Computer

Die Paketzustellung zwischen zwei Zonen auf dem gleichen Computer ist nur dann zulässig, wenn eine „Matching Route“ (Zuordnungsroute) für das Ziel und die Zone in der Weiterleitungstabelle vorhanden ist.

Die Matching-Informationen werden wie folgt umgesetzt:

Solaris IP-Filter in Shared IP-Zonen

Solaris IP-Filter bieten statusbehaftete Paketfilterung und Network Address Translation (NAT). Ein statusbehafteter Paketfilter kann den Status aktiver Verbindungen überwachen und anhand der gesammelten Informationen festlegen, welche Netzwerkpakete eine Firewall passieren dürfen. Darüber hinaus bietet Solaris IP Filter eine statusfreie Paketfilterung sowie die Möglichkeit, Adresspools zu erstellen und zu verwalten. Weitere Informationen finden Sie in Kapitel 25, Oracle Solaris IP Filter (Übersicht) in Systemverwaltungshandbuch: IP Services.

Solaris IP-Filter können in nicht-globalen Zonen aktiviert werden, indem die Loopback-Filterung gemäß der Beschreibung in Kapitel 26, Oracle Solaris IP Filter (Aufgaben) in Systemverwaltungshandbuch: IP Services aktiviert wird.

Solaris IP Filter ist von der Open Source IP Filter-Software abgeleitet.

IP-Netzwerk-Multipathing in Shared IP-Zonen

IP-Netzwerk-Multipathing (IPMP) bietet eine Erkennung von Ausfällen physikalischer Schnittstellen und transparentes Failover des Netzwerkzugriffs bei einem System mit mehreren Schnittstellen in der gleichen IP-Verbindung. Darüber hinaus bietet IPMP Lastverteilung von Paketen für Systeme mit mehreren Schnittstellen.

Die gesamte Netzwerkkonfiguration erfolgt in der globalen Zone. Sie können IPMP in der globalen Zone konfigurieren und die Leistungsmerkmale dann auf nicht-globale Zonen erweitern. Die Leistungsmerkmale werden erweitert, indem Sie die Zonenadresse beim Konfigurieren der Zone in eine IPMP-Gruppe aufnehmen. Sollte dann eine der Schnittstellen in der globalen Zone ausfallen, migrieren die Adressen der nicht-globalen Zone auf eine andere Netzwerk-Schnittstellenkarte. Eine Shared-IP-Zone kann über mehrere IP-Adressen verfügen, zu mehreren IPMP-Gruppen gehören und eine IPMP-Gruppe kann von mehreren Shared-IP-Zonen verwendet werden.

In einer bestimmten nicht-globalen Zone sind nur die der Zone zugeordneten Schnittstellen über den Befehl ifconfig sichtbar.

Lesen Sie dazu So erweitern Sie die Funktionen des IP Network Multipathing auf nicht-globale Shared IP-Zonen. Das Verfahren zur Zonenkonfiguration ist unter So konfigurieren Sie die Zone beschrieben. Weitere Informationen zu den Leistungsmerkmalen und Komponenten sowie zur Nutzung von IPMP finden Sie in Kapitel 30, Einführung in IPMP (Übersicht) in Systemverwaltungshandbuch: IP Services.

Solaris 10 8/07: Netzwerkverbindungen in nicht-globalen Exclusive IP-Zonen

Eine Exclusive IP-Zone verfügt über eigene IP-orientierte Zustände und einstellbare Variablen. Der Zone wird beim Konfigurieren der Zone ist ein eigener Satz Datenverbindungen zugeordnet.

Informationen zu den Leistungsmerkmalen, die in einer nicht-globalen Exclusive IP-Zone verwendet werden können, finden Sie unter Solaris 10 8/07: Nicht-globale Exclusive IP-Zonen. Informationen zu den einstellbaren IP ndd-Variablen finden Sie im Oracle Solaris Tunable Parameters Reference Manual .

Partitionierung von Exclusive IP-Zonen

Exclusive IP-Zonen haben separate TCP/IP-Stacks, daher reicht die Separation hinab bis zur Verbindungsschicht. Einem oder mehreren Verbindungsnamen, bei denen es sich um eine NIC oder ein VLAN auf einer NIC handeln kann, wird vom globalen Administrator eine Exclusive IP-Zone zugeordnet. Der Zonenadministrator kann das IP für diese Verbindungen mit der gleichen Flexibilität und den gleichen Optionen wie in der globalen Zone konfigurieren.

Exclusive IP-Verbindungsschnittstellen

Ein Verbindungsname muss exklusiv einer einzelnen Zone zugeordnet sein.

Mit dem Befehl dladm show-link können Sie die Verbindungen anzeigen, die laufenden Zonen zugeordnet sind.

Weitere Informationen finden Sie in der Manpage dladm(1M)

IP-Verkehr zwischen Exclusive IP-Zonen auf dem gleichen Computer

Es gibt kein internes Loopback von IP-Paketen zwischen Exclusive IP-Zonen. Alle Pakete werden zur Verbindungsschicht gesendet. In der Regel bedeutet dies, dass die Pakete an eine Netzwerkschnittstelle gesendet werden. Dann können Geräte wie Ethernet-Switches oder IP-Router die Pakete an das Ziel weiterleiten, bei dem es sich um eine andere Zone auf dem gleichen Computer handeln kann.

Solaris IP-Filter in Exclusive IP-Zonen

In einer Exclusive IP-Zone haben Sie die gleichen IP-Filter-Leistungsmerkmale wie in der globalen Zone. Die IP-Filter in Exclusive IP-Zonen werden auf die gleiche Weise wie in der globalen Zone konfiguriert.

IP Network Multipathing in Exclusive IP-Zonen

IP-Netzwerk-Multipathing (IPMP) bietet eine Erkennung von Ausfällen physikalischer Schnittstellen und transparentes Failover des Netzwerkzugriffs bei einem System mit mehreren Schnittstellen in der gleichen IP-Verbindung. Außer der Fehlertoleranz bietet IPMP Lastverteilung von Paketen für Systeme mit mehreren Schnittstellen.

Die Konfiguration der Datenverbindung erfolgt in der globalen Zone. Zunächst werden einer Zone mit zonecfg mehrere Verbindungsschnittstellen zugewiesen. Die Multi-Verbindungsschnittstellen müssen an das gleiche IP-Teilnetz angehängt werden. IPMP kann dann vom Zonenadministrator innerhalb der Exclusive IP-Zone konfiguriert werden. Mehrere IPMP-Gruppen können einer gegebenen Exclusive-IP-Zone zugewiesen werden, diese IPMP-Gruppen können jedoch nicht gemeinsam mit anderen Zonen genutzt werden.

Gerätenutzung in nicht-globalen Zonen

Innerhalb einer Zone sind die zur Verfügung stehenden Geräte eingeschränkt. Aus diese Weise wird verhindert, dass ein Prozess in einer Zone Prozesse in anderen Zonen beeinflusst. Beispielsweise kann ein Prozess in einer Zone den Kernel-Speicher oder den Inhalt in der Root-Platte nicht ändern. Aus diesem Grund werden standardmäßig nur bestimmte Pseudo-Geräte als sicher für die Verwendung in einer Zone betrachtet. Zusätzliche Geräte können mit dem Dienstprogramm zonecfg in bestimmten Zonen verfügbar gemacht werden.

/dev und der /devices-Namespace

Das in der Manpage devfs beschriebene Dateisystem devfs(7FS) wird vom Solaris-System zur Verwaltung von /devices verwendet. Jedes Element in diesem Namespace stellt den absoluten Pfad zu einem Hardware-, Pseudo- oder Nexus-Gerät dar. Der Namespace ist eine Reflektion der Gerätestruktur. Somit wird das Dateisystem mit der Hierarchie der Verzeichnisse und gerätespezifischen Dateien bestückt.

Die /dev-Dateihierarchie , die heute Teil des Dateisystems / (Root) ist, besteht aus symbolischen Verbindungen (oder logischen Pfaden) zu den absoluten Pfaden in /devices. Anwendungen verweisen auf den logischen Pfad zu einem Gerät in /dev. Das Dateisystem /dev ist als Loopback-Mount schreibgeschützt in der Zone eingehängt.

Die Dateihierarchie /dev wird von einem System verwaltet, dass die in der folgenden Liste enthaltenen Komponenten umfasst:


Achtung – Achtung –

Untersysteme, die auf /devices-Pfadnamen beruhen, können erst dann in nicht-globalen Zonen ausgeführt werden, wenn die /dev-Pfadnamen eingerichtet wurden.


Geräte mit exklusiver Nutzung

Eventuell haben Sie Geräte, die Sie bestimmten Zonen zuordnen möchten. Wenn Sie nicht berechtigten Benutzern den Zugriff auf Block-Geräte gestatten, könnten diese Geräte dazu verwendet werden, Alarmzustände im System, Resets von Bussen und andere unerwünschte Nebenwirkungen zu verursachen. Bevor Sie solche Zuweisungen vornehmen, sollten Sie Folgendes berücksichtigen:

Verwaltung der Gerätetreiber

In einer nicht-globalen Zone können Sie mit dem in der Manpage modinfo(1M) beschriebenen Befehl modinfo die Liste der geladenen Kernel-Module anzeigen.

Die meisten Vorgänge zur Kernel-, Geräte- und Plattformverwaltung werden nicht innerhalb einer nicht-globalen Zone ausgeführt, da das Modifizieren von Plattform-Hardwarekonfigurationen das Sicherheitsmodell der Zone verletzt. Diese Vorgänge umfassen z. B.:

Dienstprogramme, die in nicht-globalen Zonen nicht ausgeführt werden können oder modifiziert sind

Dienstprogramme, die in nicht-globalen Zone nicht ausgeführt werden können

Die folgenden Dienstprogramme können in einer Zone nicht ausgeführt werden, da sie von Geräten abhängig sind, die normalerweise nicht verfügbar sind:

SPARC: Dienstprogramm für die Verwendung in einer nicht-globalen Zone modifiziert

Mit dem Dienstprogramm eeprom können Einstellungen in einer Zone angezeigt werden. Das Dienstprogramm kann nicht zum Ändern von Einstellungen verwendet werden. Weitere Informationen finden Sie in den Manpages eeprom(1M) und openprom(7D).

Ausführen von Anwendungen nicht-globalen Zonen

Im Allgemeinen können alle Anwendungen in einer nicht-globalen Zone ausgeführt werden. Die folgenden Anwendungstypen sind jedoch eventuell nicht für diese Umgebung geeignet:

Resource Controls in nicht-globalen Zonen

Weitere Informationen zur Verwendung der Leistungsmerkmale der Ressourcenverwaltung finden Sie im entsprechenden Kapitel in Teil 1 dieses Handbuchs.

Alle Resource Controls und Attribute, die in den Kapiteln zur Ressourcenverwaltung beschrieben werden, können in der Datei /etc/project der globalen und nicht-globalen Zone, der NIS-Map oder dem LDAP-Verzeichnisservice eingestellt werden. Die Einstellungen für eine bestimmte Zone wirken sich nur auf diese Zone aus. Ein Projekt, das in verschiedenen Zonen autonom ausgeführt wird, verfügt in jeder Zone über individuell eingestellte Resource Controls. Beispielsweise kann für Projekt A in der globalen Zone project.cpu-shares=10 eingestellt sein, während Projekt A in einer nicht-globalen Zone über die Einstellung project.cpu-shares=5 verfügt. Sie können mehrere Instanzen von rcapd auf dem System ausführen, dabei arbeitet jede Instanz nur in ihrer Zone.

Die Resource Controls und Attribute, die in einer Zone zum Steuern von Projekten, Aufgaben und Prozessen innerhalb dieser Zone verwendet werden, unterliegen zusätzlichen Anforderungen hinsichtlich Pools und zonenweiten Resource Controls.

Für nicht-globale Zonen gilt die Regel „eine Zone, einen Pool“. Die Ressourcen eines Pools können von mehreren nicht-globalen Zonen gemeinsam genutzt werden. Prozesse in der globalen Zone können jedoch durch einen ausreichend privilegierten Prozess an einen bestimmten Pool gebunden werden. Der Resource-Controller poold kann nur in der globalen Zone ausgeführt werden, in der es mehrere Pools gibt, in denen er arbeiten kann. Das in einer nicht-globalen Zone ausgeführte Dienstprogramm poolstat zeigt nur Informationen zu dem Pool an, der mit der Zone verbunden ist. Wenn der Befehl pooladm ohne Argumente in einer nicht-globalen Zone ausgeführt wird, werden nur Informationen zu dem Pool angezeigt, der mit der Zone verbunden ist.

Zonenweite Resource Controls wirken sich nicht aus, wenn sie in der Datei project gesetzt wurden. Eine zonenweite Resource Control wird über das Dienstprogramm zonecfg gesetzt.

Fair Share Scheduler auf einem Solaris-System mit installierten Zonen

Diesem Abschnitt wird beschrieben, wie Sie den Fair Share Scheduler (FSS) mit Zonen verwenden.

Aufteilung der FSS-Shares in einer nicht-globalen Zone

FSS CPU-Shares für eine Zone sind hierarchisch. Die Shares für die globale Zone und nicht-globalen Zonen werden vom globalen Administrator über die zonenweite Resource Control zone.cpu-shares eingestellt. Die Resource Control project.cpu-shares kann dann für jedes Projekt innerhalb der Zone definiert werden, um die über die zonenweite Resource Control eingerichteten Shares weiter aufzuteilen.

Wie Sie Zonen-Shares mit dem Befehl zonecfg zuweisen, können Sie unter So stellen Sie zone.cpu-shares in der globalen Zone ein nachlesen . Weitere Informationen zu project.cpu-shares finden Sie unter Verfügbare Resource Controls. Beispiele für Verfahren, bei denen Shares auf temporärer Basis zugeteilt werden, finden Sie unter Verwenden des Fair Share Scheduler auf einem Solaris-System mit installierten Zonen.

Share-Verteilung zwischen Zonen

Mit der Resource Control zone.cpu-shares können Sie FSS-Shares für die globale Zone und nicht-globale Zonen zuweisen. Wenn der FSS der Standard-Scheduler auf dem System ist und keine Shares zugewiesen wurden, erhält jede Zone (einschließlich der globalen Zone) standardmäßig einen Share. Wenn sich eine nicht-globale Zone auf dem System befindet und Sie dieser Zone mit zone.cpu-shares zwei Shares zuordnen, definiert dies den Anteil an der CPU, den die nicht-globale Zone in Relation zur globalen Zone erhält. Das CPU-Verhältnis zwischen den zwei Zonen beträgt 2:1.

Extended Accounting auf einem Solaris-System mit installierten Zonen

Wenn das Extended Accounting in der globalen Zone ausgeführt wird, sammelt es Daten und erstellt Berichte für das gesamte System (einschließlich der nicht-globalen Zonen). Der globale Administrator kann darüber hinaus den Ressourcenverbrauch pro Zone festlegen.

Das Subsystem Extended Accounting gestattet für prozess- und aufgabenbasiertes Accounting unterschiedliche Einstellungen und Dateien für jede Zone. Die exacct-Datensätzen können mit dem Zonennamen EXD PROC ZONENAME für Prozesse und dem Zonennamen EXD TASK ZONENAME für Aufgaben gekennzeichnet werden. Accounting-Datensätze werden in die Accounting-Dateien der globalen Zone und in die Accounting-Dateien der jeweiligen Zone geschrieben. Die Datensätze EXD TASK HOSTNAME, EXD PROC HOSTNAME und EXD HOSTNAME enthalten anstelle des Knotennamens der globalen Zone den Wert uname -n für die Zone, in der der Prozess bzw. die Aufgabe ausgeführt wird.

Weitere Informationen über das IPQoS Flow Accounting finden Sie in Kapitel 36, Verwenden von Flow Accounting und Erfassen von Statistiken (Aufgaben) in Systemverwaltungshandbuch: IP Services.

Berechtigungen in einer nicht-globalen Zone

Prozesse sind auf bestimmte Berechtigungen beschränkt. Die Einschränkung von Berechtigungen verhindert, dass Vorgänge in einer Zone ausgeführt werden, die sich auf andere Zonen auswirken könnten. Die Berechtigungen schränken die Möglichkeiten berechtigter Benutzer auf die jeweilige Zone ein. Zum Anzeigen einer Liste der in einer Zone verfügbaren Berechtigungen verwenden Sie das Dienstprogramm ppriv.

In der folgenden Tabelle sind alle Solaris-Berechtigungen und der Status jede Berechtigung in Bezug auf Zonen aufgeführt. Optionale Berechtigungen, die nicht zu den Standardberechtigungen gehören, können über die Eigenschaft limitpriv angegeben werden. Erforderliche Berechtigungen müssen in das resultierende Berechtigungsset aufgenommen sein. Verbotene Berechtigungen können im resultierenden Berechtigungsset nicht enthalten sein.

Die Eigenschaft limitpriv wurde mit dem Solaris-Release 10 11/06 eingeführt.

Tabelle 27–1 Status von Berechtigungen in Zonen

Berechtigung 

Status 

Anmerkung 

cpc_cpu

Optional 

Zugriff auf bestimmte cpc(3CPC)-Zähler

dtrace_proc

Optional 

fasttrap- und pid-Provider; plockstat(1M)

dtrace_user

Optional 

profile- und syscall-Provider

graphics_access

Optional 

ioctl(2) Zugriff auf agpgart_io(7I)

graphics_map

Optional 

mmap(2) Zugriff auf agpgart_io(7I)

net_rawaccess

Optional in Shared IP-Zonen. 

Standard in Exclusive IP-Zonen. 

Raw PF_INET/PF_INET6-Paketzugriff

proc_clock_highres

Optional 

Verwendung von hochauflösenden Timern 

proc_priocntl

Optional 

Scheduling-Steuerung; priocntl(1)

sys_ipc_config

Optional 

Anheben der Puffergröße der IPC-Nachrichtenwarteschlange 

sys_time

Optional 

Manipulation der Systemzeit; xntp(1M)

dtrace_kernel

Verboten 

Wird derzeit nicht unterstützt 

proc_zone

Verboten 

Wird derzeit nicht unterstützt 

sys_config

Verboten 

Wird derzeit nicht unterstützt 

sys_devices

Verboten 

Wird derzeit nicht unterstützt 

sys_linkdir

Verboten 

Wird derzeit nicht unterstützt 

sys_net_config

Verboten 

Wird derzeit nicht unterstützt 

sys_res_config

Verboten 

Wird derzeit nicht unterstützt 

sys_suser_compat

Verboten 

Wird derzeit nicht unterstützt 

proc_exec

Erforderlich, Standard 

Dient zum Starten von init(1M )

proc_fork

Erforderlich, Standard 

Dient zum Starten von init(1M )

sys_mount

Erforderlich, Standard 

Erforderlich zum Einhängen von erforderlichen Dateisystemen 

sys_ip_config

Erforderlich, Standard in Exclusive IP-Zonen 

Verboten in Shared IP-Zonen 

Erforderlich für die Boot-Zone und zum Initialisieren von IP-Netzverbindungen in einer Exclusive IP-Zone 

contract_event

Standard 

Verwendet vom Contract-Dateisystem 

contract_observer

Standard 

Contract-Überwachung ungeachtet der UID 

file_chown

Standard 

Änderungen bei der Datei-Eigentümerschaft 

file_chown_self

Standard 

Eigentümer/Gruppenänderungen für eigene Dateien 

file_dac_execute

Standard 

Ausführungszugriff ungeachtet von Modus/ACL 

file_dac_read

Standard 

Lesezugriff ungeachtet von Modus/ACL 

file_dac_search

Standard 

Suchzugriff ungeachtet von Modus/ACL 

file_dac_write

Standard 

Schreibzugriff ungeachtet von Modus/ACL 

file_link_any

Standard 

Verbindungszugriff ungeachtet des Eigentümers 

file_owner

Standard 

Anderer Zugriff ungeachtet des Eigentümers 

file_setid

Standard 

Berechtigungsänderungen für die Dateien setid, setgid, setuid

ipc_dac_read

Standard 

IPC-Lesezugriff ungeachtet des Modus 

ipc_dac_owner

Standard 

IPC-Schreibzugriff ungeachtet des Modus 

ipc_owner

Standard 

IPC-sonstiger Zugriff ungeachtet des Modus 

net_icmpaccess

Standard 

ICMP-Paketzugriff: ping(1M)

net_privaddr

Standard 

Bindung an berechtigte Ports 

proc_audit

Standard 

Erzeugung von Audit-Datensätzen 

proc_chroot

Standard 

Änderung des root-Verzeichnisses

proc_info

Standard 

Prozess-Untersuchung 

proc_lock_memory

Standard 

Sperren des Speichers; shmctl(2) und mlock(3C)

Wenn diese Berechtigung einer nicht-globalen Zone vom Systemadministrator zugeordnet wurde, muss auch die Resource Control zone.max-locked-memory gesetzt werden, um zu verhindern, dass die Zone den gesamten Speicher sperrt.

proc_owner

Standard 

Prozesskontrolle ungeachtet des Eigentümers 

proc_session

Standard 

Prozesskontrolle ungeachtet der Sitzung 

proc_setid

Standard 

Willkürliche Einstellung von Benutzer/Gruppen-IDs 

proc_taskid

Standard 

Zuweisung von Aufgaben-IDs zum Aufrufer 

sys_acct

Standard 

Accounting-Verwaltung 

sys_admin

Standard 

Einfache Systemadministrationsaufgaben 

sys_audit

Standard 

Auditing-Verwaltung 

sys_nfs

Standard 

NFS-Client-Unterstützung 

sys_resource

Standard 

Bearbeiten der Ressourcengrenzen 

In der folgenden Tabelle sind alle Trusted Solaris Extensions-Berechtigungen und der Status jede Berechtigung in Bezug auf die Zonen aufgeführt. Optionale Berechtigungen, die nicht zu den Standardberechtigungen gehören, können über die Eigenschaft limitpriv angegeben werden.


Hinweis –

Diese Berechtigungen werden nur dann ausgewertet, wenn das System mit Solaris Trusted Extensions konfiguriert ist.


Tabelle 27–2 Status von Solaris Trusted Extensions-Berechtigungen in Zonen

Solaris Trusted Extensions-Berechtigung 

Status 

Anmerkung 

file_downgrade_sl

Optional 

Stellen Sie das Sensitivity Label der Datei oder des Verzeichnisses so ein, dass es das existierende Sensitivity Label nicht dominiert. 

file_upgrade_sl

Optional 

Stellen Sie das Sensitivity Label der Datei oder des Verzeichnisses so ein, dass es das existierende Sensitivity Label dominiert. 

sys_trans_label

Optional 

Label übersetzen, die nicht von einem Sensitivity Label dominiert sind 

win_colormap

Optional 

Colormap-Einschränkungen außer Kraft setzen 

win_config

Optional 

Konfigurieren oder Löschen von Ressourcen, die permanent vom XServer aufbewahrt werden 

win_dac_read

Optional 

Lesen aus einer Window-Ressource, die nicht das Eigentum der Benutzer-ID des Client ist 

win_dac_write

Optional 

Schreiben oder Erstellen einer Window-Ressource, die nicht das Eigentum der Benutzer-ID des Client ist 

win_devices

Optional 

Ausführen von Vorgängen an Eingabegeräten. 

win_dga

Optional 

Verwenden der X-Protokollerweiterungen für den Grafikzugriff; Frame Buffer-Berechtigungen erforderlich 

win_downgrade_sl

Optional 

Ändern des Sensitivity Label der Window-Ressource auf ein neues Label, das vom vorhandenen Label dominiert wird 

win_fontpath

Optional 

Hinzufügen eines zusätzlichen Schriftartpfads 

win_mac_read

Optional 

Lesen aus einer Window-Ressource mit einem Label, das das Client-Label dominiert 

win_mac_write

Optional 

Schreiben in eine Window-Ressource mit einem Label, das dem Client-Label nicht gleicht 

win_selection

Optional 

Anfordern von Datenverschiebungen ohne Anzeigen einer Bestätigungsaufforderung 

win_upgrade_sl

Optional 

Ändern des Sensitivity Label der Window-Ressource auf ein neues Label, das nicht vom vorhandenen Label dominiert wird 

net_bindmlp

Standard 

Ermöglicht das Binden an einen Multilevel Port (MLP) 

net_mac_aware

Standard 

Ermöglicht das Lesen über NFS 

Wie Sie Berechtigungen in der Konfiguration einer nicht-globalen Zone ändern, finden Sie unter Konfigurieren, Prüfen und Übernehmen einer Zone.

Informationen zum Anzeigen von Berechtigungssets finden Sie unter Verwenden des Dienstprogramms ppriv. Weitere Informationen zu Berechtigungen finden Sie in der Manpage ppriv(1) und im System Administration Guide: Security Services.

Verwenden der IP-Sicherheitsarchitektur in Zonen

Das Internet Protocol Security Architecture (IPsec), das einen Schutz des IP-Datagramms bietet, wird in Kapitel 19, IP Security Architecture (Übersicht) in Systemverwaltungshandbuch: IP Services beschrieben . Das Internet Key Exchange (IKE)-Protokoll dient zum Verwalten der erforderlichen Schlüssel für die automatische Authentifizierung und Verschlüsselung.

Weitere Informationen entnehmen Sie bitte den Manpages ipsecconf(1M) und ipseckey(1M).

IP-Sicherheitsarchitektur in Shared IP-Zonen

IPsec kann in der globalen Zone eingesetzt werden. Jedoch kann IPsec in einer nicht-globalen Zone kein IKE nutzen. Daher müssen Sie zur Verwaltung der IPsec-Schlüssel und Richtlinien für die nicht-globalen Zonen das Internet Key Exchange (IKE)-Protokoll in der globalen Zone verwenden. Verwenden Sie die Quelladresse, die der von Ihnen konfigurierten nicht-globalen Zone entspricht.

Solaris 10 8/07: IP-Sicherheitsarchitektur in Exclusive IP-Zonen

IPsec kann in Exclusive IP-Zonen verwendet werden.

Verwenden von Solaris-Auditing in Zonen

Das Solaris-Auditing ist in Kapitel 28, Oracle Solaris Auditing (Overview) in System Administration Guide: Security Services beschrieben . Informationen zu den Überlegungen, die im Zusammenhang mit dem Auditing für Zonen angestellt werden müssen, finden Sie in den folgenden Abschnitten:

Ein Audit-Datensatz beschreibt ein Ereignis, zum Beispiel das Anmelden bei einem System oder das Schreiben in eine Datei. Der Datensatz besteht aus mehreren Token, bei denen es sich um Audit-Daten-Sets handelt. Mit dem Token zonename können Sie das Solaris-Auditing so konfigurieren, dass es Audit-Ereignisse nach der Zone kennzeichnet. Mit dem Token zonename können Sie die folgenden Informationen erstellen:

Konfigurieren des Auditing in der globalen Zone

Solaris-Audittrails werden in der globalen Zone konfiguriert. Die Audit-Richtlinien werden in der globalen Zone eingestellt und gelten für Prozesse in allen Zonen. Die Audit-Datensätze können mit dem Namen der Zone versehen werden, in der das Ereignis aufgetreten ist. Um Zonennamen in Audit-Datensätzen aufzunehmen, müssen Sie die Datei /etc/security/audit_startup ändern, bevor Sie nicht-globale Zonen installieren. Die Auswahl der Zonennamen ist von der Groß-/Kleinschreibung abhängig.

Um das Auditing in der globalen Zone so zu konfigurieren, dass alle Zonen-Audit-Datensätze enthalten sind, fügen Sie die folgende Zeile in die Datei /etc/security/audit_startup ein:


/usr/sbin/auditconfig -setpolicy +zonename

Als globaler Administrator in der globalen Zone führen Sie das Dienstprogramm auditconfig aus:


global# auditconfig -setpolicy +zonename

Weitere Informationen finden Sie in den Manpages audit_startup(1M) und auditconfig(1M) sowie unter „Configuring Audit Files (Task Map)“ im System Administration Guide: Security Services.

Konfigurieren vom Benutzer-Audit-Eigenschaften in einer nicht-globalen Zone

Beim Erstellen einer nicht-globalen Zone werden die Dateien audit_control und audit_user von der globalen Zone in das Verzeichnis /etc/security der Zone kopiert. Diese Dateien müssen eventuell modifiziert werden, um die Audit-Anforderungen der Zone widerzuspiegeln.

Beispielsweise kann jede Zone so konfiguriert werden, dass das Auditing für bestimmte Benutzer anders als für andere Benutzer ausgeführt wird. Um diese benutzerspezifischen Vorauswahlkriterien anzuwenden, müssen die beiden Dateien audit_control und audit_user bearbeitet werden. Eventuell sind für die Datei audit_user in der nicht-globalen Zone auch Änderungen erforderlich, um die Benutzerbasis der Zone widerzuspiegeln. Da jede Zone bezüglich des Benutzers, der das Auditing ausführt, anders konfiguriert sein kann, ist es auch möglich, dass die Datei audit_user vollständig leer ist.

Weitere Informationen finden Sie in den Manpages audit_control(4) und audit_user(4).

Bereitstellen von Audit-Datensätzen für eine bestimmte nicht-globale Zone

Durch Aufnahme des Token zonename gemäß der Beschreibung unter Konfigurieren des Auditing in der globalen Zone können Solaris-Audit-Datensätze nach Zonen konfiguriert werden. Datensätze aus unterschiedlichen Zonen können dann mit dem Befehl auditreduce gesammelt werden, um Protokolle für eine bestimmte Zone zu erstellen.

Weitere Informationen finden Sie in den Manpages audit_startup(1M) und auditreduce(1M).

Core-Dateien in Zonen

Mit dem Befehl coreadm geben Sie den Namen und Speicherort von Core-Dateien an, die durch vorzeitig beendete Prozesse erstellt werden. Pfadangaben zu den Core-Dateien, die den Zonennamen der Zone enthalten, in der der Prozess ausgeführt wurde, werden durch Angabe der Variablen %z erstellt. Der Pfadname ist relativ zum Root-Verzeichnis der Zone.

Weitere Informationen finden Sie in den Manpages coreadm(1M) und core(4).

Ausführen von DTrace in einer nicht-globalen Zone

DTrace-Programme, die nur die Berechtigungen dtrace_proc und dtrace_user benötigen, können in einer nicht-globalen Zone ausgeführt werden. Um diese Berechtigungen zum Berechtigungsset hinzuzufügen, das in der nicht-globalen Zone zur Verfügung steht, verwenden Sie die zonecfg-Eigenschaft limitpriv. Anweisungen hierzu finden Sie unter So verwenden Sie DTrace.

Die von dtrace_proc unterstützten Provider sind fasttrap und pid. Die von dtrace_user unterstützten Provider sind profile und syscall. Der Gültigkeitsbereich der DTrace-Provider und -Aktionen ist auf die Zone beschränkt.

Weitere Informationen finden Sie unter Berechtigungen in einer nicht-globalen Zone.

Allgemeine Informationen zum Sichern eines Solaris-Systems mit installierten Zonen

Sie können Sicherungen einzelner nicht-globaler Zonen erstellen, oder das gesamte System von der globalen Zone aus sichern.

Sichern der Loopback-Dateisystemverzeichnisse

Da viele nicht-globale Zonen über lofs-Mounts (in der Regel /usr, /lib, /sbin und /platform) Dateien gemeinsam mit dem globalen System nutzen, müssen Sie ein Sicherungsverfahren für die globale Zone verwenden, um die lofs-Verzeichnisse zu sichern.


Achtung – Achtung –

Sichern Sie nicht die lofs-Dateisysteme, die in nicht-globalen Zonen mit der globalen Zone gemeinsam genutzt werden. Ein Versuch des Administrators einer nicht-globalen Zone, lofs-Dateisysteme aus einer nicht-globalen Zone wiederherzustellen, könnte zu einem schwerwiegenden Problem führen.


Sichern eines Systems von der globalen Zone

In den folgenden Fällen können Sie die Sicherungen von der globalen Zone aus durchführen:

Sichern einzelner nicht-globaler Zonen auf einem System

In den folgenden Fällen können Sie Sicherungen in den nicht-globalen Zonen erstellen.

Festlegen der in nicht-globalen Zonen zu sichernden Daten

Sie können alle Daten in der nicht-globalen Zone, oder, da sich die Konfiguration einer Zone nur selten ändert, nur die Anwendungsdaten sichern.

Sichern nur der Anwendungsdaten

Wenn die Anwendungsdaten in einem bestimmten Teil des Dateisystems gesichert werden, können Sie auch nur diese Daten regelmäßig zu ändern. Eine Sicherung des Root-Dateisystems der Zone muss nicht mit der gleichen Häufigkeit erfolgen, da sich diese Daten selten ändern.

Sie müssen feststellen, wo die Anwendung ihre Dateien speichert. Speicherorte, an denen Anwendungen ihre Dateien ablegen, sind z. B.:

Wenn der Anwendungsadministrator weiß, wo die Daten gespeichert sind, kann ein System erstellt werden, in dem ein schreibfähiges Verzeichnis für jede Zone erstellt wird. Jede Zone kann dann ihre eigenen Backups speichern, und der globale Administrator kann dieser Ort zu den Speicherorten eines Systems hinzufügen, die gesichert werden.

Allgemeine Vorgänge bei der Sicherung von Datenbanken

Wenn die Anwendungsdaten einer Datenbank nicht in einem eigenen Verzeichnis abgelegt werden, gelten die folgenden Regeln:

Sicherungen auf Band

Jede nicht-globale Zone kann eine Momentaufnahme ihrer privaten Dateisysteme erstellen, wenn die Zone dies gestattet und die Anwendung im kurzfristig im Ruhezustand ist. Später kann die globale Zone jede dieser Momentaufnahme sichern und auf Band speichern, wenn die Anwendung wieder arbeitet.

Diese Methode hat die folgenden Vorteile:

Allgemeine Informationen zum Wiederherstellen von nicht-globalen Zonen

Wenn das Wiederherstellen der Sicherungskopien von der globalen Zone aus erfolgt, kann der globale Administrator die betroffenen Zonen wie die betroffenen Zonen zunächst neu installieren und dann die Dateien in der Zone wiederherstellen. Dabei wird von Folgendem ausgegangen:

Andernfalls könnten beim Wiederherstellen einige Dateien überschrieben werden, die manuell zusammengeführt werden sollten.

Beispielsweise müssen Sie Dateien manuell zusammenführen, wenn eine globale Zonen nach der Sicherung, aber vor dem Wiederherstellen der nicht-globalen Zone gepatcht wurde. In diesem Fall müssen Sie beim Wiederherstellen der Dateien einer Zone vorsichtig vorgehen, da eine gesicherte Datei eventuell nicht kompatibel mit der neu installierten Zone ist, die nach dem Patchen der globalen Zone erstellt wurde. Prüfen Sie die Dateien einzeln und vergleichen Sie sie mit den Kopien in der neu installierten Zone. In den meisten Fällen kann eine Datei direkt kopiert werden, in einigen Fällen müssen Sie die an einer Datei vorgenommenen Änderungen in die neu installierte oder gepatchte Kopie der Zone einfügen.


Hinweis –

Wenn alle Dateisysteme in der globalen Zone verloren gegangen sind, werden beim Wiederherstellen aller Daten der globalen Zone auch die nicht-globalen Zonen wiederhergestellt, solange die jeweiligen Root-Dateisysteme der nicht-globalen Zone in der Sicherung enthalten waren.


Mit einem Solaris-System mit installierten Zonen verwendete Befehle

Die in Tabelle 27–3 aufgeführten Befehle stellen die primäre administrative Schnittstelle zu den Zonen dar.

Tabelle 27–3 Befehle zum Verwalten von Zonen

Befehl 

Beschreibung 

zlogin(1)

Anmelden bei einer nicht-globalen Zone 

zonename(1)

Druckt den Namen der aktuellen Zone 

zoneadm(1M)

Verwalten der Zonen auf einem System  

zonecfg(1M)

Einrichten einer Zonenkonfiguration 

getzoneid(3C)

Zuordnen von Zonen-ID und Name 

zones(5)

Beschreibung der Funktion Zonen 

zcons(7D)

Zonenkonsole-Gerätetreiber 

Der Daemon zoneadmd ist der primäre Prozess zur Verwaltung der virtuellen Plattform einer Zone. Die Manpage für den zoneadmd-Daemon ist zoneadmd(1M). Der Daemon stellt keine Programmierungsschnittstelle dar.

Die in der folgenden Tabelle aufgeführten Befehle werden mit dem Resource Capping Daemon verwendet.

Tabelle 27–4 Mit rcapd verwendete Befehle

Befehl 

Beschreibung 

rcapstat(1)

Überwacht die Ressourcenauslastung durch Projekte, für die eine Memory Cap eingerichtet wurde. 

rcapadm(1M)

Konfiguriert den Resource Capping Daemon, zeigt den aktuellen Status des Resource Capping Daemons an, sofern dieser konfiguriert wurde, und aktiviert oder deaktiviert das Resource Capping. Wird auch zum Einrichten einer temporären Memory Cap verwendet. 

rcapd(1M)

Der Resource Capping Daemon. 

Die Befehle in der folgenden Tabelle wurden für die Verwendung auf einem Solaris-System mit installierten Zonen modifiziert. Diese Befehle verfügen über Optionen, die nur für Zonen gelten oder Informationen auf andere Weise anzeigen. Die Befehle werden nach Manpage-Abschnitt aufgeführt.

Tabelle 27–5 Für ein Solaris-System mit installierten Zonen modifizierte Befehle

Befehl 

Beschreibung 

ipcrm(1)

Option -z Zone hinzugefügt. Diese Option eignet sich insbesondere dann, wenn der Befehl in der globalen Zone ausgeführt wird.

ipcs(1)

Option -z Zone hinzugefügt. Diese Option eignet sich insbesondere dann, wenn der Befehl in der globalen Zone ausgeführt wird.

pgrep(1)

Option -z Zonen-ID-Liste hinzugefügt. Diese Option eignet sich insbesondere dann, wenn der Befehl in der globalen Zone ausgeführt wird.

ppriv(1)

Ausdruck zone für die Option -l hinzugefügt, um alle in der aktuellen Zone verfügbaren Berechtigungen aufzulisten. Geben Sie die Option - v nach zone an, um eine ausführliche Ausgabe zu erhalten.

priocntl(1)

Die Zonen-ID kann mit ID-Liste und -i ID-Typ verwendet werden, um Prozesse anzugeben. Mit dem Befehl priocntl -i Zonen-ID können Sie laufende Prozesse in eine andere Scheduling-Klasse einer nicht-globalen Zone verschieben.

proc(1)

Option -z Zone nur für ptree hinzugefügt. Diese Option eignet sich insbesondere dann, wenn der Befehl in der globalen Zone ausgeführt wird.

ps(1)

Zonenname und Zonen-ID hinzugefügt, um erkannte format-Namen aufzulisten, die mit der Option -o verwendet wurden.

-z Zonenliste hinzugefügt, um nur Prozesse in den angegebenen Zonen aufzulisten. Die Zonen können entweder über den Zonennamen oder die Zonen-ID angegeben werden. Diese Option eignet sich insbesondere dann, wenn der Befehl in der globalen Zone ausgeführt wird.

-Z hinzugefügt, um den Namen der Zone zu drucken, die dem Prozess zugeordnet ist. Der Name wird unter einer zusätzlichen Spaltenüberschrift, ZONE, gedruckt.

renice(1)

Zonen-ID hinzugefügt, um die gültigen Argumente aufzulisten, die mit der Option -i verwendet wurden.

sar(1)

Wenn dieser Befehl in einer nicht-globalen Zone mit aktivierten Pools verwendet wird, zeigen die Optionen -b, -c -g, -m, - p, -u, -w und -y Werte nur für Prozessoren an, die sich im Prozessorset des Pools befinden, an den die Zone gebunden ist.

auditconfig(1M)

Token zonename hinzugefügt.

auditreduce(1M)

Option -z Zone-Name hinzugefügt. Fähigkeit zum Erhalten eines Audit-Protokolls einer Zone hinzugefügt.

coreadm(1M)

Variable %z hinzugefügt, um die Zone zu identifizieren, in der der Prozess ausgeführt wird.

df(1M)

Option -Z hinzugefügt, um Mounts in allen sichtbaren Zonen anzuzeigen.

ifconfig(1M)

Option zone für die Verwendung in der globalen Zone (die Standardeinstellung) und -zone Zonenname für die Verwendung in der nicht-globalen Zone hinzugefügt.

iostat(1M)

Wenn dieser Befehl in einer nicht-globalen Zone mit aktivierten Pools verwendet wird, werden nur Werte nur für Prozessoren angezeigt, die sich im Prozessorset des Pools befinden, an den die Zone gebunden ist. 

kstat(1M)

Wenn der Befehl in der globalen Zone ausgeführt wird, werden kstats für alle Zonen angezeigt. Wenn der Befehl in einer nicht-globalen Zone ausgeführt wird, werden nur kstats mit einer übereinstimmenden Zonen-ID angezeigt.

mpstat(1M)

Wenn dieser Befehl in einer nicht-globalen Zone mit aktivierten Pools verwendet wird, werden nur Zeilen mit den Prozessoren angezeigt, die sich im Prozessorset des Pools befinden, an den die Zone gebunden ist. 

ndd(1M)

Wenn dieser Befehl in der globalen Zone verwendet wird, werden Informationen zu allen Zonen angezeigt. ndd bei TCP/IP-Modulen in einer Exclusive IP-Zone zeigt nur Informationen über diese Zone an.

netstat(1M)

Zeigt nur Informationen über die aktuelle Zone an. 

nfsstat(1M)

Zeigt nur Statistiken der aktuellen Zone an. 

poolbind(1M)

Liste Zonen-ID hinzugefügt. Informationen zur Verwendung von Zonen mit Resource Pools finden Sie unter In Zonen verwendete Resource Pools.

prstat(1M)

Option -z Zonen-ID-Liste hinzugefügt. Option -Z hinzugefügt.

Wenn dieser Befehl in einer nicht-globalen Zone mit aktivierten Pools verwendet wird, wird der Prozentsatz der zuletzt vom Prozess verwendeten CPU Zeit nur für die Prozessoren im Set des Pools angezeigt, an den die Zone gebunden ist. 

Die Ausgabe der Optionen -a, -t, -T, - J und -Z zeigt eine SWAP- anstelle einer SIZE-Spalte an. Der angezeigte Swap-Bereich ist der gesamte Swap-Bereich, der von den Prozessen der Zone und den tmpfs-Mounts verbraucht wird. Dieser Wert unterstützt die Überwachung des von jeder Zone reservierten Swap-Bereichs. Er kann zum Wählen einer geeigneten Einstellung für zone.max-swap verwendet werden.

psrinfo(1M)

Wenn dieser Befehl in einer nicht-globalen Zone ausgeführt wird, werden nur Informationen zu den für die Zone sichtbaren Prozessoren aufgeführt. 

traceroute(1M)

Nutzungsänderung. Wenn dieser Befehl in einer nicht-globalen Zone angegeben wurde, hat die Option -F keine Auswirkung, da das „don't fragment“-Bit immer gesetzt ist.

vmstat(1M)

Wenn dieser Befehl in einer nicht-globalen Zone mit aktivierten Pools verwendet wird, werden Statistiken nur für die Prozessoren angezeigt, die sich im Prozessorset des Pools befinden, an den die Zone gebunden ist. Gilt für die Ausgabe der Option -p und der Berichtsfelder page, faults und cpu.

auditon(2)

AUDIT_ZONENAME hinzugefügt, um mit jedem Audit-Datensatz ein Zonen-ID-Token zu erzeugen.

priocntl(2)

Argument P_ZONEID ID hinzugefügt.

processor_info(2)

Wenn sich der Aufrufer in einer nicht-globalen Zone befindet und die Pools aktiviert sind, sich der Prozessor aber nicht im Prozessorset des Pools befindet, an den die Zone gebunden ist, wird ein Fehler ausgegeben. 

p_online(2)

Wenn sich der Aufrufer in einer nicht-globalen Zone befindet und die Pools aktiviert sind, sich der Prozessor aber nicht im Prozessorset des Pools befindet, an den die Zone gebunden ist, wird ein Fehler ausgegeben. 

pset_bind(2)

P_ZONEID als ID-Typ hinzugefügt. Zone als Auswahlmöglichkeit für P_MYID hinzugefügt. P_ZONEID hinzugefügt, um die ID-Typ-Liste in der EINVAL-Fehlerbeschreibung zu validieren.

pset_info(2)

Wenn sich der Aufrufer in einer nicht-globalen Zone befindet und die Pools aktiviert sind, sich der Prozessor aber nicht im Prozessorset des Pools befindet, an den die Zone gebunden ist, wird ein Fehler ausgegeben. 

pset_list(2)

Wenn sich der Aufrufer in einer nicht-globalen Zone befindet und die Pools aktiviert sind, sich der Prozessor aber nicht im Prozessorset des Pools befindet, an den die Zone gebunden ist, wird ein Fehler ausgegeben. 

pset_setattr(2)

Wenn sich der Aufrufer in einer nicht-globalen Zone befindet und die Pools aktiviert sind, sich der Prozessor aber nicht im Prozessorset des Pools befindet, an den die Zone gebunden ist, wird ein Fehler ausgegeben. 

sysinfo(2)

PRIV_SYS_CONFIG zu PRIV_SYS_ADMIN geändert.

umount(2)

ENOENT wird zurückgegeben, wenn die Datei, auf die mit Datei verwiesen wird, kein absoluter Pfad ist.

getloadavg(3C)

Wenn sich der Aufrufer in einer nicht-globalen Zone befindet und die Pools aktiviert sind, entspricht das Verhalten dem Aufrufen mit einer psetid mit dem Wert PS_MYID.

getpriority(3C)

Zonen-IDs zu Zielprozessen hinzugefügt, die angegeben werden können. Zonen-ID zur EINVAL-Fehlerbeschreibung hinzugefügt.

priv_str_to_set(3C)

String „zone“ zu allen Berechtigungssets hinzugefügt, die in der Zone des Aufrufers zur Verfügung stehen. 

pset_getloadavg(3C)

Wenn sich der Aufrufer in einer nicht-globalen Zone befindet und die Pools aktiviert sind, sich der Prozessor aber nicht im Prozessorset des Pools befindet, an den die Zone gebunden ist, wird ein Fehler ausgegeben. 

sysconf(3C)

Wenn sich der Aufrufer in einer nicht-globalen Zone befindet und die Pools aktiviert sind, geben sysconf(_SC_NPROCESSORS_CONF) und sysconf(_SC_NPROCESSORS_ONLN) die Anzahl der Prozessoren zurück, die sich im Prozessorset des Pools befinden, an den die Zone gebunden ist.

ucred_get(3C)

Funktion ucred_getzoneid() hinzugefügt, die die Zonen-ID des Prozesses oder -1 zurückgibt, wenn die Zonen-ID nicht verfügbar ist.

core(4)

n_type: NT_ZONENAME hinzugefügt. Dieser Eintrag enthält einen String, der den Namen der Zone beschreibt, in der der Prozess ausgeführt wurde.

pkginfo(4)

Bietet jetzt optionale Parameter und eine Umgebungsvariable zur Unterstützung von Zonen. 

proc(4)

Funktion zum Abrufen von Informationen zu Prozessen, die in Zonen ausgeführt werden, hinzugefügt. 

audit_syslog(5)

Feld in<Zonenname> hinzugefügt, das verwendet wird, wenn die Audit-Richtlinie zonename gesetzt ist.

privileges(5)

PRIV_PROC_ZONE hinzugefügt. Dies ermöglicht einem Prozess das Verfolgen oder Senden von Signalen an Prozesse in anderen Zonen. Lesen Sie auch zones(5).

if_tcp(7P)

zone ioctl()-Aufrufe hinzugefügt.

cmn_err(9F)

Zonenparameter hinzugefügt. 

ddi_cred(9F)

crgetzoneid() hinzugefügt. Dies gibt die Zonen-ID aus den Benutzerberechtigungen zurück, auf die mit cr verwiesen wird.