Omitir Vínculos de navegación | |
Salir de la Vista de impresión | |
Administración de Oracle Solaris 11.1: servicios de seguridad Oracle Solaris 11.1 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. Verificación de la integridad de archivos mediante el uso de BART (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
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 un perfil de derechos
Cómo clonar y modificar un perfil de derechos del sistema
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 volver a ordenar atributos de seguridad asignados
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
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
Cómo determinar los privilegios de un proceso
Cómo determinar los privilegios que necesita un programa
Cómo aplicar una política de privilegio extendida a un puerto
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. Uso de módulos de autenticación conectables
17. Uso de autenticación simple y capa de seguridad
18. Autenticación de servicios de red (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
De manera predeterminada, se asignan derechos a los usuarios. Los derechos para todos los usuarios de un sistema se asignan en el archivo /etc/security/policy.conf.
En la instalación de Oracle Solaris, su sistema está configurado con derechos de usuario y derechos de proceso. Sin ninguna configuración adicional, utilice el siguiente mapa de tareas para visualizar y utilizar RBAC.
|
Utilice los siguientes comandos para enumerar las autorizaciones, los perfiles, los derechos y los comandos con atributos de seguridad en el sistema. Para ver una lista de todos los privilegios definidos, consulte Cómo enumerar los privilegios en el sistema.
% 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 ...
Utilice los siguientes comandos para ver las asignaciones de RBAC. Para ver todos los derechos que se pueden asignar, consulte Cómo visualizar todos los atributos de seguridad definidos.
% profiles Basic Solaris User All
Estos perfiles de derechos anteriores se asignan a todos los usuarios de manera predeterminada. Si es el usuario inicial, tiene una lista más grande.
% 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
Estas autorizaciones se incluyen en los perfiles de derechos que se asignan a todos los usuarios de manera predeterminada.
% roles root
Este rol se asigna al usuario inicial de manera predeterminada. No roles indica que no se le ha asignado un rol.
% ppriv $$ 1234: /bin/csh flags = <none> E: basic I: basic P: basic L: all
A cada usuario se le asigna el conjunto de privilegios básico de manera predeterminada. El conjunto límite predeterminado incluye todos los privilegios.
% 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 *
Los perfiles de derechos de un usuario pueden incluir comandos que se ejecutan con privilegios particulares. El perfil de usuario básico de Solaris incluye los comandos que permiten a los usuarios leer y escribir en CD-ROM.
Ejemplo 9-1 Enumeración de autorizaciones de un usuario
% auths username solaris.device.cdrw,solaris.device.mount.removable,solaris.mail.mailq
Ejemplo 9-2 Enumeración de los perfiles de derechos de un rol o un usuario
El siguiente comando muestra los perfiles de derechos de un usuario concreto.
% profiles jdoe jdoe: Basic Solaris User All
El siguiente comando muestra los perfiles de derechos del rol cryptomgt.
% profiles cryptomgt cryptomgt: Crypto Management Basic Solaris User All
El siguiente comando muestra los perfiles de derechos del rol 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
Ejemplo 9-3 Enumeración de los roles asignados de un usuario
El siguiente comando muestra los roles asignados de un usuario concreto.
% roles jdoe root
Ejemplo 9-4 Enumeración de los privilegios de un usuario sobre comandos específicos
El siguiente comando muestra los comandos con privilegios en los perfiles de derechos de un usuario normal.
% 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 ...
Antes de empezar
Ya se debe tener asignado el rol. De manera predeterminada, solo existe el rol root.
% roles Comma-separated list of role names is displayed
% su - rolename Password: <Type rolename password> $
El comando su - rolename cambia el shell a un shell de perfil para el rol. Un shell de perfil reconoce los atributos de seguridad, como autorizaciones, privilegios y bits de ID de conjunto.
$ /usr/bin/whoami rolename
Ahora puede realizar tareas del rol en esta ventana de terminal.
Para ver una salida de ejemplo, consulte Cómo visualizar los derechos asignados.
$ profiles -l verbose rights profiles output $ auths authorizations output
Ejemplo 9-5 Asunción del rol root
En el ejemplo siguiente, el usuario inicial asume el rol root y enumera los privilegios en el shell del rol.
% 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
Para obtener información sobre los privilegios, consulte Privilegios (descripción general).
Las propiedades de usuario incluyen shell de inicio, perfiles de derechos y roles. El método más seguro para otorgar capacidades administrativas a un usuario es asignar un rol al usuario. Para ver una explicación, consulte Consideraciones de seguridad al asignar directamente atributos de seguridad.
Antes de empezar
En la configuración predeterminada, debe asumir el rol root para modificar los atributos de seguridad del usuario.
Después de configurar RBAC para su sitio, tiene otras opciones. Para cambiar la mayoría de los atributos de seguridad de un usuario, incluso la contraseña, debe convertirse en un administrador con el perfil de derechos de seguridad de usuario asignado. Para asignar indicadores de auditoría o cambiar la contraseña de un rol, debe asumir el rol root. Para cambiar otros atributos de usuario, debe convertirse en un administrador con el perfil de derechos de gestión de usuarios asignado. Para obtener más información, consulte Cómo usar los derechos administrativos que tiene asignados.
Este comando modifica los atributos de un usuario que está definido en el servicio de nombres local o el servicio de nombres LDAP. Los argumentos RBAC para este comando son similares a los argumentos para los comandos useradd y rolemod, como se describe en la página del comando man user_attr(4) y se muestra en el Paso 1 en Cómo cambiar los atributos de seguridad de un usuario.
Los argumentos de RBAC para el comando son los siguientes:
# usermod [-e expire] [-f inactive] [-s shell] [-m] [-A authorization-list] \ [-P profile] [-R role] [-K key=value] [-S repository] login
Fecha en la que caduca un inicio de sesión de usuario. Utilice esta opción para crear usuarios temporales.
Número máximo de días que se permite entre inicios de sesión de usuario. Cuando el valor inactive se supera, el usuario no puede iniciar sesión. El valor predeterminado es 0, es decir, no hay ninguna fecha de caducidad.
Crea un directorio principal para rolename en la ubicación predeterminada.
Shell de inicio de sesión para rolename. Este shell debe ser un shell de perfil, como pfbash. Para obtener una lista de shells de perfiles, consulte la página del comando man pfexec(1).
Consejo - También puede ver la lista de shells de perfiles del directorio /usr/bin en su sistema, como en ls /usr/bin/pf*sh.
Una o más autorizaciones separadas por comas. Para ver la lista de autorizaciones disponibles, consulte Cómo visualizar todos los atributos de seguridad definidos.
Uno o más perfiles de derechos separados por comas. Para ver la lista de perfiles de derechos, consulte Cómo visualizar todos los atributos de seguridad definidos.
Uno o más roles separados por comas. Para crear roles, consulte Cómo crear un rol.
Un par key=value. Esta opción se puede repetir. Las siguientes claves están disponibles: audit_flags, auths, profiles, project, defaultpriv, limitpriv, lock_after_retries, pam_policy y roleauth. Para obtener información sobre las claves, sus valores y las autorizaciones que son necesarias para definir los valores, consulte la página del comando man user_attr(4).
Uno de files o ldap. Los archivos locales son el valor predeterminado.
Nombre de usuario.
Para asignar autorizaciones a un usuario, consulte el Ejemplo 9-7.
Para asignar un perfil de derechos a un usuario, consulte el Ejemplo 9-6.
Para asignar un rol existente a un usuario, consulte Cómo asignar un rol. En la configuración predeterminada, puede asignar el rol root a un usuario existente.
Para modificar los privilegios de un usuario, consulte el Ejemplo 9-13 y el Ejemplo 9-9.
Ejemplo 9-6 Creación de un usuario que puede gestionar DHCP
En este ejemplo, el administrador de seguridad crea un usuario en LDAP. Al iniciar sesión, el usuario jdoe-dhcp puede gestionar DHCP.
# useradd -P "DHCP Management" -s /usr/bin/pfbash -S ldap jdoe-dhcp
Debido a que el usuario tiene asignado pfbash como el shell de inicio de sesión, los atributos de seguridad en el perfil de derechos de gestión de DHCP están disponibles para el usuario en el shell predeterminado del usuario.
Ejemplo 9-7 Asignación de autorizaciones directamente a un usuario
En este ejemplo, el administrador de seguridad crea un usuario local que puede controlar el brillo de la pantalla.
# useradd -c "Screened JDoe, local" -s /usr/bin/pfbash \ -A solaris.system.power.brightness jdoe-scr
Esta autorización se agrega a las asignaciones existentes del usuario.
Ejemplo 9-8 Eliminación de privilegios del conjunto límite de un usuario
En el siguiente ejemplo, a todas las sesiones que se originan a partir del inicio de sesión inicial de jdoe se les impide utilizar el privilegio sys_linkdir. Es decir, el usuario no puede establecer enlaces físicos a directorios ni anular el enlace a directorios, incluso después de ejecutar el comando su.
$ usermod -K 'limitpriv=all,!sys_linkdir' jdoe $ userattr limitpriv jdoe all,!sys_linkdir
Ejemplo 9-9 Asignación de privilegios directamente a un usuario
En este ejemplo, el administrador de seguridad confía al usuario jdoe un privilegio muy específico que afecta la hora del sistema.
$ usermod -K defaultpriv='basic,proc_clock_highres' jdoe
Los valores de la palabra clave defaultpriv reemplazan los valores existentes. Por lo tanto, para que el usuario conserve los privilegios basic, se especifica el valor basic. En la configuración predeterminada, todos los usuarios tienen privilegios básicos. Para ver la lista de privilegios básicos, consulte el Paso 4.
En el rol root, el usuario inicial tiene todos los derechos administrativos.
El Paso 1 muestra cómo administrar el sistema si tiene derechos administrativos asignados. El Paso 2 muestra cómo cuentas que no son root pueden editar un archivo del sistema.
Antes de empezar
Se le han asignado derechos que no se asignan a usuarios comunes. Si no es el usuario root, se le debe asignar un rol, un perfil de derechos administrativos o privilegios específicos o autorizaciones.
Abra una ventana de terminal.
% su - Password: Type the root password #
Nota - Este método funciona si root es un usuario o un rol. El signo de almohadilla (#) indica que ahora es un usuario root.
En el siguiente ejemplo, asume un rol de configuración de auditoría. Este rol incluye el perfil de derechos de configuración de auditoría.
% su - audadmin Password: Type the audadmin password $
El shell en el que escribió este comando se encuentra en un shell de perfil. En este shell, puede ejecutar el comando auditconfig. Para obtener más información sobre shells de perfiles, consulte Shells de perfil y RBAC.
Consejo - Utilice los pasos en Cómo visualizar los derechos asignados para ver las capacidades de su rol.
Por ejemplo, el siguiente conjunto de comandos permite ver los valores de preselección de auditoría y la política de auditoría en el 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
Ejecute el comando pfexec con el nombre de un comando con privilegios desde su perfil de derechos. Por ejemplo, el siguiente comando permite ver los indicadores de auditoría preseleccionados del usuario:
% pfexec auditconfig -getflags active user default audit flags = ua,ap,lo(0x45000,0x45000) configured user default audit flags = ua,ap,lo(0x45000,0x45000)
Las mismas limitaciones de privilegios se aplican a pfexec y pfbash. Sin embargo, para ejecutar otro comando con privilegios, debe escribir pfexec de nuevo antes de escribir el comando con privilegios.
% pfexec auditconfig -getpolicy configured audit policies = cnt active audit policies = cnt
Ejecute el comando sudo con el nombre de un comando administrativo que se le asigna en el archivo sudoers. Para obtener más información, consulte las páginas del comando man sudo(1M) y sudoers(4).
Si no es un usuario root con UID de 0, no puede editar archivos del sistema de manera predeterminada. Sin embargo, si se le asigna la autorización solaris.admin.edit/path-to-system-file, puede editar system-file. Por ejemplo, si se le asigna la autorización solaris.admin.edit/etc/security/audit_warn, puede editar el archivo audit_warn.
$ pfedit /etc/security/audit_warn
El comando usa el valor de $EDITOR para determinar el editor de texto. Para obtener más información, consulte la página de comando man pfedit(1M). El comando pfedit es ejecutado de manera útil por el rol root, si la auditoría está configurada para auditar eventos AUE_PFEXEC.
Ejemplo 9-10 Almacenamiento en la caché de la autenticación para facilitar el uso del rol
En este ejemplo, el administrador configura un rol para gestionar la red, pero proporciona facilidad de uso mediante el almacenamiento en la caché de la autenticación del usuario. En primer lugar, el administrador crea y asigna el rol.
# roleadd -K roleauth=user -P "Audit Configuration" audadmin # usermod -R +audadmin jdoe
Cuando jdoe utiliza la opción -c al cambiar al rol, se necesita una contraseña antes de que la salida de auditconfig se muestre:
% su - audadmin -c auditconfig option Password: auditconfig output
Si la autenticación no se almacena en la caché y jdoe ejecuta el comando de nuevo inmediatamente, una solicitud de contraseña aparece.
El administrador crea un archivo en el directorio pam.d para que contenga una pila su que permite la autenticación, de manera que una contraseña se solicite de manera inicial, pero que no se vuelva a solicitar hasta después de un tiempo.
# 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
Después de crear el archivo, el administrador comprueba que las entradas no tengan errores ortográficos, omisiones ni repeticiones.
El administrador debe proporcionar la pila su anterior completa. El módulo pam_tty_tickets.so.1 implementa la caché. Para obtener más información sobre PAM, consulte la página del comando man pam.conf(4) y el Capítulo 14, Uso de módulos de autenticación conectables.
Después de que el administrador agrega el archivo PAM su y reinicia el sistema, a todos los roles, incluido el rol audadmin, se les solicitará una vez una contraseña al ejecutar un grupo de comandos.
% su - audadmin -c auditconfig option Password: auditconfig output % su - audadmin -c auditconfig option auditconfig output ...