6.4 Contraseñas

Las contraseñas son un asunto problemático con Samba. Tanto es así, que la mayoría de las veces son el principal problema que los usuarios se encuentran cuando instalan Samba, y generan la mayoría de las cuestiones enviadas a los grupos de soporte de Samba. En capítulos anteriores, evitamos la necesidad del uso de contraseñas a través de la opción guest ok en cada uno de nuestros ficheros de configuración, lo que nos permitía realizar conexiones sin tener que autentificar contraseñas. No obstante, ahora hemos de profundizar mas en Samba para saber que esta pasando en la red.

Las contraseñas enviadas desde clientes individuales pueden ser encriptadas o no encriptadas. Las contraseñas encriptadas son, desde luego, más seguras. Una contraseña no encriptada puede ser leída fácilmente con un programa de lectura de paquetes ('sniffer'), como el modificado tcpdump que hemos usado en el Capitulo 3, Configurando los clientes Windows. Que las contraseñas sean encriptadas depende del sistema operativo que el cliente este usando para conectar con Samba. La Tabla 6-5 muestra que sistemas operativos Windows encriptan sus contraseñas antes de enviarlas al Controlador Primario de Dominio para su autenticación. Si tu cliente no es Windows, comprueba la documentación del sistema para saber si las contraseñas SMB son encriptadas.


Table: Sistemas Operativos Windows con Contraseñas Encriptadas.
Sistema Operativo Encriptado o No-Encriptado
Windows 95 No-Encriptado
Windows 95 con la Actualización SMB Encriptado
Windows 98 Encriptado
Windows NT 3.x No-Encriptado
Windows NT 4 anterior al SP3 No-Encriptado
Windows NT 4 despues del SP3 Encriptado


Actualmente se usan dos sistemas de encriptación: Uno para los clientes Windows 95 y 98 que sigue utilizando el estilo de Microsoft LAN Manager, y otro distinto para Windows NT clientes y servidores. Windows 95 y 98 utilizan un viejo sistema de encriptación derivado del programa de red LAN Manager, mientras que los sistemas Windows NT tanto clientes como servidores utilizan un sistema nuevo.

Si las contraseñas encriptadas están soportadas, Samba las almacena en un fichero llamado smbpasswd. Por defecto, este fichero esta situado en el directorio private de la distribución Samba (/usr/local/samba/private). Al mismo tiempo, los clientes almacenan una versión encriptada de la contraseña del usuario en su propio sistema. La contraseña sin encriptar (en texto plano) nunca se almacena en ningún sistema. Cada uno de ellos almacena la contraseña encriptada según un algoritmo conocido cuando esta se establece o cambia.

Cuando un cliente solicita una conexión a un servidor SMB que soporte contraseñas encriptadas (como Samba o Windows NT) los dos ordenadores llevan a cabo las siguientes negociaciones:

  1. El cliente intenta negociar un protocolo con el servidor.
  2. El servidor responde con un protocolo e indica que soporta contraseñas encriptadas. En este momento, devuelve una cadena de 8 bytes generada aleatoriamente.
  3. El cliente utiliza esta cadena como una llave para encriptar la ya encriptada contraseña usando un algoritmo predefinido por el protocolo negociado. Entonces envía el resultado al servidor.
  4. El servidor realiza el mismo proceso con la contraseña almacenada en su propia base de datos. Si los resultados coinciden, las contraseñas son equivalentes y el usuario es autenticado.
Ten en cuenta que, aunque las contraseñas originales no están involucradas en el proceso de autenticación, has de ser muy cuidadoso conque las contraseñas encriptadas almacenadas en el fichero smbpasswd estén a salvo de usuarios no autorizados. Si estas contraseñas están desprotegidas, un usuario no autorizado puede penetrar en el sistema reproduciendo los pasos del algoritmo del que hablamos antes. Las contraseñas encriptadas son tan delicadas como las contraseñas de texto plano -esto se conoce como equivalencia-texto plano en el mundo de la criptografía-. Desde luego, debes asegurarte que los clientes también protejan sus contraseñas.

Puedes configurar Samba para aceptar contraseñas encriptadas añadiendo lo siguiente en la sección [global] del fichero smb.conf. Ten en cuenta que especificamos completa la ruta del fichero de contraseñas de Samba:

[global]
  security = user
  encrypt passwords = yes
  smb passwd file = /usr/local/samba/private/smbpasswd

Samba, de todas formas, no aceptara ningún usuario hasta que el fichero smbpasswd haya sido inicializado.



Subsections
TLDP-ES 03/11/2002