Ignorer les liens de navigation | |
Quitter l'aperu | |
Administration d'Oracle Solaris : services de sécurité Oracle Solaris 11 Information Library (Français) |
Partie I Présentation de la sécurité
1. Services de sécurité (présentation)
Partie II Sécurité du système, des fichiers et des périphériques
2. Gestion de la sécurité de la machine (présentation)
3. Contrôle de l'accès aux systèmes (tâches)
4. Service d'analyse antivirus (tâches)
5. Contrôle de l'accès aux périphériques (tâches)
6. Utilisation de l'outil de génération de rapports d'audit de base (tâches)
7. Contrôle de l'accès aux fichiers (tâches)
Partie III Rôles, profils de droits et privilèges
8. Utilisation des rôles et des privilèges (présentation)
9. Utilisation du contrôle d'accès basé sur les rôles (tâches)
Affichage et utilisation des valeurs par défaut RBAC (tâches)
Affichage et utilisation des valeurs par défaut RBAC (liste des tâches)
Procédure d'affichage de tous les attributs de sécurité définis
Procédure d'affichage des droits qui vous sont affectés
Procédure d'endossement d'un rôle
Procédure d'obtention des droits d'administration
Personnalisation RBAC pour votre site (tâches)
Configuration initiale RBAC (liste des tâches)
Procédure de planification de votre implémentation RBAC
Procédure de création d'un rôle
Procédure d'attribution de rôle
Procédure de création ou de modification d'un profil de droits
Procédure d'ajout de propriétés RBAC aux anciennes applications
Procédure de dépannage de RBAC et de l'affectation de privilèges
Gestion de RBAC (liste des tâches)
Procédure de modification du mot de passe d'un rôle
Procédure de modification des attributs de sécurité d'un rôle
Procédure de modification des propriétés RBAC d'un utilisateur
Procédure de limitation d'un utilisateur aux applications de bureau
Procédure de limitation d'un administrateur aux droits affectés de manière explicite
Procédure de modification du rôle root en utilisateur
Utilisation des privilèges (tâches)
Détermination des privilèges (liste des tâches)
Procédure de création d'une liste des privilèges sur le système
Procédure de détermination des privilèges qui vous sont attribués directement
Procédure de détermination des commandes privilégiées que vous pouvez exécuter
Gestion des privilèges (liste des tâches)
Procédure de détermination de privilèges sur un processus
Procédure de détermination des privilèges requis par un programme
Procédure d'exécution d'un script shell avec des commandes privilégiées
10. Attributs de sécurité dans Oracle Solaris (référence)
Partie IV Services cryptographiques
11. Structure cryptographique (présentation)
12. Structure cryptographique (tâches)
13. Structure de gestion des clés
Partie V Services d'authentification et communication sécurisée
14. Authentification des services réseau (tâches)
17. Utilisation de Secure Shell (tâches)
19. Introduction au service Kerberos
20. Planification du service Kerberos
21. Configuration du service Kerberos (tâches)
22. Messages d'erreur et dépannage de Kerberos
23. Administration des principaux et des stratégies Kerberos (tâches)
24. Utilisation des applications Kerberos (tâches)
25. Service Kerberos (référence)
Partie VII Audit dans Oracle Solaris
Les listes des tâches suivantes dirigent vers des instructions détaillées pour gérer les privilèges et les utiliser sur votre système.
|
Lorsqu'un utilisateur se voit affecter directement des privilèges, ces derniers sont appliqués dans chaque shell. Lorsque les privilèges ne lui sont pas directement attribués, l'utilisateur doit ouvrir un shell de profil. Par exemple, lorsque les commandes ayant des privilèges attribués se trouvent dans un profil de droits répertorié dans la liste de profils de droits de l'utilisateur, l'utilisateur doit exécuter la commande dans un shell de profil.
La liste des tâches suivante vous dirige vers les procédures liées à l'affichage des privilèges qui vous ont été attribués.
|
La procédure suivante décrit la procédure d'affichage des noms et définitions de privilèges.
% man privileges Standards, Environments, and Macros privileges(5) NAME privileges - process privilege model ... The defined privileges are: PRIV_CONTRACT_EVENT Allow a process to request reliable delivery of events to an event endpoint. Allow a process to include events in the critical event set term of a template which could be generated in volume by the user. ...
Ce format de privilège est utilisé par les développeurs.
% ppriv -lv | more contract_event Allows a process to request critical events without limitation. Allows a process to request reliable delivery of all events on any event queue. ... win_upgrade_sl Allows a process to set the sensitivity label of a window resource to a sensitivity label that dominates the existing sensitivity label. This privilege is interpreted only if the system is configured with Trusted Extensions.
Ce format de privilège est utilisé pour affecter des privilèges à des utilisateurs et des rôles à l'aide des commandes useradd, roleadd, usermod et rolemod, et des profils de droits à l'aide de la commande profiles.
La procédure suivante montre comment déterminer si des privilèges vous ont été directement attribués.
Attention - L'utilisation inappropriée de privilèges attribués directement peut entraîner des violations involontaires de sécurité. Pour plus de détails, reportez-vous à la section Considérations relatives à la sécurité lors de l'affectation directe d'attributs de sécurité. |
Reportez-vous à la section Procédure de détermination de privilèges sur un processus pour connaître la procédure.
Les privilèges répertoriés dans le jeu effectif sont en vigueur dans l'ensemble de votre session. Si des privilèges vous ont été directement attribués en plus du jeu de base, ceux-ci sont répertoriés dans le jeu effectif.
Exemple 9-30 Détermination des privilèges qui vous sont directement attribués
Si des privilèges vous ont été attribués directement, votre jeu de base contient plus que le jeu de base par défaut. Dans cet exemple, l'utilisateur a toujours accès au privilège proc_clock_highres.
% /usr/bin/whoami jdoe % ppriv -v $$ 1800: pfksh flags = <none> E: file_link_any,…,proc_clock_highres,proc_session I: file_link_any,…,proc_clock_highres,proc_session P: file_link_any,…,proc_clock_highres,proc_session L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time % ppriv -vl proc_clock_highres Allows a process to use high resolution timers.
Exemple 9-31 Détermination des privilèges qui sont directement attribués à un rôle
Les rôles utilisent un shell d'administration ou un shell de profil. Les utilisateurs endossant un rôle peuvent utiliser son shell pour répertorier les privilèges qui lui ont été directement attribués. Dans l'exemple suivant, des privilèges ont été directement attribués au rôle realtime pour gérer les programmes de date et d'heure.
% su - realtime Password: <Type realtime password> $ /usr/bin/whoami realtime $ ppriv -v $$ 1600: pfksh flags = <none> E: file_link_any,…,proc_clock_highres,proc_session,sys_time I: file_link_any,…,proc_clock_highres,proc_session,sys_time P: file_link_any,…,proc_clock_highres,proc_session,sys_time L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time
Lorsque les privilèges ne sont pas attribués directement à un utilisateur, celui-ci a accès aux commandes privilégiées par l'intermédiaire d'un profil de droits. Les commandes d'un profil de droits doivent être exécutées dans un shell de profil.
% profiles Audit Review Console User Suspend To RAM Suspend To Disk Brightness CPU Power Management Network Autoconf Desktop Print Management Network Wifi Info Desktop Removable Media User Basic Solaris User All
profiles -l Audit Review solaris.audit.read /usr/sbin/auditreduce euid=0 /usr/sbin/auditstat euid=0 /usr/sbin/praudit euid=0
Le profil de droits Audit Review (vérification d'audit) vous permet d'exécuter les commandes auditreduce , auditstat et praudit avec l'ID utilisateur effectif de 0 et vous attribue l'autorisation solaris.audit.read.
Exemple 9-32 Détermination des commandes privilégiées d'un rôle
Dans cet exemple, un utilisateur endosse un rôle affecté et répertorie les commandes comprises dans l'un des profils de droits.
% roles devadmin % su - devadmin Password: Type devadmin password $ profiles -l Device Security /usr/bin/kbd uid=0;gid=sys /usr/sbin/add_allocatable euid=0 /usr/sbin/add_drv uid=0 /usr/sbin/devfsadm uid=0 /usr/sbin/eeprom uid=0 /usr/sbin/list_devices euid=0 /usr/sbin/rem_drv uid=0 /usr/sbin/remove_allocatable euid=0 /usr/sbin/strace euid=0 /usr/sbin/update_drv uid=0
Exemple 9-33 Exécution de commandes privilégiées dans votre rôle
Dans l'exemple suivant, le rôle admin peut modifier les autorisations pour le fichier useful.script.
% whoami jdoe % ls -l useful.script -rwxr-xr-- 1 elsee eng 262 Apr 2 10:52 useful.script chgrp admin useful.script chgrp: useful.script: Not owner % su - admin Password: <Type admin password> $ /usr/bin/whoami admin $ chgrp admin useful.script $ chown admin useful.script $ ls -l useful.script -rwxr-xr-- 1 admin admin 262 Apr 2 10:53 useful.script
Le moyen le plus sûr de gérer les privilèges pour les utilisateurs et les rôles est de limiter leur utilisation aux commandes comprises dans un profil de droits. Le profil de droits est ensuite inclus dans un rôle. Le rôle est attribué à un utilisateur. Lorsque l'utilisateur endosse le rôle affecté, les commandes privilégiées peuvent être exécutées dans un shell de profil. Les procédures ci-dessous décrivent l'attribution des privilèges, la suppression des privilèges et le débogage de l'utilisation de privilèges.
La liste des tâches suivante décrit les procédures pour affecter, supprimer et déboguer des privilèges, et pour exécuter un script contenant des commandes privilégiées.
|
Cette procédure présente la détermination des privilèges disponibles pour vos processus. La liste n'inclut pas les privilèges attribués à des commandes particulières.
% ppriv pid $ ppriv -v pid
Numéro du processus. Utilisez le symbole double dollar ($$) pour transmettre le numéro de processus du shell parent à la commande.
Fournit une liste détaillée des noms des privilèges.
Exemple 9-34 Détermination des privilèges dans votre shell actuel
Dans l'exemple ci-dessous, les privilèges dans le processus parent du processus de shell de l'utilisateur sont répertoriés. Dans le deuxième exemple, les noms complets des privilèges sont répertoriés. Les lettres dans la sortie font référence aux jeux de privilèges suivants :
Jeu de privilèges effectif.
Jeu de privilèges héritable.
Jeu de privilèges autorisé.
Jeu de privilèges de limite.
% 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
Exemple 9-35 Détermination des privilèges d'un rôle que vous pouvez prendre
Les rôles utilisent un shell d'administration ou un shell de profil. Vous devez endosser un rôle et utiliser son shell pour répertorier les privilèges qui lui ont été directement attribués. Dans l'exemple suivant, le rôle sysadmin n'a pas de privilèges attribués directement.
% su - sysadmin Password: <Type sysadmin password> $ /usr/bin/whoami sysadmin $ ppriv -v $$ 1400: pfksh flags = <none> E: file_link_any,file_read,file_write,net_access,proc_exec,proc_fork, proc_info,proc_session I: file_link_any,file_read,file_write,net_access,proc_exec,proc_fork, proc_info,proc_session P: file_link_any,file_read,file_write,net_access,proc_exec,proc_fork, proc_info,proc_session L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,win_upgrade_sl
Cette procédure détermine les privilèges nécessaires à l'exécution correcte d'une commande ou d'un processus.
Avant de commencer
La commande ou le processus doit échouer pour que cette procédure de débogage fonctionne.
% ppriv -eD touch /etc/acct/yearly touch[5245]: missing privilege "file_dac_write" (euid = 130, syscall = 224) needed at zfs_zaccess+0x258 touch: cannot create /etc/acct/yearly: Permission denied
% grep 224 /etc/name_to_sysnum creat64 224
Exemple 9-36 Utilisation de la commande truss pour examiner l'utilisation des privilèges
La commande truss peut déboguer l'utilisation des privilèges dans un shell standard. Par exemple, la commande suivante débogue le processus touch défaillant :
% truss -t creat touch /etc/acct/yearly creat64("/etc/acct/yearly", 0666) Err#13 EACCES [file_dac_write] touch: /etc/acct/yearly cannot create
Les interfaces /proc étendues signalent les privilèges manquants après le code d'erreur dans la sortie truss.
Exemple 9-37 Utilisation de la commande ppriv pour l'examen de l'utilisation des privilèges dans un shell de profil
La commande ppriv peut déboguer l'utilisation des privilèges dans un shell de profil. Si vous attribuez un profil de droits à un utilisateur et que ce profil comprend des commandes avec des privilèges, les commandes doivent être saisies dans un shell de profil. Lorsque les commandes privilégiées sont saisies dans un shell standard, les commandes ne sont pas exécutées avec les privilèges.
Dans cet exemple, l'utilisateur jdoe peut endosser le rôle objadmin. Le rôle objadmin comprend le profil de droits Object Access Management (gestion de l'accès aux objets). Ce profil de droits permet au rôle objadmin de modifier les autorisations pour les fichiers dont objadmin n'est pas propriétaire.
Dans l'exemple ci-dessous, jdoe ne parvient pas à changer les autorisations pour le fichier useful.script :
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 zfs_zaccess+0x258 chown: useful.script: Not owner
Lorsque jdoe endosse le rôle objadmin, les autorisations pour le fichier sont modifiées :
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
Exemple 9-38 Modification d'un fichier appartenant à l'utilisateur root
Cet exemple illustre les protections contre l'escalade des privilèges. Pour plus de détails, reportez-vous à la section Prévention de l'escalade de privilèges. Le fichier appartient à l'utilisateur root. Le rôle le moins puissant, objadmin, a besoin de tous les privilèges pour modifier la propriété du fichier, de sorte que l'opération échoue.
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 zfs_zaccess+0x258 chown: system: Not owner
Remarque - Lorsque vous créez un script shell exécutant des commandes requérant des privilèges, le profil de droits approprié doit contenir les commandes avec les privilèges qui leur sont attribués.
Avant de commencer
Vous devez être dans le rôle root.
#!/bin/pfsh # Copyright (c) 2011 by Oracle
% ppriv -eD script-full-path
Pour plus d'informations, reportez-vous à la section Procédure d'obtention des droits d'administration.
Vous avez besoin d'ajouter le script de shell et les commandes dans le script de shell, avec les attributs de sécurité requis au profil de droits. Pour plus d'informations sur les étapes à suivre, reportez-vous à la section Procédure de création ou de modification d'un profil de droits.
Pour exécuter le script, l'utilisateur endosse le rôle et exécute le script dans le shell de profil du rôle.
Pour ajouter un profil de droits à un rôle, reportez-vous à la section Procédure de modification des attributs de sécurité d'un rôle.
Pour affecter le rôle à un utilisateur, reportez-vous à l'Exemple 9-20.