Seguridad de montajes para estaciones de trabajo sin disco
Las estaciones de trabajo sin disco deben tener la posibilidad de crear y acceder a archivos especiales de dispositivo en máquinas remotas para montar sus directorios /dev desde un servidor. Puesto que los servidores no pueden distinguir los archivos especiales de dispositivo pensados para un cliente de los que están pensados para el servidor, es posible que un usuario del servidor pueda acceder a los dispositivos físicos del servidor utilizando los archivos especiales del dispositivo cliente.
Por ejemplo, la propiedad de una tty se establece automáticamente en el usuario que utiliza la tty. Si los ID de usuario no son iguales en el cliente y en el servidor, un usuario no privilegiado del servidor puede acceder a una tty que un usuario diferente del servidor utiliza.
Un usuario que es privilegiado en un cliente puede crear archivos especiales de dispositivo para que coincidan con dispositivos físicos del servidor y que no necesiten privilegios para el acceso. Después, el usuario puede utilizar una cuenta no privilegiada del servidor para acceder a los dispositivos que normalmente están protegidos utilizando los nuevos archivos especiales de dispositivo.
Un problema de seguridad similar se genera por el uso de los programas setuid y setgid en el cliente y el servidor. Los clientes sin disco deben poder crear y ejecutar los programas setuid y setgid en el servidor para funcionar normalmente. De nuevo, el servidor no puede distinguir entre los programas pensados para el servidor y los que están pensados para el cliente.
Además, es posible que los ID de usuario y los ID de grupo no coincidan entre el servidor y el cliente, por lo que usuarios del servidor podrían ejecutar programas con posibilidades que no están pensadas para ellos.
El problema existe porque los programas setuid y setgid y los archivos especiales de dispositivo sólo deberían poderse utilizar en la máquina que los ha creado.
La solución es utilizar opciones de seguridad para el mandato mount que restringen la capacidad de utilizar estos objetos. Estas opciones también se pueden utilizar en stanzas del archivo /etc/filesystems.
La cabecera HTTPnosuiden el mandato mount impide la ejecución de los programas setuid y setgid a los que se accede a través del sistema de archivos montado resultante. Esta opción se utiliza para cualquier sistema de archivos que se monta en un sistema de principal determinado a fin de que sólo lo utilice un sistema principal diferente (por ejemplo, cuando se exporta para clientes sin disco).
La cabecera HTTPnodeven el mandato mount impide la apertura de dispositivos utilizando archivos especiales de dispositivo a los que se accede a través del sistema de archivos montado resultante. Esta opción también se utiliza para cualquier sistema de archivos que se monta a fin de que sólo lo utilice un sistema principal diferente (por ejemplo, exportado para clientes sin disco).
En general, los usuarios de un servidor no tienen ningún acceso al directorio /export .
- Exportación del directorio /export/root
El directorio /export/root se debe exportar con permisos de lectura y grabación, y el usuario root del servidor debe tener acceso a él. Sin embargo, es aconsejable montar este directorio con las siguientes opciones del mandato mount:
Elemento Descripción NOSUID Impide que un usuario del servidor ejecute los programas setuid del cliente. nodev Impide que un usuario acceda a los dispositivos del servidor utilizando un archivo especial de dispositivo del cliente. Una alternativa a montar el directorio /export/root con estas opciones es evitar dar a los usuarios que realizan la ejecución en el servidor algún acceso para el directorio /export/root.
- Exportación del directorio /export/exec
El directorio /export/exec se exporta con permisos de sólo lectura y debe proporcionar acceso de root. Sin embargo, es aconsejable montar este directorio con las siguientes opciones del mandato mount:
Elemento Descripción NOSUID Impide que un usuario del servidor ejecute los programas setuid del cliente. Si exporta el directorio /usr del servidor, no puede utilizar la opción nousid. nodev Impide que un usuario acceda a los dispositivos del servidor utilizando un archivo especial de dispositivo del cliente. - Exportación del directorio /export/share
El directorio /export/share se exporta con permisos de sólo lectura y debe proporcionar acceso de root. Puesto que generalmente este directorio sólo contiene datos (ni ejecutables ni dispositivos), no es necesario que utilice las opciones de seguridad de montaje.
- Exportación del directorio /export/home
Hay varias maneras de montar un directorio /home del usuario:
- Puede montar el directorio /export/home/Nombresistprinccliente en el
directorio /home del cliente. En este caso, el cliente tiene permisos de lectura
y grabación y el usuario root tiene acceso. Para garantizar la seguridad del sistema monte el
directorio /export/home con las siguientes opciones para el
mandato mount:
Elemento Descripción NOSUID Impide que un usuario del servidor ejecute los programas setuid del cliente. nodev Impide que un usuario acceda a los dispositivos del servidor utilizando un archivo especial de dispositivo del cliente. - Puede montar el directorio /home en el servidor sobre el directorio /home del cliente. En este caso, el directorio /home se exporta con permisos de lectura y grabación y sin acceso de root. Para garantizar la seguridad del sistema, monte el directorio /home en el servidor y el cliente con elnosuidynodevopciones del mandato mount .
- Alternativamente, puede montar cada directorio /home/NombreUsuario del servidor en el directorio /home/NombreUsuario del cliente para que los usuarios puedan iniciar la sesión en máquinas diferentes y seguir accediendo a sus directorios iniciales. En este caso, los directorios /home/Nombre de usuario del servidor y los clientes se montan con elnousidynodevopciones del mandato mount .
- Puede montar el directorio /export/home/Nombresistprinccliente en el
directorio /home del cliente. En este caso, el cliente tiene permisos de lectura
y grabación y el usuario root tiene acceso. Para garantizar la seguridad del sistema monte el
directorio /export/home con las siguientes opciones para el
mandato mount:
- Exportación del directorio /export/swap
Exporte el archivo /export/swap/Nombresistprinccliente con permisos de lectura y grabación y acceso de root. No son necesarias medidas de seguridad. Los usuarios del servidor no tienen acceso a los archivos /export/swap/Nombresistprinccliente.