Protección de los usuarios y los procesos en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Julio de 2014
 
 

Restricción de los derechos de usuario

Los ejemplos de esta sección limitan los derechos de los usuarios comunes o eliminan algunos derechos administrativos de un administrador. Se muestra cómo modificar usuarios, roles y perfiles de derechos. Para obtener información sobre los derechos, consulte Chapter 1, Sobre el uso de los derechos para controlar los usuarios y los procesos.

Ejemplo 3-21  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. El usuario no puede establecer enlaces físicos a directorios o desvincular directorios incluso después de ejecutar el comando su.

# usermod -K 'limitpriv=all,!sys_linkdir' jdoe
# userattr limitpriv jdoe
all,!sys_linkdir
Ejemplo 3-22  Eliminación de un privilegio básico de un perfil de derechos

En el siguiente ejemplo, tras una exhaustiva prueba, el administrador de seguridad elimina otro privilegio básico del perfil de derechos de usuarios Sun Ray. Cuando el administrador creó el perfil en Example 5–6, el administrador eliminó un privilegio del conjunto límite. Esta vez, el administrador elimina dos privilegios básicos. Los usuarios a los que se asigna este perfil no pueden examinar ningún proceso fuera de su sesión actual y no pueden agregar otra sesión.

# profiles -p "Sun Ray Users"
profiles:Sun Ray Users> set defaultpriv="basic,!proc_session,!proc_info"
profiles:Sun Ray Users> end
profiles:Sun Ray Users> exit
Ejemplo 3-23  Eliminación de un privilegio básico propio

En el siguiente ejemplo, un usuario común modifica .bash_profile para eliminar el privilegio básico proc_info. La salida de programas, como psy prstat contienen solamente los procesos propios del usuario, que pueden contener resaltar la información útil.

##  .bash_profile
## Remove proc_info privilege from my shell
##
ppriv -s EI-proc_info $$

La línea pprivelimina el privilegio proc_info del conjunto efectivo y heredable de privilegios del usuario (EI-) en el proceso de shell actual ($$).

En la siguiente salida prstat, los totales se reducen de 74 a tres procesos:

## With all basic privileges
Total: 74 processes, 527 lwps, load averages: 0.01, 0.00, 0.00

## With proc_info removed from the effective and inheritable set
Total: 3 processes, 3 lwps, load averages: 0.00, 0.00, 0.00
Ejemplo 3-24  Modificación de un sistema para limitar los derechos disponibles a sus usuarios

En este ejemplo, el administrador crea un sistema que sólo es útil para administrar la red. El administrador elimina el perfil de derechos de usuario básico de Solaris y cualquier autorización del archivo policy.conf. El perfil de derechos de usuario de consola no se elimina. Las líneas afectadas en el archivo policy.conf resultante son las siguientes:

...
##AUTHS_GRANTED=
##AUTH_PROFS_GRANTED=
##PROFS_GRANTED=Basic Solaris User
CONSOLE_USER=Console User
...

Sólo un usuario que ha sido asignado de forma explícita autorizaciones, comandos o perfiles de derechos puede usar este sistema. Después de iniciar sesión, el usuario autorizado puede realizar tareas administrativas. Si el usuario autorizado se encuentra en la consola del sistema, el usuario tiene los derechos del usuario de consola.

Ejemplo 3-25  Restricción de un administrador a los derechos asignados explícitamente

    Puede restringir un rol o un usuario a un número limitado de acciones administrativas de dos formas.

  • Asigne el perfil de derechos de detención como el último perfil en la lista de perfiles del usuario.

    El perfil de derechos de detención es la forma más sencilla de crear un shell restringido. Las autorizaciones y los perfiles de derechos en el archivo policy.conf no están asignados al usuario o rol.

  • Puede modificar el archivo policy.conf en un sistema y requerir que el rol o el usuario utilicen ese sistema para tareas administrativas. Consulte Example 3–24.

El siguiente comando limita el rol auditrev a realizar sólo revisiones de auditoría.

# rolemod -P "Audit Review,Stop" auditrev

Debido a que el rol auditrev no tiene el perfil de derechos de usuario de consola, el auditor no puede cerrar el sistema. Debido a que este rol no tiene la autorización solaris.device.cdrw, el auditor no puede leer o escribir en la unidad de CD-ROM. Debido a que este rol no tiene el perfil de usuario de Solaris básico, no se pueden ejecutar comandos de ese perfil en este rol. Debido a que el perfil de derechos All (todo) no está asignado, el comando ls no se ejecutará. El rol utiliza el explorador de archivos para seleccionar los archivos de auditoría para revisar.

Para obtener más información, consulte Orden de búsqueda para derechos asignados y Referencia de perfiles de derechos.

Ejemplo 3-26  Impedir que las aplicaciones seleccionadas reproduzcan procesos nuevos

En este ejemplo, el administrador crea un perfil de derechos para las aplicaciones que no requieren los subprocesos para el correcto funcionamiento. Para mayor comodidad, el administrador crea un directorio para almacenar estos ejecutables. Cuando se agregan nuevas aplicaciones que no necesitan subprocesos, los ejecutables se pueden agregar a este directorio. O bien, si el ejecutable es necesario para estar en un directorio específico, el administrador puede establecer un enlace a este desde /opt/local/noex/app-executable.

# profiles -p "Prevent App Subprocess"
profiles:Prevent App Subprocess> set desc="Keep apps from execing processes"
profiles:Prevent App Subprocess> add cmd=/opt/local/noex/mkmod
... Subprocess:mkmod> set limitprivs=all,!proc_exec
... Subprocess:mkmod> end
... Subprocess> add cmd=/opt/local/noex/gomap
... Subprocess:gomap> set limitprivs=all,!proc_exec
... Subprocess:gomap> end
... Subprocess> commit
... Subprocess> exit
Ejemplo 3-27  Impedir que los invitados reproduzcan subprocesos del editor

En este ejemplo, el administrador impide que los usuarios creen subshells de uno o más editores al eliminar el privilegio básico proc_exec del comando del editor.

  1. El administrador crea un perfil de derechos que elimina proc_exec del conjunto límite de privilegios del editor de vim.

    # profiles -p -S ldap "Editor Restrictions"
    profiles:Editor Restrictions> set desc="Site Editor Restrictions"
    ... Restrictions> add cmd=/usr/bin/vim
    ... Restrictions:vim> set limitprivs=all,!proc_exec
    ... Restrictions:vim> end
    ... Restrictions> commit
    ... Restrictions> exit
  2. El administrador agrega otros editores populares para el perfil de derechos.

    # profiles -p "Editor Restrictions"
    profiles:Editor Restrictions> add cmd=/usr/bin/gedit
    ... Restrictions:gedit> set limitprivs=all,!proc_exec
    ... Restrictions:gedit> end
    ... Restrictions> add cmd=/usr/bin/gconf-editor
    ... Restrictions:gconf-editor> set limitprivs=all,!proc_exec
    ... Restrictions:gconf-editor> end
    ... Restrictions> add cmd=/usr/bin/ed
    ... Restrictions:ed> set limitprivs=all,!proc_exec
    ... Restrictions:ed> end
    ... Restrictions> add cmd=/usr/bin/ex
    ... Restrictions:ex> set limitprivs=all,!proc_exec
    ... Restrictions:ex> end
    ... Restrictions> add cmd=/usr/bin/edit
    ... Restrictions:edit> set limitprivs=all,!proc_exec
    ... Restrictions:edit> end
    ... Restrictions> commit
    ... Restrictions> exit
  3. El administrador revisa las entradas del perfil de derechos para comprobar que no tengan errores, como errores tipográficos, omisiones o repeticiones.

    # profiles -p "Editor Restrictions" info
    Found profile in files repository.
    name=Editor Restrictions
    desc=Site Editor Restrictions
    cmd=/usr/bin/vim
    limitprivs=all,!proc_exec
    ...
  4. El administrador asigna el perfil de derechos de restricciones del editor al usuario guest.

    # usermod -K profiles+="Editor Restrictions" guest

    Mediante +, el administrador agrega este perfil de derechos a los perfiles de derechos actuales de la cuenta.

  5. Para verificar que los privilegios del editor sean limitados, el administrador abre el editor en una ventana independiente y examina los privilegios en el proceso del editor.

    # ppriv -S $(pgrep vi)
    2805:   vi .bash_profile
    flags = PRIV_PFEXEC User is running a profile shell
            E: basic,!proc_info proc_info is removed from basic set
            I: basic,!proc_info
            P: basic,!proc_info
            L: all,!proc_exec proc_exec is removed from limit set
Ejemplo 3-28  Asignación del perfil de derechos de restricciones del editor a todos los usuarios

En este ejemplo, el administrador agrega el perfil de derechos de restricciones del editor para el archivo policy.conf. El administrador garantiza que este archivo se distribuye a todos los sistemas públicos en los que los invitados pueden iniciar sesión.

# cd /etc/security; cp policy.conf policy.conf.orig
# pfedit /etc/security/policy.conf
...
AUTHS_GRANTED=
AUTH_PROFS_GRANTED=
#PROFS_GRANTED=Basic Solaris User
PROFS_GRANTED=Editor Restrictions,Basic Solaris User

El usuario administrador de la seguridad ha asignado un shell de perfil a cada usuario. Para los motivos y el procedimiento, consulte Asignación de derechos a usuarios.