SAMBA: recursos para sistemas heterogéneos.

(GNU/Linux y MS-Windows)

Isidro Merayo Castellano

AAITSI

http://www.fi.uva.es/aaitsi

imc@alumnos.uva.es

23 de marzo de 2003

INTRODUCCIÓN.

La realidad sobre las redes y los equipos conectados a ellas es bastante distinto del que se nos quiere hacer llegar. Las redes no son homogéneas sino heterogéneas, no solo hay PC's (con GNU/Linux y Windows 9x/NT/2000/XP) sino estaciones de trabajo, servidores (SUN, IBM, HP, Apple, etc) y con distintos sistemas operativos y distintas arquitectutras.

Samba es una suite de aplicaciones GNU/Linux (o Unix) que habla el protocolo SMB (Server Message Block). Muchos sistemas operativos, incluídos Windows y OS/2, usan SMB para operaciones de red cliente-servidor. Mediante el soporte de este protocolo, Samba permite a los servidores Unix entrar en acción, comunicando con el mismo protocolo de red que los productos de Microsoft Windows.

De este modo, una máquina Unix con Samba puede enmascararse como servidor en tu red Microsoft y ofrecer los siguientes servicios:

Compartir uno o más sistemas de archivos.

Compartir impresoras, instaladas tanto en el servidor como en los clientes.

Ayudar a los clientes, con visualizador de Clientes de Red.

Autentificar clientes logeándose contra un dominio Windows.

Proporcionar o asistir con un servidor de resolución de nombres WINS.

Samba es la idea de Andrew Tridgell, quien actualmente lidera el equipo de desarrollo de Samba development desde su casa de Canberra, Australia. El proyecto nació en 1991.

Samba implica a un par de demonios que proporcionan recursos compartidos a clientes SMB sobre la red (las comparticiones son denominadas a veces también como servicios).

Estos demonios son:

PRIMER DEMONIO.

smbd : Un demonio que permite compartición de archivos e impresoras sobre una red SMB y proporciona autentificación y autorización de acceso para clientes SMB.

nmbd: Un demonio que busca a través delWindows Internet Name Service (WINS), y ayuda mediante un visualizador.

Samba es distribuido bajo la licencia GPL.

Microsoft también ha contribuido materialmente poniendo a disposición su definición de SMB y del Internet-savvy Common Internet File System (CIFS), como Public Request for Comments (RFC), y otros documentos estandar. El protocolo CIFS es el nuevo nombre de las futuras versiones del protocolo SMB.

Samba puede ayudar a las máquinas Windows y Unix a coexistir en la misma red.

Sin embargo, existen algunas razones específicas por las cuales podrías desear instalar un servidor Samba en tu red:

No quieres pagar un servidor Windows NT para obtener las funcionalidades que este proporciona.

Puedes querer proporcionar un área común para datos o directorios de usuarios en orden a realizar una transición desde un servidor NT hacia un Unix, o viceversa.

Puede que desees compartir impresoras a entre clientes Windows y Unix.

Puede que quieras acceder a ficheros NT desde un servidor Unix.

Veamos ahora a Samba en acción.

NetBios.

En 1984, IBM diseñó un simple "application programming interface" (API) para conectar en red sus computadoras, llamado Network Basic Input/Output System (Net- BIOS). El API NetBIOS proporcionaba un diseño rudimentario para que una aplicación se conectara y compartiese datos con otras computadoras.

NetBios originalmente tenía que intercambiar instrucciones con computadoras de redes IBM PC o Token Ring. Exigió por consiguiente un protocolo de transporte de bajo nivel para llevar las peticiones de una computadora a la siguiente.

A finales de 1985, IBM lanzó dicho protocolo, el cual unión con el API NetBIOS para convertirse en NetBIOS Extended User Interface (NetBEUI). NetBEUI fue diseñado para redes de área local (LANs), y permitía a cada máquina usar un nombre (de hasta 15 caracteres) que no estuviera siendo usado en la red.

El protocolo NetBEUI se volvió muy popular en las aplicaciones de red, incluyendo a las que corrían bajo Windows para Grupos.

Debemos tener muy presente que TCP/IP usa números para representar direcciones de computadoras, tales como 192.168.220.100, mientras que NetBIOS usa sólo nombres.

En 1987, El Internet Engineering Task Force (IETF) publicó una serie de documentos de estandarización, titulados RFC 1001 y 1002, que perfilaban cómo NetBIOS podría trabajar sobre una red TCP/UDP.

SEGUNDO DEMONIO.

El estándar NBT (RFC 1001/1002) actualmente establece un trio de servicios sobre una red:

Un Servicio de Nombres

Dos Servicios de Comunicación o Datagramas o Sesiones.

El servicio de nombres resuelve el problema nombre-a-dirección. Los servicios de datagramas y sesiones son ambos protocolos secundarios de comunicación, usados para transmitir datos desde y hacia máquinas NetBIOS a través de la red.

NetBIOS, cuando cada máquina se vuelve activa, quiere reclamar un nombre para sí; esto se denomina registro de nombre. Pueden surguir problemas debido a que otra ya halla registrado ese nombre, ante este problema se plantean dos posibles soluciones diferentes.

Usar un Servidor de Nombres NetBIOS (NBNS) para controlar el registro de nombres NetBIOS de las máquinas.

Permitir a cada máquina de la red defender su nombre en el caso de que otra máquina intente usarlo.

También debe haber una forma de resolver un nombre NetBIOS hacia una dirección IP específica como ya mencionamos antes; esto es conocido como resolución de nombre.

Hay dos formas diferentes también aquí con NBT:

Haber reportado cada máquina su dirección IP cuando "escucha" una petición broadcast para su nombre NetBIOS.

Usar el NBNS para resolver nombres NetBIOS a direcciones IP.

Cuando una maquina cliente arranca, manda un mensaje de broadcast declarando que desea registrar un nombre NetBIOS especifico para ella.

Si nadie objeta nada obtiene ese nombre. Los nombres NetBIOS solo puede contener 15 caracteres, y estos caracteres deben ser los estandars alfanumericos (a-z, A-Z, 0-9) y algunos más (! @ # $% ^& ( ) - ' { } . ~)

Conceptos de Microsoft.

DominioWindows. Recuerda que un grupo de trabajo es una colección de computadoras SMB, las cuales residen todas en la misma subred y se encuentran suscritas al mismo grupo SMB. Un Dominio Windows va un paso más allá. Es un grupo de trabajo de máquinas SMB que tienen una añadido: un servidor que actúa como controlador de dominio. Hay actualmente dos protocolos separados usados por un controlador de dominio (logon server): uno para comunicar con máquinas Windows 95/98 y otro para comunicar con máquinas Windows NT.

TERCER DEMONIO.

Controlador de Dominio. El controlador de dominio es el centro nervioso de un

dominio Windows, tal como un servidor NIS lo es del servicio de información

de una red Unix. Los controladores de dominio tienen una serie de responsabilidades.

Una de las que te va a implicar a ti es la autentificación. La autentificación es el proceso de garantizar o denegar a un usuario el acceso a recursos compartidos o a otra máquina de la red, normalmente a través del uso de una password.

Cada controlador de dominio usa un security account manager (SAM) para mantener una lista de combinaciones nombre _ usuario_ contraseña. En un dominio Windows, cuando un cliente no autorizado solicita acceso a los recursos compartidos de un servidor, el servidor actúa y pregunta al controlador de dominio si ese usuario está autentificado.

Controlador de Dominio Primario y de Seguridad. La redundancia es una idea clave dentro de un dominio Windows. El controlador de dominio que está actualmente activo sobre un dominio es denominado como el Controlador Primario de Dominio (PDC). Además pueden existir uno o más Controladores de Dominio de Seguridad (BDCs) en el dominio.

Visualización (Browsing). La visualización, navegación o browsing es una respuesta de alto nivel para la pregunta del usuario: "¿Qué máquinas están ahí en la red Windows?". Recuerda que no hay conexión alguna con un navegador Web, aparte de la idea general de "descubrir qué hay por ahí fuera". Y, al igual que en la Web, lo que está ahí fuera puede cambiar sin previo aviso. Niveles de visualización son dos; visualización de lista de máquinas y visualización de recursos compartidos de una máquina.

El Servicio de Nombres de Internet de Windows (WINS). El Servicio de Nombres de Internet de Windows, o "Windows Internet Name Service" (WINS) es la implementación de Microsoft de un servidor de nombres NetBIOS (NBNS).

Como tal, WINS hereda muchas de las características de NetBIOS. Primero, WINS funciona con nombres simples o llano, en adición, WINS es dinámico: cuando un cliente se vuelve "aparece" en la red, se le requiere para que reporte su nombre de máquina, su dirección y su grupo de trabajo al servidor WINS local. Pueden configurarse múltiples servidores WINS para sincronizarse unos con otros tras determinado paso de tiempo. El actual servidor WINS activo es conocido como el servidor WINS primario. También puedes instalar un servidor WINS secundario.

Samba muy básico.

Samba actualmente contiene varios programas que sirven para diferentes pero determinados propósitos. Vamos a introducirnos en cada uno de ellos brevemente, y veremos cómo funcionan todos ellos. La mayoría de los programas que vienen con la distribución de Samba se centran en sus dos demonios. Echemos un vistazo a las responsabilidades de cada demonio:

smbd El demonio smbd es responsable de manejar los recursos compartidos entre

la máquina servidora Samba y sus clientes. Proporciona servicios de archivos,

CUARTO DEMONIO.

impresión y visualización a los clientes SMB a través de una o más redes. smdb controla todas las notificaciones entre el servidor Samba y los clientes de red. En adición, es responsable de la autentificación de usuarios, bloqueo de recursos y la compartición de datos a través del protocolo SMB.

nmbd El demonio nmbd es un sencillo servidor de nombres que imita la funcionalidad de los servidores WINS y de resolución de nombres NetBIOS. Este demonio está a la escucha de peticiones para el servidor de nombres y proporción la información apropiada cuando se le llama.

También proporciona listas de visualización del Entorno de Red y participa en las elecciones de los visualizadores.

La distribución de Samba también está acompañada por un pequeño grupo de herramientas tipo línea de comandos Unix:

smbclient Un cliente tipo FTP Unix que puede ser usado para conectar a recursos compartidos por Samba.

smbtar Un programa para realizar copias de seguridad de datos sitos en los recursos compartidos, similar al comando Unix "tar". nmblookup Un programa que proporciona búsquedas de nombres NetBIOS sobre TCP/IP.

smbpasswd Un programa que permite a un administrador cambiar las passwords encriptadas usadas por Samba.

smbstatus Un programa para reportar las conexiones de red actuales hacia los recursos compartidos por el servidor Samba.

testparm Un simple programa para validar el fichero de configuración de Samba.

testprns Un programa que testea si varias impresoras son reconocidas por el demonio smbd.

INSTALACIÓN.

Cuando vamos a instalar samba (o cualquier aplicación) siempre nos planteamos la misma pregunta ¿Binarios o Fuentes? ya respondida en un seminario/conferencia anterior [Instalación de Aplicaciones por Raúl Portales]. De todas formas vamos a comentar alguna de las opciones with-smbwrapper Incluye soporte SMB wrapper, lo cual permite a los ejecutables de la parte Unix acceder a sistemas de ficheros SMB/CIFS como si fueran sistemas de ficheros de Unix.

with-krb5=directorio-base Incluye soporte para Kerberos version 5.0

with-pam Incluye soporte para para Pluggable Authentication Modules (PAM), una característica común de autentificación en el s.o. Linux.

with-ldap Incluye soporte para el Lightweight Directory Access Protocol (LDAP).

with-nis Incluye soporte para obtener información password-fichero desde NIS.

with-ssl Incluye soporte para Secure Sockets Layer (SSL), el cual es usado para proporcionar conexiones encriptadas desde cliente al servidor.

with-quotas Incluye soporte de cuotas de disco.

Para ver más posibilidades ./configure -help.

Hay un par de pasos finales a realizar. Específicamente, añadir la Herramienta de Administración Web de Samba (SWAT) a los ficheros de configuración /etc/services y /etc/inetd.conf. SWAT funciona como demonio bajo inetd y proporciona un editor basado en formas en tu navegador Web para la creación y/o modificación de ficheros de configuración SMB.

Para añadir SWAT, añade la siguiente línea al final del fichero /etc/services: swat 901/tcp

1. Añade estas líneas a /etc/inetd.conf. (Verifica la página de manual de tu inetd.conf para ver el formato exacto del fichero inetd.conf, por si difiere con el ejemplo expuesto aquí). No olvides cambiar la ruta al binario SWAT si lo has instalado en una ubicación distinta a la que genera la instalación por defecto en $SAMBA.

swat stream tcp nowait.400 root

$SAMBA/bin/swat swat

Y esto es todo en cuanto a la instalación. Pero antes de que puedas empezar a usar Samba, sin embargo, necesitarás crear un fichero de configuración para él.

FICHERO BÁSICO DE CONFIGURACIÓN.

La clave para configurar Samba está en un único fichero de configuración: smb.conf.

Este fichero de configuración puede ser muy simple o extremadamente complejo.

[global]

workgroup = SIMPLE

[test]

comment = For testing only, please

path = /export/samba/test

read onfiltered= no

guest ok = yes

Este fichero de configuración tiene un recurso compartido SMB llamado test, este recurso se encuentra en nuestro servidor Samba en el directorio /export/samba/test.

Para completar deberemos crear la estructura de directorios en nuestro servidor GNU/Linux.

# mkdir /export/samba/test

# chmod 777 /export/samba/test

También tenemos una herramienta gráfica (SWAT) para poder realizar las tareas administrativas, para ello debemos utilizar un navegador y conectarnos a http://localhost: 901 conectarnos como usuario root.

Podemos/debemos comprobar que el fichero de configuración es sintácticamente correcto, para ello Samba nos proporciona testparm. Este programa realiza una búsqueda de errores sintáctico y nos informa de cualquier error.

Iniciando los Demonios.

En primer lugar recordar que todas las tareas administrativas se deben realizar como usuario root.

En Samba existen dos procesos que se encargan de que Samba funcione correctamente, estos son smbd y nmbd.

Tenemos tres formas de iniciar los demonios:

De una manera manual

Al arranque del servidor

Desde inetd/xinetd

De forma manual de una sencilla manera.

# $SAMBA/bin/smbd -D

# $SAMBA/bin/nmbd -D

Al arranque del servidor tipo Unix System V, hay unos scripts para iniciar y parar los demonios del sistema. Estos scripts se encuentran en /etc/init.d# Check that we can write to it... so non-root users stop here[ -w /etc/samba/smb.conf ] || exit 0

RETVAL=0

start() {

KIND="SMB"

echo -n $"Starting $KIND services: "

daemon smbd $SMBDOPTIONS

RETVAL=$?

echo

KIND="NMB"

echo -n $"Starting $KIND services: "

daemon nmbd $NMBDOPTIONS

RETVAL2=$?

echo

[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/smb || \

RETVAL=1

return $RETVAL }

stop() {

KIND="SMB"

echo -n $"Shutting down $KIND services: "

killproc smbd

RETVAL=$?

...

Con estos scripts podemos arrancar, parar, reinicializar, comprobar estado, etc

# /etc/init.d/smb start

Starting SMB services: [ OK ]

Starting NMB services: [ OK ]

ver estado

# /etc/init.d/smb status

smbd (pid 5887) is running...

nmbd (pid 5887) is running...

y paralos

# /etc/init.d/smb stop

Shutting down SMB services: [ OK ]

Shutting down NMB services: [ OK ]

Desde inetd/xinetd

El demonio inetd/xinetd es un "super demonio". Escucha por los puertos definidos en /etc/services y ejecuta el programa apropiado para cada puerto, cada uno de los cuales definidos en /etc/inetd.conf .Veamos el fichero /etc/services las lineas correspondientes netbios-ns 137/udp #NETBIOS Name Service netbios-ssn 139/tcp #NETBIOS session service en /etc/inetd.conf netbios-ns dgram udp wait root $SAMBA/bin/nmbd nmbd netbios-ssn stream tcp nowait root $SAMBA/bin/smbd smbd para que el demonio active los cambios mandamos un señal de colgar (HUP) para que el demonio relea su fichero de configuración kill -HUP id_proceso.

Vamos a testear como se encuentran los demonios

[imc@patricia imc]$ smbclient -U% -L localhost

added interface ip=192.168.1.69 bcast=192.168.1.255 nmask=255.255.255.0

Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.2.7]

Sharename Type Comment

--------- ---- -------

IPC$ IPC IPC Service (Samba Server)

ADMIN$ Disk IPC Service (Samba Server)

Server Comment

--------- -------

PATRICIA Samba Server

Workgroup Master

--------- -------

MYGROUP

Ejemplo de mi PC (RH 7.3) la instalación por defecto, sin configurar nada.

ClientesWindows

Samba usa TCP/IP para hablar a sus clientes de la red. Necesitaremos configurar las máquinas Windows para que puedan operar sobre una red TCP/IP. Una vez estos requerimientos hayan sido realizados, podremos mostrarte cómo acceder a los recursos compartidos en el servidor Samba.

Configurando MSWindows 95/98

Windows 95/98 no fue diseñado para que un PC tuviera más de un usuario; este concepto es más inherente a un sistema opertativo Unix o Windows NT. Sin embargo, Windows 95/98 trae un soporte limitado para múltiples usuarios: si lo configuras, el sistema operativo mantendrá un archivo de parámetros de configuración (profile) y de contraseñas (*.PWL) para cada usuario. Esto está muy lejos de la seguridad de multiusuario. En otras palabras, Windows 95/98 no va a evitar que un usuario pueda destruir el trabajo de otro en el disco duro local.

Lo primero que necesitamos hacer es decirle aWindows que matenga perfiles (pro-files) de usuario separados, y que almacene nombres de usuario y contraseñas para autentificar a cualquiera que intente un acceso a un recurso compartido por Samba.

Una vez seleccionado el icono "Contraseñas" en el Panel de Control, hac click sobre la pestaña "Perfiles de Usuario". Deberías ver la caja de diálogo que se muestra en la Figura. Entonces pulsa sobre el segundo de los dos botones de radio, el que comienza por "Los usuarios pueden personalizar sus preferencias...". Esto causa que Windows almacene un perfil separado para cada usuario, y almacena el nombre de usuario y la contraseña que proporciones, la cual se usará más tarde cuando se conecte a un servidor SMB/CIFS. Finalmente, selecciona las dos opciones bajo el botón, como se muestra en la figura.

Configurando la red.

Debemos tener el protocolo TCP/IP configurado correctamente.

Las redes Microsoft trabajan con protocolos específicos, como IPX o TCP/IP, para un dispositivo físico específico, tal como una tarjeta Ethernet o una conexión telefónica.

Panel de Propiedades de TCP/IP para el dispositivo Ethernet

Dirección IP.

Configuración DNS.

Configuración WINS.

Enlaces.

"Especificar una Dirección IP" e introduce la dirección del cliente y la máscara de subred en el espacio adecuado. Si usas DHCP en tu red para proporcionar direcciones IP a las máquinas Windows, selecciona el botón "Obtener una dirección IP automáticamente".

El "Domain Name Service" (DNS) es responsable de trasladar nombres de computadoras de Internet como hobbes.example.com hacia direcciones de máquinas IP tales como 192.168.236.10. Hay dos maneras de usar esto en una máquina Windows 98: puedes especificar un servidor para realizar la traslación por ti, o puedes mantener una lista local de pares nombre/dirección IP.

WINS es el Servicio de Nombres de Internet deWindows, su versión de un servidor de nombres NetBIOS. Si has activado WINS en Samba, debes indicarle a Windows la dirección del servidor Samba. Si estás usando servidores WINS que están en máquinas Windows NT, introduce cada una de ellas. La caja de diálogo que aparece tras seleccionar la pestaña "Configuración WINS" (pestaña "WINS Configuration") Nombre y Grupo de Trabajo.

En la Configuración de la Red, selecciona la pestaña "Identificación", la cual te llevará a la caja de diálogo. Pon el nombre de tu máquina. Esta vez, en vez del nombre de máquina DNS y dominio, estás estableciendo el nombre NetBIOS. Sin embargo, lo mejor es que los dos nombres sean idénticos. Establece aquí también el nombre de tu grupo de trabajo, evita llamarlo WORKGROUP o tendrás el mismo nombre de grupo que todas las máquinas no configuradas del mundo.

CONFIGURANDO SAMBA PDC EN UNA RED DE MÁQUINAS

MS WINDOWS XP.

Resulta que para crear un dominio windows (es decir grupo de trabajo + PDC) en caso de clientes NT, W2000 y XP pro hay que crear lo que se llama cuentas de confianza de las máquinas.

Esas cuentas de confianza es algo que podríamos definir como "esta máquina y esta otra están en mis dominios". No solamente los usuarios se autentican y se tienen en cuenta, sino que también las mismas máquinas han de ser tenidas en cuenta.

Para ello hay que crear usuarios en Linux con el nombre netbios de las clientes seguidos del símbolo de dolar.

Pasos.

1. Crearemos un grupo, y para evitar líos, con el mismo nombre que le hemos puesto en el smb.conf en la opción workgroup groupadd grupo.

2. Hay que crear un usuario Unix con el nombre netbios de la máquina y (ojo con esto) seguido del símbolo dolar, sin shell, sin directorio home e integrado en un grupo. El nombre de la máquina es el que figura en el cliente en Panel de Control ->Sistema - Nombre de equipo. Imaginemos el grupo que se llama grupo y la máquina se llame máquina adduser -g grupo -d /dev/null -s /dev/null maquina$. Si observamos el fichero /etc/password, veremos una entrada que empieza por maquina$ que es la cuenta de la máquina.

3. Hay que crear la cuenta de confianza añadiendo a smbpasswd la máquina smbpasswd -a -m maquina.

4. Observa con cuidado que aquí no hace falta poner el símbolo de dólar. Hay que indicar, eso sí, que se trata de una máquina (la opción -m). No va a pedir contraseñas.

Si hay más máquinas, pues lo mismo para cada una de ellas.

Con todo esto ya está hecho el trabajo en lo que respecta al servidor.

Configurar las estaciones de trabajo para que se "autentifiquen" con el PDC. Esta es la parte más diferenciada con respecto a clientes W2000, WNT y W98/95. Resulta que WXP home no puede integrarse en un dominio Windows. En cambio el XP profesional sí.

Hay que hacer y comprobar los siguientes pasos:

1. Ir a Panel de Control ->Herramientas Administrativas ->Directivas de Seguridad local y mirar Directivas Locales ->Opciones de seguridad.

2. Miembro de dominio: descifrar o firmar digitalmente datos de un canal seguro (siempre): Deshabilitar

3. Miembro de dominio: Deshabilitar cambios password en cuenta máquina ->deshabilitar

4. Miembro de dominio: Requerir clave de sesión protegida (W2000 o más reciente) ->deshabilitar

5. Cambiar una cosilla del registro. Esto merece comentario aparte.

Hay un archivo en /usr/share/doc/samba.XXXX/docs/Registry/ que se llamaWinXP_SignOrSeal.reg.

Este archivo lo guardamos en un diskette y en cada cliente le damos dos clicks para que se agregue su información al registro de windows.

Simplemente cambia esta línea del registro

[HKEY_LOCAL_MACHINE\SYSTEM\

CurrentControlSet\Services\Netlogon\Parameters]

"requiresignorseal"=dword:00000000

Con esto hemos preparado el cliente. Solo falta agregarlo a nuestro dominio.

Agregar el cliente al dominio.

Vamos a Panel de Control ->Sistema y pinchamos en la pestaña "Nombre del equipo"

Vera una descripción del equipo. Puede escribir lo que desee.

Pincháis en el botón "Cambiar"

Nombre del equipo: en nuestro ejemplo maquina.

Miembro de: elegimos dominio.

El nombre del dominio es el nombre "WorkGroup" del archivo smb.conf.

Le damos a aceptar y nos pide un usuario y una contraseña.

Esto me dio guerra.

Hay que poner root (sí root) y la contraseña de root del servidor.

Nos dará la bienvenida.

Una cosa: el usuario root tiene que estar agregado en el fichero smbpasswd, para que el cliente pueda autenticarlo y así tenerlo en el dominio, pero agregad root solamente para esta cuestión, luego (una vez configurada toda la red) es recomendable borrarlo.

Compartir Recursos

Los nombres encerrados entre corchetes delimitan secciones únicas del fichero smb.conf file; cada nombre de sección denomina al recurso (o servicio) a la que ser refiere la sección. Por ejemplo, las secciones [test] y [homes] son cada una de ellas comparticiones de disco únicas; contienen opciones que mapean a directorios específicos del servidor Samba. La sección [printers] contiene opciones que mapean a varias impresoras del servidor. Todas las secciones definidas en el fichero smb.conf, con la excepción de la sección [global], estarán disponibles como discos o impresoras compartidas para los clientes del servidor Samba.

[global]

...

[homes]

...

[printers]

...

[test]

...

El resto de líneas son opciones individuales de configuración para cada recurso.

Estas opciones continuarán hasta que se encuentre una nueva sección rodeada entre corchetes, o hasta el final del fichero.

Hay que tener en cuenta que el sistema operativo GNU/Linux (UNIX también) es sensible a mayúsculas/minúsculas, esto hay que tenerlo muy en cuenta a la hora de especificar rutas, ya que un cliente no podría acceder al recurso. Los comentarios se utiliza # y ;. Uso de variables deben comenzar por caracter% y un único carácter alfabético, indistintamente mayúscula o minúscula.

[global]

La sección [global] aparece en todos los ficheros de configuración de Samba, aunque no es obligatoria su definición. Cualquier opción de esta sección se aplicará al resto de recursos, como si los contenidos de la sección se copiasen a todas las demás. Sólo una salvedad: otras secciones pueden contener la misma opción pero con distinto valor; lo último prevalece siempre sobre lo antiguo, así que ese último valor prevalecerá sobre el establecido en la sección [global].

[homes]

Si un cliente intenta conectar a un recurso que no aparece en el fichero smb.conf, Samba buscará un recurso [homes] en el fichero de configuración. Si existe alguno, el recurso no identificado es asumido como nombre de usuario GNU/Linux, el cual :

Cuadro 1: Variables de Samba.

Variable Definición

Relativas a Clientes

%a Arquitectura de Cliente (p.ej., Samba, WfWg,WinNT,Win95,

o UNKNOWN)

%I Dirección IP de Cliente (p.ej., 192.168.220.100)

%m Nombre NetBIOS de Cliente

%M Nombre DNS de Cliente

Relativas a Usuarios

%g Grupo Primario de %u

%G Grupo Primario de%U

%H Directorio "home" de %u

%u Actual nombre usuario Unix

%U Nombre de usuario (no siempre usado por Samba)

Relativas a Recursos

%p Automontador de ruta para el recurso, si difiere de%P

%P Actual directorio root del recurso

%S Actual nombre del recurso

Relativas a Servidor

%d Actual PID de servidor

%h nombre DNS de máquina del servidor Samba

%L Nombre NetBIOS del servidor Samba

%N Directorio "home" del servidor, desde el mapa automount

%v Versión de Samba

Varias

%R Nivel de protocolo SMB que se ha negociado

%T Fecha y hora actual

es interrogado en la B.D. de contraseñas del servidor Samba. Si el usuario aparece registrado, Samba asume que el cliente es un usuario GNU/Linux intentando conectar a su cuenta "home" en el servidor GNU/Linux.

[printers]

Si un cliente intenta conectar a un recurso que no existe en el fichero smb.conf, y su nombre no puede ser encontrado en el fichero de contraseñas, Samba comprobará si el recurso solicitado es una impresora. Samba lo hace leyendo el fichero de capacidades de impresora (normalmente /etc/printcap) para ver si el nombre del recurso aparece ahí1. Si existe, Samba crea el recurso.

Opciones del fichero de configuración.

Las opciones de los ficheros de configuración de Samba entran en dos posibles categorías : globales o recursos (shares). Cada categoría dicta dónde una opción puede aparecer en el fichero de configuración.

Global Las opciones globales deben aparecer en la sección [global] y sólo ahí. Estas son opciones que normalmente se aplican al servidor Samba, y no a los recursos que se dan a compartir.

Share Las opciones de recurso compartido o "share" pueden aparecer en las secciones de recursos específicos, o pueden aparecer en la sección [global]. Si aparecen en la sección [global], definirán un valor por defecto para todos los recursos, a menos que un recurso determinado redefina ese valor.

Respecto a las opciones sobre el fichero de configuración podemos:

Fichero externo de configuración

[global]

config file = $SAMBA/smb.conf.mia

Incluir un fichero externo

[homes]

include = $SAMBA/smb.conf.hp850

1Dependiendo de tu sistema, este fichero puede no estar o ser /etc/printcap. Puedes usar el comando testparm que viene con Samba para determinar el valor de la opción de configuración printcap name; este fue el valor por defecto escogido cuando Samba fue compilado.

Clonar opciones de configuración del mismo fichero

[ejemplo001]

writable = yes

browsable = yes

valid users = maria, pedro, juan

[clonar]

path = /usr/local/samba/comun

copy = ejemplo001

Configurando un Servidor

Cuentas de usuarios

La administración de usuarios Samba, se realiza como cualquier otro usuario de la máquina GNU/Linux.

Un fichero smb.conf básico. Vamos a ver las opciones básicas de la sección [global]

netbios name: nombre que va a recibir nuestro servidor

server string: mesaje respecto a nuestro servidor

workgroup: el grupo de trabajo al que pertenece

domain master: el maestro de dominio

encrypt password: para que las contraseñas viajen encriptadas por nuestra red

[global]

# configurando nuestro servidor

netbios name = miniservidor

server string = Pedazo de Pentium 150

workgroup = cuatrocolores

domain master = yes

encrypt password = yes

Vamos a compartir un espacio de disco

path: ruta absoluta al recurso

comment: comentario sobre el recurso

writable/read only: permisos sobre el recurso

guest ok: permite/prohibe el acceso a recursos por parte de usuarios anónimos

[desastre]

# configurando un espacio comun

path = /export/samba/desastre

comment = Un desastre de lugar

writable = yes

guest ok = yes

otro visión

[maria]

# configurando un espacio comun

path = /usuarios/maria

comment = Directorio de trabajo de Maria

writable = yes

valid users = maria

create mode = 0660

directory mode = 0770

otro más

[sistemas]

# configurando un espacio comun

path = /usuarios/sistemas

comment = Directorio de trabajo de Maria

writable = yes

# valid users = maria, juan, carlos

valid users = @sistemas

Deberemos crear el recurso físicamente, es decir crear la estructura de directorios.

# mkdir /export/samba/desastre

# chmod 777 /export/samba/desastre

Lo que nos faltaba, las impresoras.

Samba permite a las máquinas clientes enviar documentos a impresoras conectadas al servidor Samba.

Si la impresora está capturada en la máquina cliente y esta dispone del controlador de impresión adecuado, el cliente puede mandar perfectamente tareas de impresión a la impresora conectada al servidor Samba.

Para administrar impresoras con Samba, deberias entender el proceso basico mediante el cual se produce una impresión a través de una red. Enviar una taréa de impresión a un servidor Samba implica cuatro pasos:

1. Abrir y autenticar una conexión a la impresora.

2. Copiar el fichero a través de la red.

3. Cerrar la conexión.

4. Imprimir y borrar la copia del fichero.

[printer1]

printer = yes

print commando = /usr/bin/lpr -r %s

printer = lp

printing = BSD

read onfiltered= yes

guest ok = yes

Seguridad

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 segura. Actualmente hay cuatro niveles de seguridad utilizados por Samba en sus redes: share, user, server y domain.

Seguridad a nivel de recurso (share). Cada recurso en el grupo de trabajo tiene una o más contraseñas asociadas con él. Cualquiera que conozca una contraseña valida puede acceder al recurso.

Seguridad a nivel de usuario (user). Cada recurso en el grupo de trabajo se configura para permitir acceso a determinados usuarios. Con cada conexión inicial, el servidor Samba verifica los usuarios y sus contraseñas para permitirles el acceso al recurso.

Seguridad a nivel de servidor (server). Es la misma que a nivel de usuario (user),pero en esta el servidor Samba utiliza otro servidor SMB para validar los usuarios y sus contraseñas antes de conceder el acceso.

Seguridad a nivel de dominio (domain). Samba se convierte en un miembro de un dominio Windows y utiliza al Controlador Primario del Dominio (PDC) para llevar a cabo la autenticación. Una vez autenticado, al usuario se le da un atributo especial que le permite acceso a todos los recursos a los que tenga derechos de acceso. Con este atributo, el PDC no tendrá que volver a validar al usuario cada vez que intente conectarse a otro recurso dentro del dominio.

Caso Práctico

Vamos a ver como es nuestra red de ejemplo.

192.168.1.10

miniservidor

192.168.1.69

patricia

julio

192.168.1.3

miniservidor (GNU Debian 3.0) va a ser el servidor de dominio y poco disco duro libre.

patricia (RH7.3+XFS) tiene un disco duro con bastante espacio libre.

julio (Windows XP Profesional) dos discos duros.