Protección de sistemas y dispositivos conectados en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Septiembre de 2014
 
 

Asignación de dispositivos

La asignación de dispositivos puede proteger su sitio contra pérdida de datos, virus informáticos y otras infracciones de seguridad. A diferencia de la política de dispositivos, la asignación de dispositivos es opcional. La asignación de dispositivos utiliza autorizaciones para limitar el acceso a los dispositivos asignables.

Componentes de la asignación de dispositivos

    Los componentes del mecanismo de asignación de dispositivos son los siguientes:

  • El servicio svc:/system/device/allocate. Para obtener más información, consulte la página del comando man smf(5) y las páginas del comando man para los comandos de asignación de dispositivos.

  • Los comandos allocate, deallocate, dminfo y list_devices. Para obtener más información, consulte Comandos de asignación de dispositivos.

  • Los perfiles de derechos de seguridad de dispositivos y de gestión de dispositivos. Para obtener más información, consulte Perfiles de derechos de asignación de dispositivos.

  • Secuencias de comandos device-clean para cada dispositivo asignable.

    Estos comandos y las secuencias de comandos utilizan los siguientes archivos locales para implementar la asignación de dispositivos:

  • El archivo /etc/security/device_allocate. Para obtener más información, consulte la página del comando man device_allocate(4).

  • El archivo /etc/security/device_maps. Para obtener más información, consulte la página del comando man device_maps(4).

  • Un archivo de bloqueo, en el directorio /etc/security/dev, para cada dispositivo asignable.

  • Los atributos modificados de los archivos de bloqueo que están asociados con cada dispositivo asignable.

Servicio de asignación de dispositivos

El servicio svc:/system/device/allocate controla la asignación de dispositivos. Este servicio está desactivado de manera predeterminada.

Perfiles de derechos de asignación de dispositivos

Los perfiles de derechos de seguridad de dispositivos y de gestión de dispositivos son necesarios para la gestión de dispositivos y la asignación de dispositivos.

    Estos perfiles de derechos incluyen las siguientes las autorizaciones:

  • solaris.device.allocate: necesaria para asignar un dispositivo

  • solaris.device.cdrw: necesaria para leer y escribir un CD-ROM

  • solaris.device.config: necesaria para configurar los atributos de un dispositivo

  • solaris.device.mount.alloptions.fixed: necesaria para especificar opciones de montaje cuando se monta un dispositivo fijo

  • solaris.device.mount.alloptions.removable: necesaria para especificar opciones de montaje cuando se monta un dispositivo extraíble

  • solaris.device.mount.fixed: necesaria para montar un dispositivo fijo

  • solaris.device.mount.removable: necesaria para montar un dispositivo extraíble

  • solaris.device.revoke: necesaria para revocar o recuperar un dispositivo

Comandos de asignación de dispositivos

Con opciones de mayúsculas, los comandos allocate, deallocate y list_devices son comandos administrativos. De lo contrario, estos comandos son comandos de usuario. En la siguiente tabla, se muestran los comandos de asignación de dispositivos.

Tabla 4-4  Comandos de asignación de dispositivos
Página del comando man
Objetivo
Reserva un dispositivo asignable para que lo utilice un usuario.
De manera predeterminada, un usuario debe tener la autorización solaris.device.allocate para poder asignar un dispositivo. Puede modificar el archivo device_allocate para que no requiera autorización del usuario. De esa manera, cualquier usuario del sistema puede solicitar la asignación del dispositivo para su uso.
Elimina la reserva de asignación de un dispositivo.
Busca un dispositivo asignable por tipo de dispositivo, nombre del dispositivo y nombre de ruta completa.
Muestra el estado de los dispositivos asignables.
Muestra todos los archivos especiales del dispositivo que están asociados con los dispositivos enumerados en el archivo device_maps.
Con la opción –U, se muestran los dispositivos que se pueden asignar o que están asignados al ID de usuario especificado. Esta opción permite comprobar cuáles dispositivos son asignables y cuáles están asignados a otro usuario. Debe tener la autorización solaris.device.revoke.
Autorizaciones para los comandos de asignación

De manera predeterminada, los usuarios deben tener la autorización solaris.device.allocate para reservar un dispositivo asignable. Para crear un perfil de derechos a fin de incluir la autorización solaris.device.allocate, consulte Cómo autorizar a usuarios para que asignen un dispositivo.

Los administradores deben tener la autorización solaris.device.revoke para cambiar el estado de asignación de cualquier dispositivo. Por ejemplo, la opción –U de los comandos allocate y list_devices, y la opción –F del comando deallocate requieren la autorización solaris.device.revoke.

Para obtener más información, consulte Comandos seleccionados que requieren autorizaciones de Protección de los usuarios y los procesos en Oracle Solaris 11.2 .

Estado de error de asignación

Un dispositivo está en un estado de error de asignación cuando el comando deallocate no puede realizar la desasignación o cuando el comando allocate no puede realizar la asignación. Cuando un dispositivo asignable se encuentra en un estado de error de asignación, se debe desasignar de manera forzada. Sólo un usuario o un rol con el perfil de derechos de gestión de dispositivos o de seguridad de dispositivos puede manejar un estado de error de asignación.

El comando deallocate con la opción –F fuerza la desasignación. O bien, puede usar allocate -U para asignar el dispositivo a un usuario. Una vez que el dispositivo está asignado, puede investigar los mensajes de error que aparecen. Después de corregir los problemas con el dispositivo, puede desasignarlo de manera forzada.

Archivo device_maps

Los mapas de dispositivos se crean al configurar la asignación de dispositivos. El archivo /etc/security/device_maps incluye los nombres de los dispositivos, los tipos de dispositivos y los archivos especiales de los dispositivos que están asociados con cada dispositivo asignable.

El archivo device_maps define las asignaciones de archivos especiales para cada dispositivo, que en muchos casos no son intuitivas. Este archivo permite que los programas descubran qué archivos especiales de dispositivos se deben asignar a determinados dispositivos. Puede utilizar el comando dminfo, por ejemplo, para recuperar el nombre del dispositivo, el tipo de dispositivo y los archivos especiales del dispositivo que se deben especificar al configurar un dispositivo asignable. El comando dminfo utiliza el archivo device_maps para comunicar esta información.

Cada dispositivo se representa con una entrada de una línea con el siguiente formato:

device-name:device-type:device-list
Ejemplo 4-11  Ejemplo de entrada device_maps

El siguiente ejemplo muestra una entrada en un archivo device_maps.

audio0:\
audio:\
/dev/audio /dev/audioctl /dev/dsp /dev/dsp0 /dev/mixer0 /dev/sound/0 
/dev/sound/0ctl /dev/sound/audio810\:0mixer /dev/sound/audio810\:0dsp 
/dev/sound/audio810\:0 /dev/sound/audio810\:0ctl

Las líneas en el archivo device_maps pueden finalizar con una barra diagonal inversa (\) para continuar una entrada en la línea siguiente. También se pueden incluir comentarios. Un signo de almohadilla (#) indica que hay comentarios en todo el texto subsiguiente hasta la siguiente línea nueva que no está inmediatamente precedida por una barra diagonal inversa. En todos los campos, se permiten espacios iniciales y finales. Los campos se definen del modo siguiente:

device-name

Especifica el nombre del dispositivo. Para obtener una lista de los nombres actuales de dispositivos, consulte Cómo ver la información de asignación de un dispositivo.

device-type

Especifica el tipo de dispositivo genérico. El nombre genérico es el nombre para la clase de dispositivos, como st, fd, rmdisk o audio. El campo device-type agrupa lógicamente dispositivos relacionados.

device-list

Muestra los archivos especiales del dispositivo que están asociados con el dispositivo físico. device-list debe contener todos los archivos especiales que permiten el acceso a un dispositivo determinado. Si la lista está incompleta, un usuario malintencionado podrá obtener o modificar información privada. Las entradas válidas para el campo device-list reflejan los archivos del dispositivo que están ubicados en el directorio /dev.

Archivo device_allocate

Puede modificar el archivo /etc/security/device_allocate para cambiar dispositivos de asignables a no asignables, o para agregar nuevos dispositivos.

Una entrada en el archivo device_allocate no significa que el dispositivo es asignable, a menos que la entrada indique específicamente que el dispositivo es asignable.

En el archivo device_allocate, cada dispositivo se representa con una entrada de una línea con el siguiente formato:

device-name;device-type;reserved;reserved;auths;device-exec

El siguiente ejemplo muestra un archivo device_allocate de ejemplo.

st0;st;;;;/etc/security/lib/st_clean
fd0;fd;;;;/etc/security/lib/fd_clean
sr0;sr;;;;/etc/security/lib/sr_clean
audio;audio;;;*;/etc/security/lib/audio_clean

Observe el asterisco (*) en el quinto campo de la entrada del dispositivo audio.

Las líneas en el archivo device_allocate pueden finalizar con una barra diagonal inversa (\) para continuar una entrada en la línea siguiente. También se pueden incluir comentarios. Un signo de almohadilla (#) indica que hay comentarios en todo el texto subsiguiente hasta la siguiente línea nueva que no está inmediatamente precedida por una barra diagonal inversa. En todos los campos, se permiten espacios iniciales y finales. Los campos se definen del modo siguiente:

device-name

Especifica el nombre del dispositivo. Para obtener una lista de los nombres actuales de dispositivos, consulte Cómo ver la información de asignación de un dispositivo.

device-type

Especifica el tipo de dispositivo genérico. El nombre genérico es el nombre para la clase de dispositivos, como st, fd y sr. El campo device-type agrupa lógicamente dispositivos relacionados. Cuando permita que un dispositivo pueda asignarse, recupere el nombre del dispositivo del campo tipo_dispositivo en el archivo device_maps.

reserved

Oracle reserva para uso futuro los dos campos marcados como reserved.

auths

Especifica si el dispositivo es asignable. Un asterisco (*) en este campo indica que el dispositivo no es asignable. Una cadena de autorización, o un campo vacío, indica que el dispositivo es asignable. Por ejemplo, la cadena solaris.device.allocate en el campo auths indica que se necesita la autorización solaris.device.allocate para poder asignar el dispositivo. Un símbolo arroba (@) en este archivo indica que cualquier usuario puede asignar el dispositivo.

device-exec

Proporciona el nombre de ruta de una secuencia de comandos que se debe invocar para tratamiento especial, como limpieza y protección contra la reutilización del objeto durante el proceso de asignación. La secuencia de comandos device-exec se ejecuta cuando el comando deallocate se ejecuta en el dispositivo.

Por ejemplo, la entrada siguiente para el dispositivo sr0 indica que un usuario que cuente con la autorización solaris.device.allocate puede asignar la unidad de CD-ROM:

sr0;sr;reserved;reserved;solaris.device.allocate;/etc/security/lib/sr_clean

Puede decidir aceptar los servicios predeterminados y sus características definidas. Después de instalar un dispositivo nuevo, puede modificar las entradas. Los dispositivos que requieren asignación antes de su uso deben definirse en los archivos device_allocate y device_maps del sistema de ese dispositivo. En la actualidad, las unidades de cinta de cartucho, las unidades de disquete, las unidades de CD-ROM, los dispositivos de medios extraíbles y los chips de audio se consideran asignables. Estos tipos de dispositivos tienen secuencias de comandos device-clean.


Notas -  Las unidades de cinta Xylogics o Archive también utilizan la secuencia de comandos st_clean proporcionada para los dispositivos SCSI. Debe crear sus propias secuencias de comandos device-clean para otros dispositivos, como terminales, tabletas gráficas y otros dispositivos asignables. La secuencia de comandos debe cumplir con los requisitos de reutilización de objetos para ese tipo de dispositivo.

Secuencias de comandos device-clean

La asignación de dispositivos cumple parte de lo que se conoce como requisito de reutilización de objetos. Las secuencias de comandos device-clean abordan el requisito de seguridad que establece que todos los datos utilizables deben depurarse de un dispositivo físico antes de volver a utilizarlo. Los datos se limpian antes de que otro usuario asigne el dispositivo. De manera predeterminada, las unidades de cinta de cartucho, las unidades de disquete, las unidades de CD-ROM y los dispositivos de audio requieren secuencias de comandos device-clean, las cuales Oracle Solaris proporciona. Esta sección describe qué acciones realizan las secuencias de comandos device-clean.

Secuencia de comandos device-clean para cintas

    La secuencia de comandos st_clean admite tres dispositivos de cinta:

  • Cinta SCSI de ¼ de pulgada

  • Cinta Archive de ¼ de pulgada

  • Cinta de carrete abierto de ½ pulgada

La secuencia de comandos st_clean usa la opción –rewoffl para el comando mt para limpiar el dispositivo. Para obtener más información, consulte la página del comando man mt(1). Si la secuencia de comandos se ejecuta durante el inicio del sistema, la secuencia de comandos consulta el dispositivo para determinar si está en línea. Si el dispositivo está en línea, la secuencia de comandos determina si el dispositivo tiene medios. Los dispositivos de cinta de ¼ de pulgada que tienen medios se colocan en el estado de error de asignación. El estado de error de asignación fuerza al administrador a limpiar manualmente el dispositivo.

Durante el funcionamiento normal del sistema, cuando el comando deallocate se ejecuta en modo interactivo, se le indica al usuario que extraiga los medios. La desasignación se retrasa hasta que los medios se hayan extraído del dispositivo.

Secuencias de comandos device-clean para disquetes y unidades de CD-ROM

    Las siguientes secuencias de comandos device-clean se proporcionan para disquetes y unidades de CD-ROM:

  • Secuencia de comandos fd_clean: secuencia de comandos device-clean para disquetes.

  • Secuencia de comandos sr_clean: secuencia de comandos device-clean para unidades de CD-ROM.

Las secuencias de comandos utilizan el comando eject para extraer los medios de la unidad. Si el comando eject falla, el dispositivo se coloca en el estado de error de asignación. Para obtener más información, consulte la página del comando man eject(1).

Secuencia de comandos device-clean para audio

Los dispositivos de audio se limpian con una secuencia de comandos audio_clean. La secuencia de comandos realiza una llamada del sistema ioctl AUDIO_GETINFO para leer el dispositivo. A continuación, la secuencia de comandos realiza una llamada del sistema ioctl AUDIO_SETINFO para restablecer la configuración del dispositivo a los valores predeterminados.

Redacción de secuencias nuevas de comandos device-clean

Si agrega más dispositivos asignables al sistema, posiblemente deba crear sus propias secuencias de comandos device-clean. El comando deallocate pasa un parámetro a las secuencias de comandos device-clean. El parámetro, que se muestra aquí, es una cadena que contiene el nombre del dispositivo. Para obtener más información, consulte la página del comando man device_allocate(4).

clean-script -[I|i|f|S] device-name

Si las secuencias de comandos device-clean devuelven “0” son correctas; si devuelven valores mayores que “0”, fallaron. Las opciones –I, –f y –S determinan el modo de ejecución de la secuencia de comandos:

–I

Se necesita durante el inicio del sistema únicamente. Todas las salidas deben ir a la consola del sistema. Si no se pueden expulsar de manera forzada los medios o si la expulsión falla, el dispositivo debe pasar al estado de error de asignación.

–i

Similar a la opción –I, excepto que se suprime la salida.

–f

Se utiliza para la limpieza forzada. La opción es interactiva y asume que el usuario está disponible para responder a las peticiones de datos. Una secuencia de comandos con esta opción debe intentar completar la limpieza si se produce un error en una parte de ésta.

–S

Limpieza estándar. La opción es interactiva y asume que el usuario está disponible para responder a las peticiones de datos.