Omitir V�nculos de navegaci�n | |
Salir de la Vista de impresi�n | |
Administración de Oracle Solaris: servicios de seguridad Oracle Solaris 11 Information Library (Español) |
Parte I Descripción general de la seguridad
1. Servicios de seguridad (descripción general)
Parte II Seguridad de sistemas, archivos y dispositivos
2. Gestión de seguridad de equipos (descripción general)
3. Control de acceso a sistemas (tareas)
4. Servicio de análisis de virus (tareas)
5. Control de acceso a dispositivos (tareas)
6. Uso de la herramienta básica de creación de informes de auditoría (tareas)
7. Control de acceso a archivos (tareas)
Parte III Roles, perfiles de derechos y privilegios
8. Uso de roles y privilegios (descripción general)
9. Uso del control de acceso basado en roles (tareas)
Visualización y uso de valores predeterminados de RBAC (tareas)
Visualización y uso de valores predeterminados de RBAC (mapa de tareas)
Cómo visualizar todos los atributos de seguridad definidos
Cómo visualizar los derechos asignados
Cómo obtener derechos administrativos
Personalización de RBAC para su sitio (tareas)
Configuración inicial de RBAC (mapa de tareas)
Cómo planificar la implementación de RBAC
Cómo crear o cambiar un perfil de derechos
Cómo agregar propiedades RBAC a las aplicaciones antiguas
Cómo solucionar problemas de asignación de privilegios y RBAC
Gestión de RBAC (mapa de tareas)
Cómo cambiar la contraseña de un rol
Cómo cambiar los atributos de seguridad de un rol
Cómo cambiar las propiedades RBAC de un usuario
Cómo restringir a un usuario a las aplicaciones de escritorio
Cómo restringir a un administrador a derechos asignados explícitamente
Cómo permitir que un usuario use su propia contraseña para asumir un rol
Cómo cambiar el rol root a un usuario
Determinación de los privilegios (mapa de tareas)
Cómo enumerar los privilegios en el sistema
Cómo determinar los privilegios que se le asignaron directamente
Cómo determinar los comandos con privilegios que puede ejecutar
Gestión de privilegios (mapa de tareas)
Cómo determinar los privilegios de un proceso
Cómo determinar los privilegios que necesita un programa
Cómo ejecutar una secuencia de comandos de shell con comandos con privilegios
10. Atributos de seguridad en Oracle Solaris (referencia)
Parte IV Servicios criptográficos
11. Estructura criptográfica (descripción general)
12. Estructura criptográfica (tareas)
13. Estructura de gestión de claves
Parte V Servicios de autenticación y comunicación segura
14. Autenticación de servicios de red (tareas)
17. Uso de Secure Shell (tareas)
19. Introducción al servicio Kerberos
20. Planificación del servicio Kerberos
21. Configuración del servicio Kerberos (tareas)
22. Mensajes de error y resolución de problemas de Kerberos
23. Administración de las políticas y los principales de Kerberos (tareas)
24. Uso de aplicaciones Kerberos (tareas)
25. El servicio Kerberos (referencia)
Parte VII Auditoría en Oracle Solaris
26. Auditoría (descripción general)
27. Planificación de la auditoría
Los siguientes mapas de tareas hacen referencia a instrucciones paso a paso para la gestión y el uso de privilegios en el sistema.
|
Cuando se asignan privilegios directamente a un usuario, los privilegios están en vigor en cada shell. Cuando no se asignan privilegios directamente a un usuario, el usuario debe abrir un shell de perfil. Por ejemplo, cuando hay comandos con privilegios asignados en un perfil de derechos que está en la lista de perfiles de derechos del usuario, el usuario debe ejecutar el comando en un shell de perfil.
El siguiente mapa de tareas hace referencia a los procedimientos para visualizar los privilegios que se le han asignado.
|
El procedimiento siguiente muestra cómo visualizar los nombres y las definiciones de privilegios.
% 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. ...
Este formato de privilegio es utilizado por desarrolladores.
% 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.
Este formato de privilegio se utiliza para asignar privilegios a usuarios y roles con los comandos useradd, roleadd, usermod y rolemod, y a perfiles de derechos con el comando profiles.
El siguiente procedimiento muestra cómo determinar si se le asignaron privilegios directamente.
Precaución - El uso inadecuado de los privilegios asignados directamente puede generar infracciones de seguridad involuntarias. Para ver una explicación, consulte Consideraciones de seguridad al asignar directamente atributos de seguridad. |
Consulte Cómo determinar los privilegios de un proceso para conocer el procedimiento.
Los privilegios que se muestran en el conjunto vigente están en vigor a lo largo de la sesión. Si se le asignaron privilegios directamente, además del conjunto básico, los privilegios se muestran en el conjunto vigente.
Ejemplo 9-30 Determinación de los privilegios asignados directamente
Si se le asignaron privilegios directamente, su conjunto básico contiene más privilegios que el conjunto básico predeterminado. En este ejemplo, el usuario siempre tiene acceso al privilegio 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.
Ejemplo 9-31 Determinación de los privilegios asignados directamente de un rol
Los roles utilizan un shell administrativo o un shell de perfil. Los usuarios que asumen un rol pueden utilizar el shell del rol para enumerar los privilegios que se asignaron directamente al rol. En el siguiente ejemplo, al rol realtime se le asignaron privilegios directamente para gestionar los programas relacionados con la fecha y hora.
% 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
Cuando no se asignan privilegios directamente a un usuario, el usuario obtiene acceso a comandos con privilegios por medio de un perfil de derechos. Los comandos de un perfil de derechos se deben ejecutar en un shell de perfil.
% 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
El perfil de derechos de revisión de auditoría permite ejecutar los comandos auditreduce, auditstat y praudit con el UID efectivo de 0, y le asigna la autorización solaris.audit.read.
Ejemplo 9-32 Determinación de comandos con privilegios de un rol
En este ejemplo, un usuario asume un rol asignado y enumera los comandos que se incluyen en uno de los perfiles de derechos.
% 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
Ejemplo 9-33 Ejecución de los comandos con privilegios en su rol
En el siguiente ejemplo, el rol admin puede cambiar los permisos en el archivo 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
La forma más segura de gestionar privilegios para usuarios y roles es limitar el uso del privilegio a los comandos en un perfil de derechos. El perfil de derechos se incluye luego en un rol. Se asigna el rol a un usuario. Cuando el usuario asume el rol asignado, los comandos con privilegios están disponibles para su ejecución en un shell de perfil. Los siguientes procedimientos muestran cómo asignar privilegios, eliminar privilegios y depurar el uso de privilegios.
El siguiente mapa de tareas hace referencia a los procedimientos para asignar, eliminar y depurar privilegios, y para ejecutar una secuencia de comandos que contiene comandos con privilegios.
|
Este procedimiento muestra cómo determinar los privilegios que están disponibles para los procesos. La lista no incluye privilegios que se asignaron a comandos específicos.
% ppriv pid $ ppriv -v pid
El número de proceso. Utilice un signo de dólar doble ($$) para transferir el número de proceso del shell principal al comando.
Proporciona una lista detallada de los nombres de privilegios.
Ejemplo 9-34 Determinación de los privilegios en el shell actual
En el siguiente ejemplo, se enumeran los privilegios del proceso principal del shell del usuario. En el segundo ejemplo, se enumeran los nombres completos de los privilegios. Las letras individuales que se visualizan hacen referencia a los siguientes conjuntos de privilegios:
El conjunto vigente de privilegios.
El conjunto heredable de privilegios.
El conjunto permitido de privilegios.
El conjunto límite de privilegios.
% 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
Ejemplo 9-35 Determinación de los privilegios de un rol que puede asumir
Los roles utilizan un shell administrativo o un shell de perfil. Debe asumir un rol y utilizar el shell del rol para enumerar los privilegios que se asignaron directamente al rol. En el siguiente ejemplo, el rol sysadmin no tiene privilegios asignados directamente.
% 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
Este procedimiento determina los privilegios que necesita un comando o proceso para ejecutarse correctamente.
Antes de empezar
El comando o proceso debe fallar para que este procedimiento de depuración funcione.
% 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
Ejemplo 9-36 Utilización del comando truss para examinar el uso de privilegios
El comando truss puede depurar el uso de privilegios en un shell común. Por ejemplo, el siguiente comando depura el proceso con errores touch:
% truss -t creat touch /etc/acct/yearly creat64("/etc/acct/yearly", 0666) Err#13 EACCES [file_dac_write] touch: /etc/acct/yearly cannot create
Las interfaces ampliadas /proc informan el privilegio faltante después del código de error en la salida del comando truss.
Ejemplo 9-37 Utilización del comando ppriv para examinar el uso de privilegios en un shell de perfil
El comando ppriv puede depurar el uso de privilegios en un shell de perfil. Si asigna un perfil de derechos a un usuario y el perfil de derechos incluye comandos con privilegios, los comandos se deben escribir en un shell de perfil. Cuando los comandos con privilegios se escriben en un shell común, los comandos no se ejecutan con privilegios.
En este ejemplo, el usuario jdoe puede asumir el rol objadmin. El rol objadmin incluye el perfil de derechos de gestión de acceso a objetos. Este perfil de derechos permite al rol objadmin cambiar permisos en archivos que no son propiedad de objadmin.
En el fragmento siguiente, jdoe no puede cambiar los permisos en el archivo 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
Cuando jdoe asume el rol objadmin, se modifican los permisos en el archivo:
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
Ejemplo 9-38 Modificación de un archivo que es propiedad del usuario root
Este ejemplo ilustra la protección contra la escalada de privilegios. Para ver una explicación, consulte Cómo evitar la escalada de privilegios. El archivo es propiedad del usuario root. El rol menos poderoso, el rol objadmin, necesita todos los privilegios para cambiar la propiedad del archivo, por lo que la operación no se ejecuta correctamente.
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
Nota - Al crear una secuencia de comandos de shell que ejecuta comandos que requieren privilegios, el perfil de derechos adecuado debe contener los comandos con privilegios asignados a ellos.
Antes de empezar
Debe tener el rol root.
#!/bin/pfsh # Copyright (c) 2011 by Oracle
% ppriv -eD script-full-path
Para obtener más información, consulte Cómo obtener derechos administrativos.
Debe agregar la secuencia de comandos de shell y los comandos en la secuencia de comandos de shell con sus atributos de seguridad necesarios al perfil de derechos. Para conocer los pasos, consulte Cómo crear o cambiar un perfil de derechos.
Para ejecutar la secuencia de comandos, el usuario asume el rol y ejecuta la secuencia de comandos en el shell de perfil del rol.
Para agregar un perfil de derechos a un rol, consulte Cómo cambiar los atributos de seguridad de un rol.
Para asignar el rol a un usuario, consulte el Ejemplo 9-20.