Teil I Übersicht über die Sicherheit
1. Sicherheitsservices (Überblick)
Teil II System-, Datei- und Gerätesicherheit
2. Verwalten von Rechnersicherheit (Übersicht)
3. Steuern des Zugriffs auf Systeme (Aufgaben)
4. Steuern des Zugriffs auf Geräte (Aufgaben)
5. Verwenden von Basic Audit Reporting Tool (Aufgaben)
6. Steuern des Zugriffs auf Dateien (Aufgaben)
7. Verwenden von Automated Security Enhancement Tool (Aufgaben)
Teil III Rollen, Berechtigungsprofile und Berechtigungen
8. Verwenden von Rollen und Berechtigungen (Übersicht)
9. Rollenbasierte Zugriffssteuerung (Aufgaben)
10. Rollenbasierte Zugriffssteuerung (Übersicht)
Verwalten und Verwenden von Berechtigungen (Übersicht der Schritte)
Verwalten von Berechtigungen (Übersicht der Schritte)
So legen Sie die Berechtigungen auf einem Prozess fest
So legen Sie die für ein Programm erforderlichen Berechtigungen fest
So fügen Sie Berechtigungen zu einem Befehl hinzu
So weisen Sie Berechtigungen einem Benutzer oder einer Rolle zu
So begrenzen Sie die Berechtigungen eines Benutzers oder einer Rolle
So führen Sie ein Shell-Skript mit privilegierten Befehlen aus
Festlegen Ihrer Berechtigungen (Übersicht der Schritte)
Festlegen Ihrer zugewiesenen Berechtigungen
So legen Sie die Ihnen direkt zugewiesenen Berechtigungen fest
So legen Sie die ausführbaren privilegierten Befehle fest
So legen Sie die von einer Rolle ausführbaren privilegierten Befehle fest
Teil IV Kryptografische Services
13. Oracle Solaris Cryptographic Framework (Übersicht)
14. Oracle Solaris Cryptographic Framework (Aufgaben)
15. Oracle Solaris Key Management Framework
Teil V Authentifizierungsservices und sichere Kommunikation
16. Verwenden von Authentifizierungsservices (Aufgaben)
19. Verwenden von Oracle Solaris Secure Shell (Aufgaben)
20. Oracle Solaris Secure Shell (Referenz)
21. Einführung zum Kerberos-Service
22. Planen des Kerberos-Service
23. Konfigurieren des Kerberos-Service (Aufgaben)
24. Kerberos-Fehlermeldungen und -Fehlerbehebung
25. Verwalten von Kerberos-Hauptelementen und Richtlinien (Aufgaben)
26. Verwenden von Kerberos-Anwendungen (Aufgaben)
27. Der Kerberos-Service (Referenz)
Teil VII Prüfung bei Oracle Solaris
28. Prüfung bei Oracle Solaris (Übersicht)
29. Planen der Oracle Solaris-Prüfung
30. Verwalten der Oracle Solaris-Prüfung (Aufgaben)
Die sicherste Art zum Verwalten von Berechtigungen für Benutzer und Rollen besteht darin, die Verwendung von Berechtigungen auf Befehle in einem Berechtigungsprofil zu beschränken. Das Berechtigungsprofil wird dann in eine Rolle eingeschlossen. Die Rolle wird einem Benutzer zugewiesen. Wenn der Benutzer die ihm zugewiesene Rolle annimmt, stehen die privilegierten Befehle zur Ausführung in einer Profil-Shell zur Verfügung. Die folgenden Verfahren zeigen, wie Sie Berechtigungen zuweisen, entfernen und Fehler bei der Verwendung von Berechtigungen suchen können.
Dieses Verfahren zeigt, wie Sie festlegen können, welche Berechtigungen Ihren Prozessen zur Verfügung stehen. Die Liste enthält keine Berechtigungen, die bestimmten Befehlen zugewiesen wurden.
% ppriv pid $ ppriv -v pid
Die Prozessnummer. Verwenden Sie ein doppeltes Dollarzeichen ($$), um die Prozessnummer der übergeordneten Shell an den Befehl weiterzugeben.
Stellt eine ausführliche Liste der Berechtigungsnamen zur Verfügung.
Beispiel 11-1 Festlegen der Berechtigungen in Ihrer aktuellen Shell
Im folgenden Beispiel werden die Berechtigungen im übergeordneten Prozess des Shell-Prozesses des Benutzers aufgeführt. Im zweiten Beispiel werden die vollständigen Namen der Berechtigungen aufgeführt. Die einzelnen Buchstaben in der Ausgabe beziehen sich auf die folgenden Berechtigungssätze:
Der effektive Berechtigungssatz
Der vererbbare Berechtigungssatz
Der zugelassene Berechtigungssatz
Der begrenzte Berechtigungssatz.
% ppriv $$ 1200: -csh flags = <none> E: basic I: basic P: basic L: all % ppriv -v $$ 1200: -csh flags = <none> E: file_link_any,net_access,proc_exec,proc_fork,proc_info,proc_session I: file_link_any,net_access,proc_exec,proc_fork,proc_info,proc_session P: file_link_any,net_access,proc_exec,proc_fork,proc_info,proc_session L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time
Beispiel 11-2 Festlegen der Berechtigungen einer Rolle, die Sie annehmen können
Rollen verwenden eine administrative Shell oder Profil-Shell. Sie müssen eine Rolle annehmen und die Shell der Rolle verwenden, um die Berechtigungen aufzulisten, die der Rolle direkt zugewiesen wurden. Im folgenden Beispiel hat die Rolle sysadmin keine direkt zugewiesenen Berechtigungen.
% su - sysadmin Password: <Type sysadmin password> $ /usr/ucb/whoami sysadmin $ ppriv -v $$ 1400: pfksh flags = <none> E: file_link_any,net_access,proc_exec,proc_fork,proc_info,proc_session I: file_link_any,net_access,proc_exec,proc_fork,proc_info,proc_session P: file_link_any,net_access,proc_exec,proc_fork,proc_info,proc_session L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time
Dieser Vorgang legt fest, welche Berechtigungen ein Befehl oder ein Prozess zur erfolgreichen Ausführung benötigt.
Bevor Sie beginnen
Der Befehl oder Prozess muss fehlgeschlagen sein, damit dieser Vorgang ausgeführt werden kann.
% ppriv -eD touch /etc/acct/yearly touch[11365]: missing privilege "file_dac_write" (euid = 130, syscall = 224) needed at ufs_direnter_cm+0x27c touch: /etc/acct/yearly cannot create
% grep 224 /etc/name_to_sysnum creat64 224
Beispiel 11-3 Verwenden Sie den Befehl truss zum Untersuchen der Verwendung von Berechtigungen
Mit dem Befehl truss können Sie Fehler bei der Berechtigungsverwendung in einer normalen Shell suchen. Der folgende Befehl durchsucht z. B. den fehlgeschlagenen Prozess touch nach Fehlern:
% truss -t creat touch /etc/acct/yearly creat64("/etc/acct/yearly", 0666) Err#13 EACCES [file_dac_write] touch: /etc/acct/yearly cannot create
Die erweiterten /proc-Schnittstellen melden die fehlende Berechtigung nach dem Fehlercode in der Ausgabe truss.
Beispiel 11-4 Verwenden des Befehls ppriv zum Untersuchen der Berechtigungsverwendung in einer Profil-Shell
Mit dem Befehl ppriv können Sie die Verwendung von Berechtigungen in einer Profil-Shell nach Fehlern durchsuchen. Wenn Sie einem Benutzer ein Berechtigungsprofil zuweisen und das Berechtigungsprofil Befehle mit Berechtigungen enthält, müssen die Befehle in einer Profil-Shell eingegeben werden. Wenn die privilegierten Befehle in eine normale Shell eingegeben werden, werden die Befehle nicht mit Berechtigung ausgeführt.
In diesem Beispiel kann der Benutzer jdoe die Rolle objadmin annehmen. Die Rolle objadmin enthält das Berechtigungsprofil "Object Access Management". Dieses Berechtigungsprofil ermöglicht der Rolle objadmin, Berechtigungen für Dateien zu ändern, über die objadmin nicht verfügt.
Im folgenden Auszug kann jdoe die Berechtigungen für die Datei useful.script nicht ändern:
jdoe% ls -l useful.script -rw-r--r-- 1 aloe staff 2303 Apr 10 10:10 useful.script jdoe% chown objadmin useful.script chown: useful.script: Not owner jdoe% ppriv -eD chown objadmin useful.script chown[11444]: missing privilege "file_chown" (euid = 130, syscall = 16) needed at ufs_setattr+0x258 chown: useful.script: Not owner
Wenn jdoe die Rolle objadmin annimmt, werden die Berechtigungen für die Datei geändert:
jdoe% su - objadmin Password: <Type objadmin password> $ ls -l useful.script -rw-r--r-- 1 aloe staff 2303 Apr 10 10:10 useful.script $ chown objadmin useful.script $ ls -l useful.script -rw-r--r-- 1 objadmin staff 2303 Apr 10 10:10 useful.script $ chgrp admin useful.script $ ls -l objadmin.script -rw-r--r-- 1 objadmin admin 2303 Apr 10 10:11 useful.script
Beispiel 11-5 Ändern einer Datei, die dem root-Benutzer gehört
Dieses Beispiel zeigt den Schutz gegen Berechtigungseskalation. Eine Diskussion hierzu finden Sie unter Verhindern von Berechtigungseskalation. Die Datei gehört dem root-Benutzer. Die weniger leistungsstarke Rolle, objadmin, benötigt zum Ändern der Eigentümerschaft der Datei alle Berechtigungen; daher schlägt der Vorgang fehl.
jdoe% su - objadmin Password: <Type objadmin password> $ cd /etc; ls -l system -rw-r--r-- 1 root sys 1883 Oct 10 10:20 system $ chown objadmin system chown: system: Not owner $ ppriv -eD chown objadmin system chown[11481]: missing privilege "ALL" (euid = 101, syscall = 16) needed at ufs_setattr+0x258 chown: system: Not owner
Sie fügen einem Befehl Berechtigungen hinzu, wenn Sie den Befehl einem Berechtigungsprofil hinzufügen. Die Berechtigungen aktivieren die Rolle, die das Berechtigungsprofil zum Ausführen des administrativen Befehls enthält, erhalten jedoch keine anderen Superuser-Fähigkeiten.
Bevor Sie beginnen
Der Befehl oder das Programm muss Berechtigungen erkennen. Eine vollständigere Diskussion hierzu finden Sie unter Zuweisen von Berechtigungen zu Prozessen.
Rollen umfassen Autorisierungen und privilegierte Befehle. Weitere Informationen zu Rollen finden Sie unter Konfigurieren von RBAC (Übersicht der Schritte).
Eine Anleitung hierzu finden Sie unter So nehmen Sie eine Rolle in der Solaris Management Console an.
Wählen Sie den Befehl, den Sie einschließen möchten. Fügen Sie für jeden enthaltenen Befehl die erforderlichen Berechtigungen hinzu.
![]() | Achtung - Wenn Sie Befehle in ein Berechtigungsprofil einschließen und den Befehlen Berechtigungen hinzufügen, werden die Befehle mit diesen Berechtigungen ausgeführt, wenn die Befehle in einer Profil-Shell ausgeführt werden. Die Reihenfolge der Profile ist relevant. Die Profil-Shell führt einen Befehl oder eine Aktion mit den Sicherheitsattributen aus, die im ersten Profil in der Profilliste des Kontos angegeben sind. Wenn sich z. B. der Befehl chgrp im Berechtigungsprofil "Object Access Management" mit Berechtigungen befindet und "Object Access Management" das erste Profil darstellt, in dem der Befehl chgrp gefunden wird, wird der Befehl chgrp mit den im Profil "Object Access Management" angegebenen Berechtigungen ausgeführt. |
Sie können einigen Benutzern mit einer bestimmten Berechtigung immer vertrauen. Sehr spezifische Berechtigungen, die einen kleinen Teil des Systems beeinflussen, sind gut für die Zuweisung zu einem Benutzer geeignet. Eine Diskussion zu den Implikationen direkt zugewiesener Berechtigungen finden Sie unter Sicherheitsüberlegungen bei direkter Zuweisung von Sicherheitsattributen.
Das folgende Verfahren ermöglicht dem Benutzer jdoe die Verwendung hochauflösender Timer.
Die Rolle "Primary Administrator" enthält das gleichnamige Profil. Informationen zum Erstellen von Rollen und Zuweisen von Rollen zu Benutzern finden Sie in Kapitel 2, Working With the Solaris Management Console (Tasks) in System Administration Guide: Basic Administration.
$ usermod -K defaultpriv=basic,proc_clock_highres jdoe
Die Werte für das defaultpriv-Schlüsselwort ersetzen die vorhandenen Werte. Daher muss der Wert basic angegeben werden, damit der Benutzer die basic-Rechte beibehalten kann. In der Standardkonfiguration verfügen alle Benutzer über grundlegende Berechtigungen.
$ grep jdoe /etc/user_attr jdoe::::type=normal;defaultpriv=basic,proc_clock_highres
Beispiel 11-6 Erstellen einer Rolle mit Berechtigungen zum Konfigurieren der Systemzeit
In diesem Beispiel wird eine Rolle erstellt, deren einzige Aufgabe die Verwaltung der Systemzeit ist.
$ /usr/sadm/bin/smrole -D nisplus:/examplehost/example.domain \ -r primaryadm -l <Type primaryadm password> \ add -- -n clockmgr \ -c "Role that sets system time" \ -F "Clock Manager" \ -s /bin/pfksh \ -u 108 \ -P <Type clockmgr password> \ -K defaultpriv=basic,proc_priocntl,sys_cpu_config, proc_clock_highres,sys_time
Die Zeile -K ist zu Anzeigezwecken eingeschlossen.
Würde die Rolle lokal erstellt, würde der Eintrag user_attr für die Rolle ähnlich dem folgenden angezeigt werden:
clockmgr:::Role that sets system time: type=role;defaultpriv=basic,proc_priocntl,sys_cpu_config, proc_clock_highres,sys_time
Sie können die Berechtigungen begrenzen, die einem Benutzer oder einer Rolle zur Verfügung stehen, indem Sie den grundlegenden Satz oder den begrenzten Satz reduzieren. Sie sollten einen triftigen Grund haben, wenn Sie die Berechtigungen des Benutzers auf diese Weise begrenzen, da solche Beschränkungen unerwünschte Nebeneffekte haben können.
![]() | Achtung - Sie sollten die Fähigkeiten jedes Benutzers gründlich testen, wenn sein grundlegender Satz oder der begrenzte Satz geändert wurde.
|
Informationen zu diesem Vorgang finden Sie unter So legen Sie die Berechtigungen auf einem Prozess fest.
$ usermod -K defaultpriv=basic,!priv-name username
Durch Entfernen der Berechtigung proc_session hindern Sie den Benutzer daran, Prozesse außerhalb seiner aktuellen Sitzung zu untersuchen. Durch Entfernen der Berechtigung file_link_any hindern Sie den Benutzer daran, Hard Links zu Dateien herzustellen, die ihm nicht gehören.
![]() | Achtung - Entfernen Sie nicht die Berechtigungen proc_fork und proc_exec. Ohne diese Berechtigungen kann der Benutzer das System nicht verwenden. Tatsächlich werden diese beiden Berechtigungen nur aus gutem Grund von Dämonen entfernt, die nicht fork() oder exec() auf anderen Prozessen ausführen sollten. |
$ usermod -K limitpriv=all,!priv-name username
Melden Sie sich als username an und versuchen Sie, die Aufgaben auszuführen, die username auf dem System ausführen muss.
Beispiel 11-7 Entfernen von Berechtigungen aus dem begrenzten Satz eines Benutzers
Im folgenden Beispiel werden alle Sitzungen, die auf der ursprünglichen Anmeldung von jdoe basieren, daran gehindert, die Berechtigung sys_linkdir zu verwenden. Das bedeutet, dass der Benutzer keine Hard Links zu Verzeichnissen herstellen oder Verbindungen zu Verzeichnissen entfernen kann, selbst wenn er den Befehl su ausführt.
$ usermod -K limitpriv=all,!sys_linkdir jdoe $ grep jdoe /etc/user_attr jdoe::::type=normal;defaultpriv=basic;limitpriv=all,!sys_linkdir
Beispiel 11-8 Entfernen von Berechtigungen aus dem grundlegenden Satz eines Benutzers
Im folgenden Beispiel werden alle Sitzungen, die auf der ursprünglichen Anmeldung von jdoe basieren, daran gehindert, die Berechtigung proc_session zu verwenden. Das bedeutet, dass der Benutzer keine Prozesse außerhalb der Benutzersitzung untersuchen kann, selbst wenn er den Befehl su ausführt.
$ usermod -K defaultpriv=basic,!proc_session jdoe
$ grep jdoe /etc/user_attr jdoe::::type=normal;defaultpriv=basic,!proc_session;limitpriv=all
Hinweis - Wenn Sie ein Shell-Skript erstellen, das Befehle mit geerbten Berechtigungen ausführt, muss das geeignete Berechtigungsprofil die Befehle mit ihnen zugewiesenen Berechtigungen enthalten.
#!/bin/pfsh # Copyright (c) 2009, 2011 by Oracle Corporation
% ppriv -eD script-full-path
Eine Anleitung hierzu finden Sie unter So nehmen Sie eine Rolle in der Solaris Management Console an. Wählen Sie eine Rolle, mit der sie ein Berechtigungsprofil erstellen können, z. B. Primäradministrator.
Wählen Sie das Skript und schließen Sie im Berechtigungsprofil jeden Befehl im Shell-Skript ein, den Berechtigungen zur Ausführung benötigen. Fügen Sie für jeden enthaltenen Befehl die erforderlichen Berechtigungen hinzu.
![]() | Achtung - Die Reihenfolge der Berechtigungsprofile ist relevant. Die Profil-Shell führt die früheste Instanz eines Befehls in der Profilliste aus. Wenn sich z. B. der Befehl chgrp im Berechtigungsprofil "Object Access Management" befindet und "Object Access Management" das erste Profil darstellt, in dem der Befehl chgrp gefunden wird, wird der Befehl chgrp mit den im Profil "Object Access Management" angegebenen Berechtigungen ausgeführt. |
Um das Profil auszuführen, nimmt der Benutzer die Rolle an und führt das Skript in der Profil-Shell der Rolle aus.