Ignorer les liens de navigation | |
Quitter l'aperu | |
Administration d'Oracle Solaris 11.1 : Services de sécurité Oracle Solaris 11.1 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. Vérification de l'intégrité des fichiers à l'aide de BART (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)
Affichage de tous les attributs de sécurité définis
Affichage des droits qui vous sont affectés
Personnalisation RBAC pour votre site (tâches)
Configuration initiale RBAC (liste des tâches)
Planification de votre implémentation RBAC
Création d'un profil de droits
Clonage et modification d'un profil de droits système
Ajout de propriétés RBAC aux anciennes applications
Dépannage de RBAC et de l'affectation de privilèges
Gestion de RBAC (liste des tâches)
Modification du mot de passe d'un rôle
Modification des attributs de sécurité d'un rôle
Réorganisation des attributs de sécurité affectés
Limitation d'un administrateur aux droits affectés de manière explicite
Octroi à un utilisateur de l'autorisation d'utiliser son propre mot de passe pour prendre un rôle
Modification du rôle root en utilisateur
Utilisation des privilèges (tâches)
Création d'une liste des privilèges sur le système
Détermination des privilèges qui vous sont attribués directement
Détermination des commandes privilégiées que vous pouvez exécuter
Détermination de privilèges sur un processus
Détermination des privilèges requis par un programme
Application d'une stratégie de privilège étendue à un port
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. Utilisation de modules d'authentification enfichables
15. Utilisation de Secure Shell
17. Utilisation de l'authentification simple et de la couche de sécurité
18. Authentification des services réseau (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
Des droits sont affectés aux utilisateurs par défaut. Les droits pour tous les utilisateurs d'un système sont affectés dans le fichier /etc/security/policy.conf.
Lors de l'installation d'Oracle Solaris, votre système est configuré avec des droits d'utilisateurs et des droits de processus. Sans autre configuration, utilisez la liste des tâches ci-dessous pour afficher et utiliser RBAC.
|
Utilisez les commandes suivantes pour répertorier toutes les autorisations et tous les profils de droits et les commandes avec les attributs de sécurité sur le système. Pour répertorier tous les privilèges définis, reportez-vous à la section Création d'une liste des privilèges sur le système.
% auths info solaris.account.activate solaris.account.setpolicy solaris.admin.edit ... solaris.zone.login solaris.zone.manage
% getent auth_attr | more solaris.:::All Solaris Authorizations::help=AllSolAuthsHeader.html solaris.account.:::Account Management::help=AccountHeader.html ... solaris.zone.login:::Zone Login::help=ZoneLogin.html solaris.zone.manage:::Zone Deployment::help=ZoneManage.html
% profiles -a Console User CUPS Administration Desktop Removable Media User ... VSCAN Management WUSB Management
% getent prof_attr | more All:::Execute any command as the user or role:help=RtAll.html Audit Configuration:::Configure Solaris Audit:auths=solaris.smf.value.audit; help=RtAuditCfg.html ... Zone Management:::Zones Virtual Application Environment Administration: help=RtZoneMngmnt.html Zone Security:::Zones Virtual Application Environment Security:auths=solaris.zone.*, solaris.auth.delegate;help=RtZoneSecurity.html ...
% getent exec_attr | more All:solaris:cmd:::*: Audit Configuration:solaris:cmd:::/usr/sbin/auditconfig:privs=sys_audit ... Zone Security:solaris:cmd:::/usr/sbin/txzonemgr:uid=0 Zone Security:solaris:cmd:::/usr/sbin/zonecfg:uid=0 ...
Utilisez les commandes suivantes pour afficher vos affectations RBAC. Pour afficher tous les droits qui peuvent être affectés, reportez-vous à la section Affichage de tous les attributs de sécurité définis.
% profiles Basic Solaris User All
Les profils de droits précédents sont affectés à tous les utilisateurs par défaut. Si vous êtes l'utilisateur initial, vous possédez une liste plus longue.
% profiles Initial user System Administrator Audit Review ... CPU Power Management Basic Solaris User All
% auths solaris.device.cdrw,solaris.device.mount.removable,solaris.mail.mailq solaris.network.autoconf.read,solaris.admin.wusb.read solaris.smf.manage.vbiosd,solaris.smf.value.vbiosd
Les autorisations sont incluses dans les profils de droits qui sont assignés à tous les utilisateurs par défaut.
% roles root
Ce rôle est affecté à l'utilisateur initial par défaut. Aucun rôle indique qu'aucun rôle ne vous est affecté.
% ppriv $$ 1234: /bin/csh flags = <none> E: basic I: basic P: basic L: all
Le jeu de privilèges de base est affecté par défaut à tous les utilisateurs. Le jeu limite par défaut est constitué de tous les privilèges.
% ppriv -vl basic file_link_any Allows a process to create hardlinks to files owned by a uid different from the process' effective uid. file_read Allows a process to read objects in the filesystem. file_write Allows a process to modify objects in the filesystem. net_access Allows a process to open a TCP, UDP, SDP or SCTP network endpoint. proc_exec Allows a process to call execve(). proc_fork Allows a process to call fork1()/forkall()/vfork() proc_info Allows a process to examine the status of processes other than those it can send signals to. Processes which cannot be examined cannot be seen in /proc and appear not to exist. proc_session Allows a process to send signals or trace processes outside its session.
% profiles -l Basic Solaris User ... /usr/bin/cdrecord.bin privs=file_dac_read,sys_devices, proc_lock_memory,proc_priocntl,net_privaddr /usr/bin/readcd.bin privs=file_dac_read,sys_devices,net_privaddr /usr/bin/cdda2wav.bin privs=file_dac_read,sys_devices, proc_priocntl,net_privaddr All *
Les profils de droit d'un utilisateur peuvent comprendre des commandes qui s'exécutent avec des privilèges particuliers. Le profil d'utilisateur de base Solaris comprend des commandes permettant de lire et d'écrire sur des CD-ROM.
Exemple 9-1 Liste des autorisations d'un utilisateur
% auths username solaris.device.cdrw,solaris.device.mount.removable,solaris.mail.mailq
Exemple 9-2 Liste des profils de droits d'un utilisateur ou d'un rôle
La commande suivante répertorie les profils de droits d'un utilisateur spécifique.
% profiles jdoe jdoe: Basic Solaris User All
La commande suivante répertorie les profils de droits d'un rôle cryptomgt.
% profiles cryptomgt cryptomgt: Crypto Management Basic Solaris User All
La commande suivante répertorie les profils de droits du rôle root :
% profiles root root: All Console User Network Wifi Info Desktop Removable Media User Suspend To RAM Suspend To Disk Brightness CPU Power Management Network Autoconf User Basic Solaris User
Exemple 9-3 Liste des rôles affectés à un utilisateur
La commande suivante répertorie les rôles affectés à un utilisateur spécifique.
% roles jdoe root
Exemple 9-4 Liste des privilèges d'un utilisateur sur des commandes spécifiques
La commande suivante répertorie les commandes privilégiées dans les profils de droits d'un utilisateur standard.
% profiles -l jdoe jdoe: Basic Solaris User ... /usr/bin/cdda2wav.bin privs=file_dac_read,sys_devices, proc_priocntl,net_privaddr /usr/bin/cdrecord.bin privs=file_dac_read,sys_devices, proc_lock_memory,proc_priocntl,net_privaddr /usr/bin/readcd.bin privs=file_dac_read,sys_devices,net_privaddr ...
Avant de commencer
Le rôle doit déjà vous être affecté. Par défaut, seul le rôle root existe.
% roles Comma-separated list of role names is displayed
% su - rolename Password: <Type rolename password> $
La commande su - rolename change le shell en shell de profil pour le rôle. Un shell de profil reconnaît les attributs de sécurité, tels que les autorisations, les privilèges et les bits ID définis.
$ /usr/bin/whoami rolename
Vous pouvez maintenant effectuer des tâches de ce rôle dans cette fenêtre de terminal.
Pour obtenir un exemple de sortie, reportez-vous à la section Affichage des droits qui vous sont affectés.
$ profiles -l verbose rights profiles output $ auths authorizations output
Exemple 9-5 Prise du rôle root
Dans l'exemple suivant, l'utilisateur initial prend le rôle root et répertorie les privilèges dans le shell du rôle.
% roles root % su - root Password: <Type root password> # Prompt changes to root prompt # ppriv $$ 1200: pfksh flags = <none> E: all I: basic P: all L: all
Pour plus d'informations sur les privilèges, reportez-vous à la section Privilèges (présentation).
Les propriétés de l'utilisateur comprennent le shell de connexion, les profils de droits et les rôles. La méthode la plus sûre pour accorder des capacités d'administration à un utilisateur est de lui attribuer un rôle. 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é.
Avant de commencer
Dans la configuration par défaut, vous devez prendre le rôle root pour modifier les attributs de sécurité d'un utilisateur.
Après avoir configuré RBAC pour votre site, vous disposez d'autres possibilités. Pour modifier la plupart des attributs de sécurité d'un utilisateur, vous devez vous connecter en tant qu'administrateur disposant du profil de droits User Security (sécurité des utilisateurs). Pour affecter des indicateurs d'audit ou modifier le mot de passe d'un rôle, vous devez prendre le rôle root. Pour modifier d'autres attributs utilisateur, vous devez vous connecter en tant qu'administrateur disposant du profil de droits User Management (gestion des utilisateurs). Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d'administration.
Cette commande permet de modifier les attributs d'un utilisateur défini dans le service de noms local ou le LDAP. Les arguments RBAC de cette commande sont similaires aux arguments des commandes useradd et rolemod, comme décrit dans la page de manuel user_attr(4) et l'Étape 1 in Modification des attributs de sécurité d'un utilisateur.
Les arguments RBAC de la commande sont les suivants :
# usermod [-e expire] [-f inactive] [-s shell] [-m] [-A authorization-list] \ [-P profile] [-R role] [-K key=value] [-S repository] login
Date d'expiration du nom de connexion utilisateur. Cette option permet de créer des utilisateurs temporaires.
Nombre maximum de jours autorisés entre les connexions utilisateur. Si la valeur inactive est dépassée, l'utilisateur ne peut se connecter. La valeur par défaut est 0, aucune date d'expiration.
Crée un répertoire d'accueil pour rolename à l'emplacement par défaut.
Shell de connexion pour rolename. Ce shell doit être un shell de profil, tel que pfbash. Pour obtenir une liste des shells de profil, reportez-vous à la page de manuel pfexec(1).
Astuce - Vous pouvez également répertorier les shells de profil dans le répertoire /usr/binsur votre système, comme dans ls /usr/bin/pf*sh.
Une ou plusieurs autorisations séparées par des virgules. Pour obtenir la liste des autorisations disponibles, reportez-vous à la section Affichage de tous les attributs de sécurité définis.
Un ou plusieurs profils séparés par des virgules. Pour obtenir la liste des profils de droits, reportez-vous à la section Affichage de tous les attributs de sécurité définis.
Un ou plusieurs rôles séparés par des virgules. Pour créer des rôles, reportez-vous à la section Création d'un rôle.
Paire key=value. Cette option peut être répétée. Les clés suivantes sont disponibles : audit_flags, auths, profiles, project, defaultpriv, limitpriv, lock_after_retries, pam_policy et roleauth. Pour obtenir des informations sur les clés, leurs valeurs et les autorisations nécessaires pour définir celles-ci, reportez-vous la page de manuel user_attr(4).
L'un de files ou ldap. La valeur par défaut correspond à des fichiers locaux.
Nom d'utilisateur.
Pour affecter des autorisations à un utilisateur, reportez-vous à l'Exemple 9-7.
Pour affecter un profil de droits à un utilisateur, reportez-vous à l'Exemple 9-6.
Pour affecter un rôle existant à un utilisateur, reportez-vous à la section Attribution de rôle. Dans la configuration par défaut, vous pouvez affecter le rôle root à un utilisateur existant.
Pour modifier les privilèges d'un utilisateur, reportez-vous à l'Exemple 9-13 et l'Exemple 9-9.
Exemple 9-6 Création d'un utilisateur pouvant gérer DHCP
Dans cet exemple, l'administrateur de sécurité crée un utilisateur dans LDAP. Au moment de la connexion, l'utilisateur jdoe-dhcp peut gérer DHCP.
# useradd -P "DHCP Management" -s /usr/bin/pfbash -S ldap jdoe-dhcp
Dans la mesure où pfbash est affecté à l'utilisateur comme shell de connexion, les attributs de sécurité dans le profil de droits DHCP Management (gestion DHCP) sont disponibles pour l'utilisateur dans son shell par défaut.
Exemple 9-7 Affectation d'autorisations directement à un utilisateur
Dans cet exemple, l'administrateur de sécurité créer un utilisateur local qui peut contrôler la luminosité de l'écran.
# useradd -c "Screened JDoe, local" -s /usr/bin/pfbash \ -A solaris.system.power.brightness jdoe-scr
Cette autorisation est ajoutée aux affectations d'autorisation existantes de l'utilisateur.
Exemple 9-8 Suppression de privilèges du jeu limite d'un utilisateur
Dans l'exemple suivant, toutes les sessions dérivées de la connexion initiale de jdoe ne peuvent pas utiliser le privilège sys_linkdir. C'est-à-dire que l'utilisateur ne peut pas créer de liens physiques vers les répertoires, ni rompre un lien vers des répertoires et ce, même après avoir exécuté la commande su.
$ usermod -K 'limitpriv=all,!sys_linkdir' jdoe $ userattr limitpriv jdoe all,!sys_linkdir
Exemple 9-9 Affectation de privilèges directement à un utilisateur
Dans cet exemple, l'administrateur de sécurité confie à l'utilisateur jdoe un privilège très spécifique qui affecte le temps système.
$ usermod -K defaultpriv='basic,proc_clock_highres' jdoe
Les valeurs pour le mot-clé defaultpriv remplacent les valeurs existantes. Par conséquent, pour que l'utilisateur conserve les privilèges basic, la valeur basic est spécifiée. Dans la configuration par défaut, tous les utilisateurs disposent de privilèges de base. Pour obtenir la liste des privilèges, reportez-vous à l'Étape 4.
Dans le rôle root, l'utilisateur initial dispose de tous les droits d'administration.
L'Étape 1 décrit l'administration du système si des droits d'administration vous ont été affectés. L'Étape 2 décrit comment les comptes non-root peuvent modifier un fichier système.
Avant de commencer
Vous disposez de droits qui ne sont pas affectés aux utilisateurs standard. Si vous n'êtes pas connecté en tant que root, vous devez obtenir un rôle, un profil de droits d'administration ou des autorisations ou privilèges spécifiques.
Ouvrez une fenêtre de terminal.
% su - Password: Type the root password #
Remarque - Cette méthode fonctionne aussi bien lorsque root est un utilisateur que lorsqu'il est un rôle. L'invite avec le signe dièse (#) indique que vous êtes maintenant l'utilisateur root.
Dans l'exemple suivant, vous prenez un rôle de configuration d'audit. Ce rôle inclut le profil de droits Audit Configuration (configuration d'audit).
% su - audadmin Password: Type the audadmin password $
Le shell dans lequel vous avez tapé cette commande est désormais dans le shell de profil. Dans ce shell, vous pouvez exécuter la commande auditconfig. Pour en savoir plus sur les shells de profil, reportez-vous à la section Shells de profil et RBAC.
Astuce - Suivez les étapes décrites à la section Affichage des droits qui vous sont affectés pour afficher les capacités de votre rôle.
Par exemple, le jeu de commandes ci-après vous permet de visualiser les valeurs de présélection d'audit et la stratégie d'audit dans le shell pfbash :
% pfbash $ auditconfig -getflags active user default audit flags = ua,ap,lo(0x45000,0x45000) configured user default audit flags = ua,ap,lo(0x45000,0x45000) $ auditconfig -getpolicy configured audit policies = cnt active audit policies = cnt
Exécutez la commande pfexec avec le nom d'une commande privilégiée de votre profil de droits. Par exemple, la commande suivante vous permet d'afficher les indicateurs d'audit présélectionnés de l'utilisateur :
% pfexec auditconfig -getflags active user default audit flags = ua,ap,lo(0x45000,0x45000) configured user default audit flags = ua,ap,lo(0x45000,0x45000)
Les mêmes limitations de privilèges s'appliquent à pfexec comme à pfbash. Cependant, pour exécuter une autre commande privilégiée, vous devez saisir pfexec une nouvelle fois avant de taper la commande privilégiée.
% pfexec auditconfig -getpolicy configured audit policies = cnt active audit policies = cnt
Exécutez la commande sudo avec le nom d'une commande d'administration qui vous est affectée dans le fichier sudoers. Pour plus d'informations, reportez-vous aux pages de manuel sudo(1M) et sudoers(4).
Si vous n'êtes pas connecté en tant qu'utilisateur root avec l'ID utilisateur 0, par défaut, vous ne pouvez pas modifier les fichiers système. Toutefois, si l'autorisation solaris.admin.edit/ path-to-system-file vous est affectée, vous pouvez modifier system-file . Par exemple, si l'autorisation solaris.admin.edit/etc/security/audit_warn vous est affectée, vous pouvez modifier le fichier audit_warn.
$ pfedit /etc/security/audit_warn
La commande utilise la valeur de $EDITOR pour déterminer l'éditeur de texte. Pour plus d'informations, reportez-vous à la page de manuel pfedit(1M). La commande pfedit est exécutée de façon utile par le rôle root , si l'audit est configuré pour auditer les événements AUE_PFEXEC.
Exemple 9-10 Mise en cache de l'authentification pour faciliter l'utilisation des rôles
Dans cet exemple, l'administrateur configure un rôle pour gérer la configuration d'audit et facilite son utilisation en mettant en cache l'authentification de l'utilisateur. Tout d'abord, l'administrateur crée et affecte le rôle.
# roleadd -K roleauth=user -P "Audit Configuration" audadmin # usermod -R +audadmin jdoe
Quand jdoe utilise l'option -c lors du changement de rôle, un mot de passe est requis avant que la sortie auditconfig ne s'affiche :
% su - audadmin -c auditconfig option Password: auditconfig output
Si l'authentification n'est pas mise en cache, et jdoe réexécute immédiatement la commande, une invite de mot de passe s'affiche.
L'administrateur crée un fichier dans le répertoire pam.d pour contenir une pile su qui permet la mise en cache de l'authentification, de sorte que le mot de passe est requis initialement, mais ne l'est plus par la suite, après qu'un certain laps de temps s'est écoulé.
# pfedit /etc/pam.d/su ## Cache authentication for switched user # auth required pam_unix_cred.so.1 auth sufficient pam_tty_tickets.so.1 auth requisite pam_authtok_get.so.1 auth required pam_dhkeys.so.1 auth required pam_unix_auth.so.1
Après avoir créé le fichier, l'administrateur vérifie les fautes de frappe, omissions ou répétitions dans les entrées.
L'administrateur doit fournir la pile su précédente entière. La module pam_tty_tickets.so.1 met en oeuvre le cache. Pour plus d'informations sur PAM, reportez-vous à la page de manuel pam.conf(4) et au Chapitre 14, Utilisation de modules d'authentification enfichables.
Une fois que l'administrateur a ajouté le fichier PAM su et réinitialisé le système, tous les rôles, y compris le rôle audadmin, sont invités une seule fois à saisir un mot de passe lors de l'exécution d'une série de commandes.
% su - audadmin -c auditconfig option Password: auditconfig output % su - audadmin -c auditconfig option auditconfig output ...