Ignorer les liens de navigation | |
Quitter l'aperu | |
Guide d'administration système : Services de sécurité |
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. Contrôle de l'accès aux périphériques (tâches)
5. Utilisation de l'outil de génération de rapports d'audit de base (tâches)
6. Contrôle de l'accès aux fichiers (tâches)
7. Utilisation d'Automated Security Enhancement Tool (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)
10. Contrôle d'accès basé sur les rôles (référence)
Profil de droits de l'administrateur principal
Profil de droits de l'administrateur système
Profil de droits de l'opérateur
Profil de droits de gestion d'imprimantes
Profil de droits de l'utilisateur Solaris de base
Affichage du contenu des profils de droits
Délégation et nommage des autorisations
Conventions de nommage des autorisations
Exemple de granularité d'autorisation
Pouvoir de délégation dans les autorisations
Bases de données prenant en charge RBAC
Relations avec la base de données RBAC
Commandes pour la gestion de RBAC
Commandes nécessitant des autorisations
Partie IV Services cryptographiques
13. Structure cryptographique Oracle Solaris (présentation)
14. Structure cryptographique Oracle Solaris (tâches)
15. Structure de gestion des clés Oracle Solaris
Partie V Services d'authentification et communication sécurisée
16. Utilisation des services d'authentification (tâches)
19. Utilisation d'Oracle Solaris Secure Shell (tâches)
20. Oracle Solaris Secure Shell (référence)
21. Introduction au service Kerberos
22. Planification du service Kerberos
23. Configuration du service Kerberos (tâches)
24. Messages d'erreur et dépannage de Kerberos
25. Administration des principaux et des stratégies Kerberos (tâches)
26. Utilisation des applications Kerberos (tâches)
27. Service Kerberos (référence)
Partie VII Audit Oracle Solaris
28. Audit Oracle Solaris (présentation)
29. Planification de l'audit Oracle Solaris
30. Gestion de l'audit Oracle Solaris (tâches)
Les quatre bases de données suivantes stockent les données pour les éléments RBAC :
Base de données d'attributs utilisateur étendus (user_attr) : associe des utilisateurs et des rôles à des autorisations, des privilèges et des profils de droits.
Base de données d'attributs de profils de droits (prof_attr) : définit les profils de droits, répertorie les autorisations et mots de passe attribués des profils et identifie le fichier d'aide associé.
Base de données d'attributs d'autorisations(auth_attr) : définit les autorisations et leurs attributs, et identifie le fichier d'aide associé.
Base de données d'attributs d'exécution (exec_attr) : identifie les commandes portant des attributs de sécurité attribués à des profils de droits spécifiques.
La base de données policy.conf contient des autorisations, des privilèges et des profils de droits appliqués à tous les utilisateurs. Pour plus d'informations, reportez-vous à la section Fichier policy.conf.
Chaque base de données RBAC utilise une syntaxe key=value pour stocker les attributs. Cette méthode tient compte des possibilités d'extension future des bases de données. La méthode permet également à un système de continuer à fonctionner lorsqu'il rencontre un mot-clé inconnu de sa stratégie. Le contenu de key=value lie les fichiers. Les entrées suivantes liées à partir des quatre bases de données illustrent la façon dont les bases de données RBAC fonctionnent ensemble.
Exemple 10-1 Affichage des connexions de base de données RBAC
Dans l'exemple suivant, l'utilisateur jdoe obtient les capacités du profil de droits de gestion des systèmes de fichiers par l'attribution du rôle filemgr.
L'utilisateur jdoe se voit attribuer le rôle filemgr dans l'entrée utilisateur jdoe de la base de données user_attr.
# user_attr - user definition jdoe::::type=normal;roles=filemgr
Le rôle filemgr se voit attribuer le profil de droits de gestion des systèmes de fichiers dans l'entrée du rôle dans la base de données user_attr.
# user_attr - role definition filemgr::::profiles=File System Management;type=role
L'utilisateur et le rôle sont uniquement définis dans les fichiers passwd et shadow sur le système local ou dans les bases de données équivalentes distribués dans un service DNS.
Le profil de droits de gestion de systèmes de fichiers est défini dans la base de données prof_attr. Cette base de données attribue également trois jeux d'autorisations à l'entrée de gestion de systèmes de fichiers.
# prof_attr - rights profile definitions and assigned authorizations File System Management:::Manage, mount, share file systems: help=RtFileSysMngmnt.html; auths=solaris.admin.fsmgr.*,solaris.admin.diskmgr.*,solaris.admin.volmgr.*
Les autorisations sont définies dans la base de données auth_attr.
# auth_attr - authorization definitions solaris.admin.fsmgr.:::Mounts and Shares::help=AuthFsmgrHeader.html solaris.admin.fsmgr.read:::View Mounts and Shares::help=AuthFsmgrRead.html solaris.admin.fsmgr.write:::Mount and Share Files::help=AuthFsmgrWrite.html
Le profil de droits de gestion de systèmes de fichiers se voit affecter des commandes avec des attributs de sécurité dans la base de données exec_attr.
# exec_attr - rights profile names with secured commands File System Management:suser:cmd:::/usr/sbin/mount:uid=0 File System Management:suser:cmd:::/usr/sbin/dfshares:euid=0 … File System Management:solaris:cmd:::/usr/sbin/mount:privs=sys_mount …
Le champ d'application du service de noms des bases de données RBAC s'applique uniquement à l'hôte local. Elle peut également inclure tous les hôtes qui sont pris en charge par un service de nommage, tel que NIS, NIS+ ou LDAP. L'affectation de la priorité à un service de nommage donné est définie pour chacune des bases de données dans le fichier /etc/nsswitch.conf.
auth_attr (entrée) : définit la priorité d'un service de nommage pour la base de données auth_attr.
passwd (entrée) : définit la priorité d'un service de nommage pour la base de données user_attr.
prof_attr (entrée) : définit la priorité d'un service de nommage pour la base de données prof_attr. Définit également la priorité d'un service de nommage pour la base de données exec_attr.
Par exemple, si une commande dotée d'attributs de sécurité est attribuée à un profil de droits existant dans les deux services de nommage, seule l'entrée du premier service est utilisée.
La base de données user_attr contient des informations sur l'utilisateur et le rôle qui complètent les bases de données passwd et shadow. La base de données user_attr contient des attributs utilisateur étendus tels que les autorisations, les profils de droits, les privilèges et les rôles attribués. Les champs dans la base de données user_attr sont séparés par deux points, comme suit :
user:qualifier:res1:res2:attr
Les champs ont les significations suivantes :
Nom de l'utilisateur ou du rôle comme indiqué dans la base de données passwd.
Ces champs sont réservés pour une utilisation ultérieure.
Liste optionnelle de paires clé-valeur séparées par des points-virgules (;) qui décrit les attributs de sécurité à appliquer lorsque l'utilisateur exécute des commandes. Les quatre clés correctes sont type, auths, profiles et roles.
Le mot-clé type peut être défini sur normal, si ce compte est pour un utilisateur standard. Le type est role si ce compte est pour un rôle.
Le mot-clé auths indique une liste de noms d'autorisations séparés par des virgules qui sont choisis parmi des noms définis dans la base de données auth_attr. Les noms d'autorisations peuvent inclure l'astérisque (*) comme caractère générique. Par exemple, solaris.device.* signifie toutes les autorisations des périphériques Oracle Solaris.
Le mot-clé profiles indique une liste de noms de profils de droits ordonnés, séparés par des virgules et issus de la base de données prof_attr. L'ordre des profils de droits fonctionne de façon similaire aux chemins de recherche UNIX. Le premier profil de la liste qui contient la commande à exécuter définit les attributs de sécurité (le cas échéant) devant être appliqués à la commande.
Le mot-clé roles spécifie une liste de noms de rôles séparés par des virgules. Notez que les rôles sont définis dans la même base de données user_attr. Les rôles sont indiqués en définissant la valeur type sur role. Les rôles ne peuvent pas être attribués à d'autres rôles.
L'exemple suivant montre comment le rôle d'opérateur est défini dans une base de données user_attr standard. L'exemple illustre la façon dont le rôle est attribué à l'utilisateur jdoe. Les rôles et les utilisateurs sont différenciés par le mot-clé type.
% grep operator /etc/user_attr jdoe::::type=normal;roles=operator operator::::profiles=Operator;type=role
Toutes les autorisations sont stockées dans la base de données auth_attr. Les autorisations peuvent être affectées à des utilisateurs, des rôles ou aux profils de droits. La meilleure méthode consiste à placer les autorisations dans un profil de droits, afin d'inclure le profil dans la liste des profils d'un rôle, puis d'affecter le rôle à un utilisateur.
Les champs dans la base de données auth_attr sont séparés par deux points, comme suit :
authname:res1:res2:short_desc:long_desc:attr
Les champs ont les significations suivantes :
Chaîne de caractère unique utilisée pour identifier l'autorisation au format prefix.[suffix]. Autorisations pour qu'Oracle Solaris utilise solaris comme préfixe. Toutes les autres autorisations doivent utiliser un préfixe qui commence par le nom de domaine Internet dans l'ordre inverse de l'organisation créant l'autorisation (par exemple, com.xyzcompany). Le suffixe indique ce qui est autorisé, c'est-à-dire généralement la zone fonctionnelle et l'opération.
Lorsque authname se compose d'un préfixe et d'une zone fonctionnelle et se termine par un point, authname sert d'en-tête à utiliser par les applications dans leurs interfaces graphiques. Un nom d'autorisation authname en deux parties n'est pas une véritable autorisation. Le nom d'autorisation authname de solaris.printmgr. est un exemple d'en-tête.
Quand authname se termine par le mot “grant”, authname sert d'autorisation d'attribution de droits. Cette autorisation permet à l'utilisateur de déléguer à d'autres utilisateurs des autorisations avec le même préfixe et la même zone fonctionnelle. authname de solaris.printmgr.grant est un exemple d'autorisation d'attribution de droits. solaris.printmgr.grant donne à l'utilisateur le droit de déléguer à d'autres utilisateurs des autorisations telles que solaris.printmgr.admin et solaris.printmgr.nobanner.
Réservé à une utilisation ultérieure.
Nom court pour l'autorisation. Ce nom court est adapté pour un affichage dans des interfaces utilisateur, comme dans une liste déroulante d'une interface graphique.
Description longue. Ce champ identifie l'objectif de l'autorisation, les applications dans lesquelles l'autorisation est utilisée et le type d'utilisateur pouvant utiliser l'autorisation. La description longue peut être affichée dans le texte de l'aide d'une application.
Liste optionnelle de paires clé-valeur séparées par des points-virgules (;) décrivant les attributs d'une autorisation. Zéro ou plusieurs clés peuvent être spécifiées.
Le mot-clé help identifie un fichier d'aide au format HTML. Les fichiers d'aide sont accessibles à partir du fichier index.html dans le répertoire /usr/lib/help/auths/locale/C.
L'exemple suivant montre une base de données auth_attr avec certaines valeurs types :
% grep printer /etc/security/auth_attr solaris.admin.printer.:::Printer Information::help=AuthPrinterHeader.html solaris.admin.printer.delete:::Delete Printer Information::help=AuthPrinterDelete.html solaris.admin.printer.modify:::Update Printer Information::help=AuthPrinterModify.html solaris.admin.printer.read:::View Printer Information::help=AuthPrinterRead.html
Notez que solaris.admin.printer. est défini comme un en-tête, car le nom de l'autorisation se termine par un point (.). Les en-têtes sont utilisés par les interfaces graphiques afin d'organiser les familles d'autorisations.
La base de données prof_attr contient le nom, la description, l'emplacement du fichier d'aide, les privilèges et les autorisations qui sont affectés à des profils de droits. Les commandes et les attributs de sécurité qui sont affectés à des profils de droits sont stockés dans la base de données exec_attr. Pour plus d'informations, reportez-vous à la section Base de données exec_attr. Les champs dans la base de données prof_attr sont séparés par deux points, comme suit :
profname:res1:res2:desc:attr
Les champs ont les significations suivantes :
Nom du profil de droits. Les noms des profils de droits sont sensibles à la casse. Ce nom est également utilisé par la base de données user_attr pour indiquer les profils attribués à des rôles et à des utilisateurs.
Réservé à une utilisation ultérieure.
Description longue. Ce champ doit expliquer l'objectif du profil de droits, y compris le type d'utilisateur susceptible d'être intéressé par l'utilisation du profil. La description longue doit être adaptée pour son affichage dans le texte de l'aide d'une application.
Une liste optionnelle de paires clé-valeur séparées par des points-virgules (;) qui décrit les attributs de sécurité à appliquer à l'objet lors de l'exécution. Zéro ou plusieurs clés peuvent être spécifiées. Les clés correctes sont help. profiles et auths.
Le mot-clé help identifie un fichier d'aide au format HTML. Les fichiers d'aide sont accessibles à partir du fichier index.html dans le répertoire /usr/lib/help/profiles/locale/C.
Le mot-clé profiles spécifie une liste de profils de droits séparés par des virgules. Ces profils sont appelés des profils de droits supplémentaires.
Le mot-clé auths spécifie une liste de noms d'autorisations séparés par des virgules qui sont choisis à partir des noms définis dans la base de données auth_attr. Les noms d'autorisations peuvent être spécifiés avec l'astérisque (*) comme caractère générique.
Le mot-clé privs spécifie une liste de privilèges séparés par des virgules. Ces privilèges sont en vigueur pour toutes les commandes d'un shell de profil.
L'exemple suivant illustre deux entrées de la base de données prof_attr standard. Notez que le profil de droits de gestion d'imprimantes est un profil de droits supplémentaires du profil de droits Opérateur. L'exemple est renvoyé à des fins d'affichage.
% grep 'Printer Management' /etc/security/prof_attr Printer Management::: Name of rights profile Manage printers, daemons, spooling: Description help=RtPrntAdmin.html; Help file auths=solaris.admin.printer.read, Authorizations solaris.admin.printer.modify,solaris.admin.printer.delete ... Operator::: Name of rights profile Can perform simple administrative tasks: Description profiles=Printer Management, Supplementary rights profiles Media Backup,All; help=RtOperator.html Help file
La base de données exec_attr définit les commandes nécessitant des attributs de sécurité pour la réussite de l'opération. Les commandes font partie d'un profil de droits. Une commande avec ses attributs de sécurité peut être exécutée par les rôles ou utilisateurs auxquels le profil est attribué.
Les champs dans la base de données exec_attr sont séparés par deux points, comme suit :
name:policy:type:res1:res2:id:attr
Les champs ont les significations suivantes.
Nom du profil de droits. Les noms des profils de droits sont sensibles à la casse. Le nom fait référence à un profil dans la base de données prof_attr.
Stratégie de sécurité associée à cette entrée. Actuellement, suser et solaris sont les entrées valides. La stratégie solaris reconnaît les privilèges, contrairement à la stratégie suser.
Type d'entité spécifié. Actuellement, le seul le type d'entité valide est cmd (commande).
Réservé à une utilisation ultérieure.
Chaîne qui identifie l'entité. Les commandes doivent avoir le chemin d'accès complet ou un chemin d'accès avec un caractère générique (*). Pour spécifier des arguments, écrivez un script avec les arguments et dirigez l'id vers le script.
Liste optionnelle de paires clé-valeur séparées par des points-virgules (;) décrivant les attributs de sécurité à appliquer à l'entité au moment de l'exécution. Zéro ou plusieurs clés peuvent être spécifiées. La liste de mots-clés corrects dépend de la stratégie mise en application.
Pour la stratégie suser, les quatre clés correctes sont euid, uid, egid et gid.
Les mots-clés euid et uid contiennent un seul nom d'utilisateur ou un ID utilisateur numérique (UID). Les commandes qui sont désignées par euid s'exécutent avec l'UID fourni, qui est similaire à la définition du bit setuid sur un fichier exécutable. Les commandes qui sont désignées avec uid s'exécutent à la fois avec l'UID réel et l'UID effectif.
Les mots-clés egid et gid contiennent un seul nom de groupe ou ID de groupe numérique (GID). Les commandes désignées par egid s'exécutent avec l'UID fourni, qui est similaire à la définition du bit setgid sur un fichier exécutable. Les commandes désignées avec gid s'exécutent à la fois avec le GID réel et le GID effectif.
Pour la stratégie solaris, le mot-clé valide est privs. La valeur est constituée d'une liste de privilèges séparés par des virgules.
L'exemple suivant présente quelques valeurs typiques d'une base de données exec_attr :
% grep 'File System Management' /etc/security/exec_attr File System Management:suser:cmd:::/usr/sbin/ff:euid=0 File System Management:solaris:cmd:::/usr/sbin/mount:privs=sys_mount …
Le fichier policy.conf fournit un moyen d'accorder des profils de droits, des autorisations et des privilèges spécifiques à tous les utilisateurs. Les entrées correspondantes dans le fichier sont constitués de paires key=value :
AUTHS_GRANTED=authorizations : fait référence à une ou plusieurs autorisations.
PROFS_GRANTED=rights profiles : fait référence à un ou plusieurs profils de droits.
PRIV_DEFAULT=privileges : fait référence à un ou plusieurs privilèges.
PRIV_LIMIT=privileges : fait référence à tous les privilèges.
L'exemple suivant illustre certaines valeurs typiques issues de la base de données policy.conf :
# grep AUTHS /etc/security/policy AUTHS_GRANTED=solaris.device.cdrw # grep PROFS /etc/security/policy PROFS_GRANTED=Basic Solaris User # grep PRIV /etc/security/policy #PRIV_DEFAULT=basic #PRIV_LIMIT=all
Pour plus d'informations sur les privilèges, reportez-vous à la section Privilèges (présentation).