Capítulo 48. Samba

Tabla de contenidos

48.1. Configuración del servidor
48.2. Samba como servidor de inicio de sesión
48.3. Configuración de un servidor Samba con YaST
48.4. Configuración de los clientes
48.5. Optimización

Resumen

Mediante Samba, se puede configurar una máquina Unix como servidor de impresión y archivos para máquinas DOS, Windows y OS/2. Samba se ha desarrollado hasta convertirse en un producto maduro y más bien complejo. Además de describir sus funciones básicas, en este capítulo se presentan los aspectos esenciales de la configuración de Samba y se describen los módulos YaST que se pueden utilizar para la configuración de Samba en la red.

En la documentación digital hay disponible información detallada sobre Samba. Introduzca apropos samba en la línea de comandos para ver las páginas Man o simplemente explore el directorio /usr/share/doc/packages/samba si Samba está instalado para obtener más documentación en línea y ejemplos. En el subdirectorio ejemplos se encuentra una configuración de ejemplo comentada (smb.conf.SUSE).

En la versión 3 del paquete samba que se incluye hay nuevas funciones importantes como:

[Tip]Migración a Samba3

Existen varios aspectos que deben tenerse en cuenta al migrar de Samba 2.x a Samba 3. Este tema se trata en el documento Samba HOWTO Collection, en el que se le dedica un capítulo entero. Una vez instalado el paquete samba-doc, busque el HOWTO en /usr/share/doc/packages/samba/Samba-HOWTO-Collection.pdf.

Samba utiliza el protocolo SMB (server message block) (bloque de mensajes de servidor), que está basado en los servicios NetBIOS. Debido a las presiones de IBM, Microsoft liberó el protocolo para que otros fabricantes de software pudieran establecer conexiones con una red de dominio de Microsoft. Con Samba, el protocolo SMB funciona por encima del protocolo TCP/IP, de manera que éste último debe estar instalado en todos los clientes.

NetBIOS es una interfaz de software (API) diseñada para la comunicación entre máquinas. En él se ofrece un servicio de nombres. Esto permite que las máquinas conectadas a la red reserven nombres para ellas mismas. Tras la reserva, es posible dirigirse a las máquinas mediante el nombre. No existe ningún proceso central que compruebe los nombres. Cualquier máquina de la red puede reservar tantos nombres como se quiera, siempre que no estén ya en uso. La interfaz NetBIOS puede implementarse para diferentes arquitecturas de red. Una implementación que funciona de un modo relativamente próximo al hardware de red es NetBEUI, aunque a menudo se habla de ella como NetBIOS. Los protocolos implementados con NetBIOS son IPX de Novell (NetBIOS sobre TCP/IP) y TCP/IP.

Los nombres de NetBIOS enviados mediante TCP/IP no tienen nada en común con los nombres que se usan en /etc/hosts/ o los definidos por DNS. NetBIOS utiliza su propia convención para la nomenclatura, completamente independiente. Sin embargo, es recomendable utilizar nombres que se correspondan con los nombres de host DNS para que la administración sea más sencilla. Esta es la opción que Samba utiliza por defecto.

Todos los sistemas operativos habituales, como Mac OS X, Windows y OS/2, son compatibles con el protocolo SMB. El protocolo TCP/IP debe estar instalado en todos los ordenadores. Samba ofrece clientes para las distintas versiones de UNIX. Para Linux, existe un módulo del núcleo para SMB que permite integrar recursos SMB en el nivel de sistema de Linux.

Los servidores SMB ofrecen espacio de hardware a sus clientes por medio de recursos compartidos. Un recurso compartido comprende un directorio y sus subdirectorios en el servidor. Se exporta mediante un nombre y se puede acceder a él a través de dicho nombre. El nombre del recurso compartido puede ser cualquiera (no es preciso que sea el nombre del directorio exportado). A las impresoras también se les asigna un nombre. Los clientes pueden acceder a la impresora por su nombre.

48.1. Configuración del servidor

Si desea utilizar Samba como servidor, instale samba. Para iniciar los servicios necesarios para Samba utilice rcnmb start && rcsmb start y para detenerlos, rcsmb stop && rcnmb stop.

El principal archivo de configuración de Samba es /etc/samba/smb.conf. Este archivo se puede dividir en dos partes lógicas. La sección [global] contiene los ajustes centrales y globales. Las secciones [share] contienen cada uno de los recursos compartidos de archivos e impresión. De esta manera, los detalles se pueden configurar de manera diferente para cada recurso compartido o bien de manera global en la sección [global], con lo que se mejora la transparencia del archivo de configuración.

48.1.1. La sección global

Para que las otras máquinas puedan acceder al servidor Samba por medio de SMB en un entorno Windows, deben ajustarse los siguientes parámetros de la sección [global] para que se adecúen a las necesidades de la configuración de la red.

workgroup = TUX-NET

Esta línea asigna el servidor Samba a un grupo de trabajo. Sustituya TUX-NET por el grupo de trabajo adecuado del entorno de red. El servidor Samba aparece bajo su nombre DNS, a menos que dicho nombre ya se haya asignado a otra máquina de la red. Si el nombre DNS no está disponible, establezca el nombre del servidor mediante netbiosname=MINOMBRE. Consulte mansmb.conf para conocer más detalles de este parámetro.

os level = 2

De este parámetro depende que el servidor Samba intente establecerse como LMB (local master browser) (navegador principal local) para su grupo de trabajo. Seleccione un valor muy bajo para evitar que la red Windows existente se vea perturbada por un servidor Samba mal configurado. Podrá encontrar más información sobre este punto importante en los archivos BROWSING.txt y BROWSING-Config.txt del subdirectorio textdocs de la documentación del paquete.

Si no existe ningún otro servidor SMB en la red (como servidores Windows NT o 2000) y desea que el servidor Samba lleve una lista de todos los sistemas disponibles en el entorno local, aumente el valor de os level (por ejemplo, hasta 65). El servidor Samba se elegirá como LMB para la red local.

Al cambiar este valor, tenga muy en cuenta cómo podría afectar a un entorno de red Windows existente. Pruebe los cambios primero en una red aislada o en momentos del día que no sean críticos.

wins support y wins server

Para integrar el servidor Samba en una red Windows existente en la que haya un servidor WINS activo, active la opción wins server y establezca como su valor la dirección IP del servidor WINS.

Si las máquinas Windows están conectadas a subredes separadas pero deben ser visibles entre sí, es necesario establecer un servidor WINS. Para convertir el servidor Samba en dicho servidor WINS, establezca la opción wins support = Yes. Asegúrese de que sólo un servidor de la red tiene este ajuste habilitado. Las opciones wins server y wins support no deben habilitarse nunca al mismo tiempo en el archivo smb.conf.

48.1.2. Recursos compartidos

En los siguientes ejemplos se indica cómo poner a disposición de los clientes SMB una unidad de CD-ROM y los directorios de usuario (homes).

[cdrom]

Para impedir la activación por error del acceso a la unidad de CD-ROM, las siguientes líneas se han desactivado mediante marcas de comentario (en este caso, puntos y coma). Elimine los puntos y coma de la primera columna para compartir la unidad de CD-ROM mediante Samba.

Ejemplo 48.1. Un CD-ROM como recurso compartido

;[cdrom]
;       comment = Linux CD-ROM
;       path = /media/cdrom
;       locking = No
[cdrom] y comment

La entrada [cdrom] es el nombre del recurso compartido que verán todos los clientes SMB de la red. De forma opcional, se puede añadir un comment para describir más detalladamente el recurso compartido.

path = /media/cdrom

path exporta el directorio /media/cdrom.

Mediante la restrictiva configuración por defecto, este tipo de recurso compartido sólo se encuentra disponible para usuarios presentes en el sistema. Si el recurso compartido debe estar disponible para todos los usuarios, añada la línea guest ok = yes a la configuración. Este ajuste concede permiso de lectura a todos los usuarios de la red. Se recomienda utilizarlo con mucho cuidado. En particular, hay que utilizarlo con mucho cuidad en la sección [global].

[homes]

El recurso compartido [home] tiene una importancia especial. Si el usuario dispone de una cuenta válida y de una contraseña en el servidor de archivos Linux y de su propio directorio personal, podrá acceder a él.

Ejemplo 48.2. Recurso compartido homes

[homes]
	comment = Home Directories
	valid users = %S
	browseable = No
	read only = No
	create mask = 0640
	directory mask = 0750
[homes]

Siempre y cuando no exista otro recurso compartido que utilice como nombre de recurso compartido el del usuario que se conecte al servidor SMB, se creará de forma dinámica un recurso compartido mediante las directivas de recurso compartido de [homes]. El nombre del recurso compartido que resulte será el nombre del usuario.

valid users = %S

Una vez que la conexión quede correctamente establecida, %S se reemplazará por el nombre específico del recurso compartido. En el caso de un recurso compartido [homes], éste será siempre del nombre del usuario. Como consecuencia, los derechos de acceso al recurso compartido de un usuario quedarán restringidos al propio usuario.

browseable = No

Este ajuste hace que el recurso compartido no pueda verse en el entorno de red.

read only = No

Por defecto, Samba deniega el permiso de escritura a todos los recursos compartidos exportados mediante el parámetro read only = Yes. Para tener permiso de escritura en un recurso compartido, establezca el valor read only = No, que es equivalente a writeable = Yes.

create mask = 0640

Los sistemas no basados en MS Windows NT no comprenden el concepto de los permisos de UNIX, por lo que no pueden establecerlos al crear un archivo. El parámetro create mask define los permisos de acceso que se asignarán a los archivos de nueva creación. Esto sólo se aplica a los recursos compartidos en los que se puede escribir. En concreto, este ajuste significa que el propietario tiene permisos de lectura y escritura, y que los miembros del grupo primario del usuario tienen permisos de lectura. valid users = %S impide el acceso de lectura incluso aunque el grupo tenga permiso para ello. Para que el grupo tenga acceso de lectura y escritura, desactive la línea valid users = %S.

48.1.3. Nivel de seguridad

El protocolo SMB procede de DOS y Windows y contempla el problema de la seguridad de manera directa. Es posible proteger el acceso a cada recurso compartido mediante una contraseña. SMB dispone de tres maneras posibles de comprobar de los permisos:

Seguridad en el nivel del recurso compartido (security = share):

Se asigna una contraseña fija al recurso compartido. Todos los que conozcan la contraseña tendrán acceso al recurso compartido.

Seguridad en el nivel del usuario (security = user):

Esta variante introduce el concepto de usuario en SMB. Cada usuario debe registrarse en el servidor con su propia contraseña. Después del registro, el servidor puede dar acceso a cada recurso compartido exportado en función de los nombres de usuario.

Seguridad en el nivel del servidor (security = server):

De cara a los clientes, Samba actúa como si trabajara en el modo de nivel de usuario. Sin embargo, todas las peticiones de contraseñas se pasan a otro servidor en modo de nivel de usuario, que es el encargado de la autenticación. Este ajuste requiere un parámetro adicional (password server =).

La distinción entre seguridad en el nivel del recurso compartido, del usuario o del servidor afecta al servidor entero. No es posible ofrecer ciertos recursos compartidos en la configuración de un servidor con seguridad en el nivel del recurso compartido y otros con seguridad en el nivel del usuario. No obstante, se puede ejecutar un servidor Samba individual para cada dirección IP configurada en el sistema.

Hay más información sobre este tema en el documento Samba HOWTO Collection. Para el caso de un solo sistema con varios servidores, estudie las opciones interfaces y bind interfaces only.

[Tip]Sugerencia

Para realizar tareas simples de administración en el servidor Samba, también existe el programa swat. Este programa ofrece una sencilla interfaz Web mediante la cual se puede configurar el servidor Samba cómodamente. En un navegador Web, abra http://localhost:901 e inicie sesión como usuario root. swat debe estar activado también en los archivos /etc/xinetd.d/samba y /etc/services. Para ello, en /etc/xinetd.d/samba, edite la línea disable y escriba disable = no. Hay más información disponible sobre swat en la página Man.