



(7 opiniones)
En este capítulo trataremos como Samba autentifica a los usuarios. Cada usuario que intente conectar a un recurso que no permita acceso de invitado deberá suministrar una contraseña para efectuar la conexión. Lo que Samba hace con esa contraseña - y en consecuencia la estrategia que utiliza para autentificar al usuario -es trabajo de la opción de configuración security-. Actualmente hay cuatro niveles de seguridad utilizados por Samba en sus redes: share, user, server y domain.
| Opción | Parámetros | Función | Defecto | Ámbito |
|---|---|---|---|---|
| security | domain, server, share o user | Indica el tipo de seguridad que usará el servidor Samba | user (Samba 2.0) o share (Samba 1.9) | Global |
En este caso cada recurso tiene una o más contraseñas asociadas con él. Se diferencia de los demás modos de seguridad en que aquí no hay restricciones como quién puede acceder al recurso, siempre que los usuarios conozcan la contraseña correcta. Los recursos pueden tener distintas contraseñas. Por ejemplo, una contraseña puede conceder sólo derechos de lectura, otra puede conceder derechos de lectura-escritura, etc. La seguridad se mantiene mientras usuarios no autorizados no descubran las contraseñas para un recurso al que no deberían poder acceder.
OS/2 y Windows 95/98 soportan seguridad a nivel de recurso. En Windows 95/98 puedes establecerla usando la pestaña de Control de Acceso en la opción Red del Panel de Control. Una vez aquí marcas Control de acceso a los recursos (que desmarca la opción de Control de acceso de los usuarios) como se muestra en la figura 6-1 y pulsas el botón de Aceptar.
Ahora, haces clic en un recurso -como un disco duro o un CD-ROM- y eliges el menú Propiedades. Se abrirá el cuadro de diálogo de propiedades del recurso. Elige la pestaña Compartir y activa el recurso como Compartido Como. Desde aquí, puedes configurar como se presentará el recurso a los usuarios individuales, así como asignar si el recurso será de solo-lectura, de lectura-escritura o una mezcla, dependiendo de la contraseña que se utilice.
Puedes estar pensando que este modelo de seguridad no es el más correcto para Samba - y tendrás razón. De hecho, si activas la opción security=share en el fichero de configuración de Samba, seguirá utilizando las combinaciones de nombre de usuario/contraseña de los ficheros de contraseñas del sistema para autentificar al usuario. Mas concretamente, Samba seguirá los siguientes pasos cuando un cliente solicite una conexión usando una política de seguridad a nivel de recurso:
Con la opción de configuración username puedes establecer inicialmente, los usuarios de seguridad a nivel de recurso, tal como se muestra:
[global] security = share [accounting1] path = /home/samba/accounting1 guest ok = no writable = yes username = davecb, pkelly, andyo
Así, cuando un usuario intenta conectar con el recurso, Samba comprobará la contraseña enviada por este contra cada uno de los usuarios de su lista, además de las contraseñas de los usuarios davecb, pkelly y andyo. Si cualquiera de ellas coincide, se realizará la conexión, en otro caso, ésta fallará.
Opciones de seguridad a nivel de recurso
La Tabla 6.4 muestra las opciones más comunes asociadas con este nivel de seguridad:
| Opción | Parámetros | Función | Valor por defecto | Ámbito |
|---|---|---|---|---|
| only user | Booleano | Indica cuando los nombres de usuario especificados por username serán los únicos permitidos. | no | Recurso |
| username | Cadena (lista de usuarios) | Especifica una lista de usuarios contra los que se comprobará la validez de la contraseña. |
Only user
Esta opción lógica indica cuando Samba permitirá conexiones usando este nivel de seguridad basándose solamente en los usuarios especificados en la opción username, en lugar de aquellos establecidos en la lista interna de Samba. El valor por defecto para esta opción es no. Pero puedes saltártela para un recurso determinado de la forma siguiente:
[global] security = share [data] username = andy, peter, valerie only user = yes
Username
Esta opción establece una lista de usuarios contra los que Samba testeará una contraseña para permitir la conexión. Se usa normalmente con clientes que tienen seguridad a nivel de recurso basada exclusivamente en una contraseña -en este caso, una que coincide con la contraseña de determinado usuario:
[global] security = share [data] username = andy, peter, terry
Te recomendamos que no la utilices a menos que estés instalando un servidor con seguridad a nivel de recurso.
Es el modo más aconsejable de seguridad para trabajar con Samba. Con él, cada recurso tiene asignados determinados usuarios que pueden acceder a él. Cuando un usuario solicita una conexión a un recurso, Samba lo autentifica validando el nombre de usuario y la contraseña frente a los usuarios autorizados en el fichero de configuración y las contraseñas almacenadas en la base de datos del servidor Samba. Como mencionamos antes en este mismo capitulo, una manera de establecer que usuarios tienen acceso a un recurso especifico es usando la opción valid users para ese recurso:
[global] security = user [accounting1] writable = yes valid users = bob, joe, sandy
A cada uno de los usuarios en la lista se le permitirá el acceso al recurso si la contraseña proporcionada coincide con la establecida en la base de datos de sistema en el servidor. Si esta autenticación inicial tiene éxito, el usuario no necesita volver a escribir la contraseña para acceder a este recurso a no ser que se haya activado la opción revalidate=yes.
Las contraseñas pueden ser enviadas al servidor Samba de forma encriptada o no. Si tienes ambos tipos de sistemas en tu red, debes asegurarte que las contraseñas de cada usuario están grabadas tanto en la base de datos de cuentas tradicional como en la base de datos de contraseñas encriptadas. De esta forma, los usuarios autorizados tendrán acceso al recurso desde cualquier tipo de cliente. De todas formas, te recomendamos que si la seguridad es una prioridad utilices contraseñas encriptadas y abandones las no encriptadas. La sección contraseñas de este capitulo explica como utilizar contraseñas tanto encriptadas como no.
La seguridad a nivel de servidor es parecida a la de usuario. Sin embargo, con la seguridad a nivel de servidor, Samba delega la autenticación de la contraseña a otro servidor de contraseñas SMB, normalmente otro servidor Samba o un Windows NT Server actuando como PDC en la red. Fíjate en que Samba todavía mantiene una lista de recursos y configuraciones en su fichero smb.conf. Cuando un cliente intenta hacer una conexión a un recurso determinado, Samba comprueba que el usuario está autorizado a conectar a ese recurso, entonces intenta validar la contraseña conectando con el servidor SMB a través de un protocolo conocido y presentándole el nombre y la contraseña. Si la contraseña es aceptada, se establecerá la conexión con el cliente. Este proceso queda reflejado en la Figura 6.2.
Puedes configurar Samba para usar un servidor de contraseñas distinto con el uso de la opción global password server:
[global] security = server password server = PHOENIX120 HYDRA134
Fíjate en que puedes especificar mas de un servidor como valor de la opción password server; Samba ira recorriendo la lista en el caso de que no sea posible contactar con el primer servidor. Ten en cuenta que los nombres de estos servidores son nombres NetBIOS, no nombres DNS o sus IP equivalentes. Asimismo, si uno de los servidores rechaza la contraseña, la conexión fallara automáticamente, Samba no intentara probar en otro servidor.
Un aviso: Cuando uses esta opción seguirás necesitando una cuenta que represente al usuario en el servidor Samba general. Esto se debe a que el sistema operativo Unix necesita un nombre de usuario para realizar determinadas operaciones de entrada/salida (I/O). El método aconsejable es dar al usuario una cuenta en el servidor Samba pero desactivar su contraseña reemplazándola en el fichero de contraseñas del sistema (por ejemplo /etc/passwd) por un asterisco (*).
La seguridad a nivel de dominio es parecida a la de nivel de servidor. Sin embargo, con la seguridad a nivel de dominio, el servidor Samba está actuando como miembro de un dominio Windows. Recuerda del capítulo 1 que cada dominio tiene un Controlador de Dominio, que es normalmente un Windows NT Server que ofrece la autenticación de las contraseñas. Incluir estos controladores proporciona al grupo un servidor de contraseñas definitivo. Los controladores de dominio mantienen los usuarios y contraseñas en sus propios módulos de autenticación de seguridad (SAM), y autentifican a cada usuario cuando este conecta por primera vez y cuando desea acceder a un recurso en otra maquina.
Como mencionamos antes en este capitulo, Samba tiene una prestación similar al ofrecer seguridad a nivel de usuario, pero esta opción está centralizada en Unix y asume que la autenticación se produce a través de los ficheros de contraseñas de Unix. Si la maquina Unix es parte de un dominio NIS o NIS+ Samba autenticará a los usuarios de forma transparente contra un fichero de contraseñas compartido, como es típico en Unix. Hecho esto, Samba ofrecerá acceso al dominio NIS o NIS+ desde Windows. Desde luego, no existe relación alguna entre el concepto de dominio NIS o NIS+ y el concepto de dominio de Windows.
Con la seguridad a nivel de dominio, tenemos la opción de usar el mecanismo nativo de NT. Esto tiene una serie de ventajas:
Los desarrolladores de Samba utilizaron seguridad a nivel de dominio en Samba versión 2.0.4 para permitirle añadir y eliminar usuarios del dominio de forma semiautomática. Además, añadió soporte para otras prestaciones al estilo NT, como soportar listas de control de acceso y cambiar los permisos de los ficheros desde el cliente.
La ventaja de esta aproximación es una menor administración; hay una sola base de datos de autenticación que mantener sincronizada. La única administración local en el servidor Samba será la creación de directorios para los usuarios y el mantenimiento del fichero /etc/passwd para tener sus identificadores y grupos al día.
Si ya tienes un dominio NT, puedes fácilmente añadir un servidor Samba a este. Primero, necesitaras parar los demonios Samba. Entonces, añades el servidor Samba al dominio NT en el PDC usando el 'Administrador Windows NT Server para Dominios'. Cuando te pregunte por el tipo de servidor, eliges 'Windows NT Workstation o Server', y le das el nombre NetBIOS del servidor Samba. Esto crea la cuenta de la maquina en el servidor NT. Después, generas una contraseña tipo Microsoft usando la utilidad smbpasswd, esto se explica en la siguiente sección. Por ejemplo, si nuestro dominio es SIMPLE y el PDC de Windows NT es beowulf, podemos usar el siguiente comando en el servidor Samba:
smbpasswd -j SIMPLE -r beowulf
Finalmente, añade las siguientes opciones a la sección [global] del fichero smb.conf y reinicia los demonios Samba:
[global] security = domain domain logons = yes workgroup = SIMPLE password server = beowulf
Samba ahora estará configurado para usar la seguridad a nivel de dominio. La opción domain logins se explica mas adelante en este capitulo.
|