Niveles de seguridad

Una de las consideraciones más importantes a la hora de configurar Samba es la selección del nivel de seguridad.

Desde la perspectiva de un cliente, Samba ofrece dos modos de seguridad, denominados share y user, emulando exactamente las dos opciones de SMB que veíamos en la “El protocolo SMB”:

  1. Modo Share. En modo share, cada vez que un cliente quiere utilizar un recurso ofrecido por Samba, debe suministrar una contraseña de acceso asociada a dicho recurso.

  2. Modo User. En modo user, el cliente debe establecer en primer lugar una sesión con el servidor Samba, para lo cual le suministra un nombre de usuario y una contraseña. Una vez Samba valida al usuario, el cliente obtiene permiso para acceder a los recursos ofrecidos por Samba.

En cualquiera de ambos, Samba tiene que asociar un usuario del sistema Unix en el que se ejecuta Samba con la conexión realizada por el cliente. Este usuario es el utilizado a la hora de comprobar los permisos de acceso a los ficheros y directorios que el sistema Unix/Samba comparte en la red.

La selección del nivel de seguridad se realiza con la opción security, la cual pertenece a la sección [global]. Sus alternativas son las siguientes:

security = share | user | server | domain

Desde la perspectiva del cliente, el nivel share corresponde al modo de seguridad share y los niveles user, server y domain corresponden todos ellos al modo de seguridad user. A continuación se describen someramente los cuatro niveles.

El nivel share es utilizado normalmente en entornos en los cuales no existe un dominio Windows NT o 2000. En este caso, se asocia una contraseña por cada recurso, que debe proporcionarse correctamente desde el cliente cuando se pide la conexión.

En el nivel user, el encargado de validar al usuario es el sistema Unix donde Samba se ejecuta. La validación es idéntica a la que se realizaría si el usuario iniciase una sesión local en el ordenador Unix. Para que este método sea aplicable, es necesario que existan los mismos usuarios y con idénticas contraseñas en los sistemas Windows y en el sistema Unix donde Samba se ejecuta.

Desde la aparición de sistemas Windows como Windows 98, Windows NT 4.0 (a partir del Service Pack 3), Windows 2000 y posteriores, la utilización de este nivel se ha vuelto complicada, ya que dichos sistemas Windows transmiten las contraseñas cifradas por la red. Puesto que Samba no posee acceso a las contraseñas cifradas por Windows, el sistema Unix ya no puede realizar la validación. Existen dos métodos para resolver este problema. El primero consiste en modificar el registro del sistema Windows para permitir la transferencia de contraseñas sin cifrar por la red. El segundo método obliga a utilizar una tabla de contraseñas adicional en el sistema Unix, en la cual se almacenan las contraseñas cifradas de los usuarios Windows.

En el nivel server, Samba delega la validación del usuario en otro ordenador, normalmente un sistema Windows 2000. Cuando un cliente intenta iniciar una sesión con Samba, éste último intenta iniciar una sesión en el ordenador en el cual ha delegado la validación con la misma acreditación (usuario+contraseña) recibidos del cliente. Si la sesión realizada por Samba es satisfactoria, entonces la solicitud del cliente es aceptada. Este método aporta la ventaja de no necesitar que las contraseñas se mantengan sincronizadas entre los sistemas Windows y Unix, ya que la contraseña Unix no es utilizada en el proceso de validación. Adicionalmente, no hay inconveniente en utilizar contraseñas cifradas, ya que la validación la realiza un sistema Windows 2000.

Por último, existe la posibilidad de utilizar el nivel domain. Este nivel es similar al nivel server, aunque en este caso el ordenador en el que se delega la validación debe ser un DC, o una lista de DCs. La ventaja de este método estriba en que el ordenador Samba pasa a ser un verdadero miembro del dominio W2000, lo que implica, por ejemplo, que puedan utilizarse las relaciones de confianza en las que participa el dominio W2000. Esto significa, en pocas palabras, que usuarios pertenecientes a otros dominios en los que los DCs confían son conocidos por Samba.

Dadas las ventajas del nivel domain, este documento se centra fundamentalmente en este método. Para detalles específicos de los otros niveles, se recomienda la consulta de la documentación original de Samba.