Capítulo 16. Redes heterogéneas

Tabla de contenidos

16.1. Samba
16.2. Netatalk
16.3. Emulación de Novell NetWare con MARSNWE

Resumen

Linux no sólo se puede comunicar con otros ordenadores Linux, sino también con máquinas Windows y Macintosh así como con redes Novell. Este capítulo le muestra cómo puede configurar las correspondientes redes heterogéneas y qué debe tener en cuenta.

16.1. Samba

16.1.1. Introducción a Samba

Con la ayuda del programa Samba, un ordenador Unix puede convertirse en un servidor de archivos y de impresión para máquinas DOS, Windows u OS/2. El equipo Samba se ocupa del proyecto Samba, el cual fue desarrollado originalmente por el australiano Andrew Tridgell.

Samba es ya un producto muy completo y, por eso, aquí nos centramos exclusivamente en su funcionalidad. Sin embargo el software viene con una completa documentación digital, compuesta por un lado de páginas de manual – escriba apropos samba en la línea de comandos – y por otro de documentos y ejemplos que se instalaron en su sistema junto con Samba – en /usr/share/doc/packages/samba. Allí, en el subdirectorio examples también encontrará un ejemplo de configuración comentado smb.conf.SuSE.

SUSE LINUX 9.1 incorpora la nueva versión del paquete samba, Samba 3. Entre las novedades de esta nueva versión cabe destacar:

  • Soporte de Active Directory.

  • Soporte Unicode considerablemente mejorado.

  • Mecanismos internos de autentificación completamente revisados.

  • Mejor soporte del sistema de impresión de Windows 200x/XP.

  • Configuración como servidor miembro en dominios Active Directory.

  • Adopción de dominios NT4 para posibilitar la migración de un dominio NT4 a un dominio Samba.

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.

[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.

16.1.1.1. NetBIOS

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.

16.1.1.2. Clientes

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.

16.1.2. Instalación y 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.

16.1.2.1. Sección global en base a una configuración de muestra

Los siguientes parámetros de la sección global residen en su red para que su servidor Samba en una red Windows puede ser accesible desde otros sistemas vía SMB.

workgroup = TUX-NET

Con esta línea, el servidor Samba asignará un grupo de trabajo. Para el funcionamiento, acomode TUX-NET al grupo de trabajo que tenga a su disposición o configure su cliente con el valor que se encuentra aquí. En esta configuración su servidor Samba aparece con su nombre DNS en el grupo de trabajo elegido, siempre que no se haya cedido el nombre.

Si ya se ha adjudicado el nombre, puede establecer algo diferente del nombre DNS mediante netbios name = MINOMBRE. Los detalles de este parámetro están disponible vía 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. Se ha escogido un valor bajo en el ejemplo a propósito 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 que se encuentran en el subdirectorio textdocs de la documentación del paquete.

Si no hay en funcionamiento un servidor SMB — por ejemplo Windows NT, 2000 Server — y el servidor Samba debe ordenar los nombres de los sistemas disponibles en la red local, aumente os level a un valor más alto (por ejemplo 65), para conseguir convertirse en LMB.

Tenga mucho cuidado al modificar este valor, ya que puede perturbar el funcionamiento de una red Windows ya disponible. Hable con el administrador, 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 ha de introducir la dirección IP de su servidor WINS.

Si sus sistemas Windows funcionan en subredes separadas y han de ser visibles entre sí, necesita un servidor WINS. Para convertir su servidor Samba en un servidor WINS necesita la opción wins support = Yes. Compruebe que este parámetro se activa exclusivamente para un servidor Samba.

Ambas opciones (wins server y wins support) no pueden estar nunca activas simultáneamente en smb.conf.

16.1.2.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 16.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án disponibles 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 16.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.

16.1.2.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 algunos shares de la configuración de un servidor en modalidad “Share Level Security” y otros en “User Level Security”. No obstante, en un sistema puede operar 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.

16.1.3. Samba como servidor de dominio

En redes con gran cantidad de clientes Windows, se prefiere que los usuarios sólo puedan acceder a los recursos con su nombre de usuario y una contraseña. Un servidor Samba puede realizar esta autentificación. En una red basada en Windows, un servidor de Windows-NT se encarga de esta tarea cuando está configurado como Primary Domain Controller (PDC). Para realizarlo con Samba es necesario introducir en la sección [global] de smb.conf las entradas correspondientes como en el ejemplo 16.3, “Sección global en smb.conf”.

Ejemplo 16.3. Sección global en smb.conf

[global]
 workgroup = TUX-NET
 domain logons = Yes
 domain master = Yes 

Para usar contraseñas codificadas para la autentificación, como sucede de manera estándar en versiones mantenidas de MS Windows 9x, MS Windows NT 4.0 a partir del service pack 3 y todos los productos posteriores, hay que configurar el servidor Samba de tal forma que sepa manejarlas. Esto se realiza mediante la entrada encrypt passwords = yes dentro de la sección [globals]. Este valor ya está predeterminado a partir de la versión 3 de samba. Además, las cuentas de los usuarios y las contraseñas se deben codificar en una forma que Windows entienda; se puede realizar mediante el comando smbpasswd -a name. Según el concepto de dominio de Windows NT, los propios ordenadores necesitan una cuenta de dominio que se genera mediante los siguientes comandos:

Ejemplo 16.4. Creación de una cuenta de ordenador

useradd nombre_ordenador  \$ 
smbpasswd -a -m nombre_ordenador

En el caso del comando useradd se ha añadido el símbolo del dólar mientras que el comando smbpasswd añade este carácter automáticamente al usar el parámetro -m.

En el ejemplo de configuración comentado /usr/share/doc/packages/samba/examples/smb.conf.SuSE se encuentran configuraciones que automatizan este trabajo.

Ejemplo 16.5. Creación automática de una cuenta de ordenador

add machine script = /usr/sbin/useradd -g machines \ 
                     -c "NT Machine Account" -d \ 
                     /dev/null -s /bin/false %m\$

Para que Samba pueda ejecutar correctamente este script, se requiere un usuario Samba con permisos de administrador. Con este fin, añada al grupo ntadmin el usuario seleccionado. A continuación puede añadir todos los usuarios de este grupo Unix al grupo “Domain Admins” con el siguiente comando:

net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin

Puede obtener información adicional en el capítulo 12 de la colección de HOWTOs de Samba: /usr/share/doc/packages/samba/Samba-HOWTO-Collection.pdf.

16.1.4. Instalación de los clientes

Los clientes sólo pueden acceder al servidor Samba vía TCP/IP. Actualmente no es posible usar con Samba NetBEUI o NetBIOS sobre IPX.

16.1.4.1. Windows 9x/ME

Windows 9x/ME ya incorpora el soporte de TCP/IP, pero al igual que en Windows for Workgroups no está incluido en la instalación estándar. Para instalar TCP/IP en un Windows ya instalado, se selecciona el icono de red en el panel de control y después Agregar..., Protocolo TCP/IP de Microsoft. Después de reiniciar el ordenador Windows puede encontrar el servidor Samba en el entorno de red haciendo doble clic con el ratón sobre el icono correspondiente en el escritorio.

[Tip]Sugerencia

Para usar una impresora conectada al servidor Samba, se recomienda instalar en el cliente el controlador general para impresoras PostScript o el utilizado para impresoras Postscript de Apple incluidos en la versión correspondiente de Windows. Después se conecta con la cola de impresión de Linux que acepta PostScript como formato de entrada.

16.1.5. Optimización

socket options ofrece una posibilidad de optimización. La configuración predeterminada del ejemplo de configuración incluido está orientada a una red Ethernet local. Más detalles en la página del manual de smb.conf y en la de socket(7). Puede obtener información adicional en el capítulo Samba performance tuning de Samba-HOWTO-Collection.

La configuración estándar en /etc/samba/smb.conf intenta proponer valores de amplio alcance orientándose a la configuración por defecto del equipo de Samba. Sin embargo, el ofrecer una configuración ya preparada resulta imposible desde el punto de vista de la configuración de red y de los nombres de grupos de trabajo. En el ejemplo de configuración comentado examples/smb.conf.SuSE se encuentran indicaciones que le serán de ayuda para adaptarse a las circunstancias locales.

[Tip]Sugerencia

El equipo Samba incluye en Samba-HOWTO-Collection una sección sobre la búsqueda de fallos. Asimismo, la sección V contiene instrucciones para controlar paso a paso la configuración.