Capítulo 32. Samba

Tabla de contenidos

32.1. Configuración del servidor
32.2. Samba como servidor de dominio
32.3. Configuración del servidor Samba con YaST
32.4. Configuración de los clientes
32.5. Optimización

Resumen

Samba permite implementar un equipo Unix como servidor de archivos e impresión para máquinas DOS, Windows y OS/2. Este capítulo presenta los fundamentos de la configuración de Samba y describe los módulos de YaST que le ayudarán a configurar Samba en la red.

Samba se ha convertido en un producto muy completo, por lo que aquí nos centramos exclusivamente en su funcionalidad. No obstante, puede obtener información adicional en la documentación en formato digital incluida en la distribución. Dicha documentación consta por un lado de las páginas del manual (a las que puede acceder, por ejemplo, introduciendo apropos samba en la línea de comandos) y, por otro lado, de documentos y ejemplos que se encuentran en /usr/share/doc/packages/samba siempre que haya instalado Samba en el sistema. El subdirectorio examples contiene un ejemplo de configuración comentado, smb.conf.SuSE.

El paquete samba se encuentra disponible en la versión 3. Entre las novedades de esta nueva versión cabe destacar:

[Tip]Migración a Samba 3

A la hora de migrar de la versión 2.x a la versión 3 de Samba, debe tener en cuenta algunas peculiaridades. La información correspondiente se ha recogido en un nuevo capítulo de la colección de HOWTOs de Samba. Una vez instalado el paquete samba-doc, encontrará el HOWTO en /usr/share/doc/packages/samba/Samba-HOWTO-Collection.pdf.

Samba usa el protocolo SMB (Server Message Block) que se basa en los servicios de NetBIOS. Por la insistencia de la empresa IBM, Microsoft publicó el protocolo para que otras empresas pudieran desarrollar software para conectar a una red con dominios de Microsoft. Como Samba usa el protocolo SMB sobre TCP/IP, en todos los clientes se debe instalar el protocolo TCP/IP. Le recomendamos utilizar TCP/IP de forma exclusiva.

NetBIOS es una interfaz para programas de aplicación (Application Program Interface, API), que se diseñó para la comunicación entre ordenadores. Entre otros, ofrece un servicio de nombres (name service) mediante el cual los ordenadores se identifican entre sí. No existe ningún control centralizado para otorgar o controlar los nombres. Cada ordenador puede reservar en la red tantos nombres como quiera, mientras no se haya adelantado otro. Se puede implementar la interfaz NetBIOS sobre diferentes arquitecturas de red. Hay una implementación que se encuentra relativamente “cerca” al hardware de red llamada NetBEUI. NetBEUI es lo que se denomina frecuentemente como NetBIOS. Protocolos de red que se han implementado son NetBIOS son IPX (NetBIOS vía TCP/IP) de Novell y TCP/IP.

Los nombres de NetBIOS no tienen nada en común con aquellos asignados en el archivo /etc/hosts o por DNS – NetBIOS es un área de nombres completamente propio. Esto es válido también para los nombres que se asignan en la implementación de NetBIOS mediante TCP/IP. Sin embargo, para simplificar la administración se recomienda usar, como mínimo para los servidores, nombres de NetBIOS equivalentes a los del DNS. Para un servidor Samba esta es la opción por defecto.

Todos los sistemas operativos ordinarios como Mac OS X, Windows y OS/2 soportan el protocolo SMB. Los ordenadores deben tener TCP/IP instalado. Samba proporciona un cliente para las diversas versiones UNIX. En el caso de Linux, existe para SMB un módulo del kernel para el sistema de archivos que permite integrar recursos SMB a nivel del sistema en Linux.

Los servidores SMB ofrecen a los clientes espacio en disco en forma de recursos compartidos o “shares”. Un share es un directorio en el servidor con todos los subdirectorios. Este se exporta con un nombre determinado por medio del cual los clientes pueden acceder a él. El nombre del share es arbitrario, no hace falta que coincida con el nombre del directorio exportado. De la misma manera se asigna un nombre a una impresora exportada mediante el cual los clientes puedan acceder a ella.

32.1. Configuración del servidor

Si quiere utilizar Samba como servidor, instale el paquete samba. Los servicios necesarios para Samba se inician manualmente con el comando rcnmb start && rcsmb start y se paran con rcsmb stop && rcnmb stop.

El archivo de configuración central de Samba es /etc/samba/smb.conf, Este puede dividirse en dos secciones lógicas: la sección [global] y la [share]>. La primera sección sirve para las configuraciones globales y la segunda determina las autorizaciones de acceso a archivos e impresoras. Este procedimiento permite que algunos detalles de las autorizaciones de acceso sean distintos o bien fijarlos para todo el sistema en la sección [global], lo que se recomienda por motivos de claridad.

32.1.1. La sección global

Los siguientes parámetros de la sección global deben ser definidos de acuerdo a la configuración de la red a fin de que otras máquinas puedan acceder al servidor Samba en una red Windows por medio de SMB.

workgroup = TUX-NET

Esta línea asigna el servidor Samba a un grupo de trabajo. Sustituya TUX-NET por un grupo de trabajo de su entorno de red. El servidor Samba aparece aquí con el nombre DNS a no ser que dicho nombre haya sido asignado a otro máquina de la red. Si el nombre DNS no está disponible, es posible definir el nombre del servidor mediante netbiosname=MINOMBRE. Puede obtener información adicional sobre este parámetro con man smb.conf.

os level = 2

En función de este parámetro el servidor Samba decide si quiere convertirse en un LMB (Local Master Browser) para su grupo de trabajo. Seleccione un valor bajo para que la red de Windows existente no se vea perturbada por un servidor Samba mal configurado. Puede encontrar más detalles sobre este tema tan importante en los archivos BROWSING.txt y BROWSING-Config.txt disponibles en el subdirectorio textdocs de la documentación del paquete.

Si en la red no existe ningún otro servidor SMB (como un servidor Windows NT o 2000) y desea que el servidor Samba mantenga una lista de los sistemas disponibles en la red local, incremente el valor de os level (por ejemplo 65) para que el servidor Samba sea elegido LMB para la red local.

A la hora de modificar este valor, tenga en cuenta cómo puede afectar el cambio al funcionamiento de una red Windows ya existente. Pruebe los cambios primero en una red aislada o en momentos poco críticos.

wins support y wins server

Si quiere integrar el servidor Samba en una red Windows ya disponible en la que existe un servidor WINS, debe activar el parámetro wins server. En este parámetro se debe introducir la dirección IP del servidor WINS.

Si las máquinas Windows están conectadas a subredes separadas y han de ser visibles entre sí, necesita un servidor WINS. Para convertir su servidor Samba en un servidor WINS, defina la opción wins support = Yes. Asegúrese de que este parámetro se activa exclusivamente en un servidor Samba. Las opciones wins server y wins support no pueden estar nunca activas simultáneamente en smb.conf.

32.1.2. Recursos compartidos

En los siguientes ejemplos se comparte por un lado la unidad de CD-ROM y por otro los directorios del usuario homes con los clientes SMB.

[cdrom]

Para impedir el acceso libre a un CD-ROM por error, se han desactivado en este ejemplo todas las líneas correspondientes a este recurso compartido por medio de un signo de comentario (aquí punto y coma). Si desea autorizar el acceso a la unidad de CD-ROM por Samba, borre los signos de punto y coma en la primera columna.

Ejemplo 32.1. Acceso al CD-ROM

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

La sección [cdrom] es el nombre del recurso compartido visible para el cliente SMB. Con [comment] se puede dar una descripción del recurso compartido al cliente.

path = /media/cdrom

Con path se exporta el directorio /media/cdrom.

Debido a una configuración intencionadamente restrictiva, este tipo de recursos compartidos sólo está disponible para el usuario que se encuentre en el sistema. Si debe estar disponible para todo el mundo, añada otra línea guest ok = yes. Debido a las posibilidades de lectura que ofrece, se debe tener mucho cuidado con esta configuración y utilizarla solamente en ciertos recursos compartidos. Se ha de tener un cuidado especial en la sección [global].

[homes]

El recurso compartido [home] tiene un significado especial: Si el usuario en cuestión dispone de una cuenta válida en el servidor de archivos y de un directorio personal en el mismo, es posible conectarse a este directorio mediante nombre y contraseña.

Ejemplo 32.2. Recurso compartido homes

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

Mientras no exista una autorización de acceso expresa con el nombre de autorización del usuario asociado, se creará una autorización de forma dinámica debido al recurso compartido [homes]. El nombre de este recurso compartido será idéntico al nombre de usuario.

valid users = %S

%S será reemplazada por el nombre concreto del recurso compartido tras haber realizado la conexión adecuadamente. Puesto que en el caso del recurso compartido [homes] este siempre es idéntico al nombre de usuario, los usuarios autorizados se limitan al dueño del directorio de usuario. Esta es una posibilidad para permitir el acceso al dueño solamente.

browseable = No

Con esta configuración [homes] no será visible en la lista de recursos compartidos.

read only = No

En la configuración predeterminada, Samba deniega el permiso de escritura en los recursos compartidos exportables, read only = Yes. Si un directorio debe tener también permiso de escritura, asigne el valor read only = No, que equivale a writeable = Yes.

create mask = 0640

Los sistemas no basados en MS Windows NT no conocen el concepto de permisos de acceso de Unix. Por lo tanto, al crear los archivos, no pueden establecer los permisos de acceso correspondientes. El parámetro create mask establece los permisos de acceso que corresponden a los archivos. Esto sólo es válido para recursos compartidos en los que se pueda escribir. En concreto, al dueño se le permitirá leer y escribir, y a los componentes del grupo primario del usuario sólo la lectura. Tenga en cuenta que valid users = %S impide la lectura aún cuando el grupo esté autorizado. Para otorgar al grupo derechos de lectura y escritura, la línea valid users = %S ha de ser desactivada.

32.1.3. Niveles de seguridad

El protocolo SMB viene del mundo DOS y Windows y contempla los problemas de seguridad directamente. Todos los accesos a un share se protegen con una contraseña. SMB ofrece tres posibilidades para comprobar la autorización:

Share Level Security: (security = share)

En este caso cada share tiene una contraseña fija. Cada persona que conoce la contraseña tiene acceso al share.

User Level Security: (security = user)

Esta variante introduce el concepto de usuario SMB. Cada usuario tiene que darse de alta en el servidor con una contraseña propia. Después de la autentificación, el servidor puede otorgar derechos de acceso a los distintos shares exportados en función del nombre de usuario.

Server Level Security: (security = server)

Samba aparenta frente a los clientes trabajar en el “User Level Mode”, pero en realidad pasa todas las peticiones de entrada a otro ordenador que se encarga de la autentificación. Esta configuración requiere de un parámetro adicional (password server =).

La decisión sobre el tipo de autentificación es algo que afecta a todo el servidor. No es posible exportar unos recursos compartidos de la configuración de un servidor en modalidad “Share Level Security” y otros en “User Level Security”. No obstante, es posible ejecutar en un sistema un servidor Samba propio para cada dirección IP configurada.

La colección de HOWTOs de Samba contiene más información al respecto. En el caso de un sistema con varios servidores, tenga en cuenta los parámetros interfaces y bind interfaces only.

[Tip]Sugerencia

Existe un programa denominado swat que permite administrar fácilmente el servidor samba, ya que ofrece una interfaz de web sencilla para configurarlo cómodamente. Dentro de un navegador introduzca http://localhost:901 y entre al sistema como root. Hay que considerar que swat se activa también en los archivo /etc/xinetd.d/samba y /etc/services. Para ello debe modificar la línea disable = no en el archivo /etc/xinetd.d/samba. Puede obtener información adicional acerca de este programa en la página del manual de swat.


SUSE LINUX Manual de administración 9.3