Descargar

Proyecto de Software Libre “Samba” (página 2)


Partes: 1, 2

De esta manera nació el nombre de Samba. El paquete completo se distribuye bajo la GNU GPL. Aunque parezca extraño, Microsoft también ha contribuido materialmente poniendo a disposición de la gente de Samba la definición de SMB y del Common Internet File System (CIFS). El protocolo CIFS es el nuevo nombre de las futuras versiones de SMB que serán usadas por Windows.

¿Cuándo es recomendable usar Samba?

Para acceder a archivos NT desde un servidor Unix.

Para compartir impresoras entre clientes Windows y Unix. Para reemplazar un servidor NT, OS/2 o Netware.

Este proyecto goza de una fama importante, en gran medida por la utilidad que reviste. Es más que interesante su implementación en ambientes LAN que cuentan con equipos que corren distintos sistemas operativos. Los servicios que brinda son los justos y necesarios para este tipo de configuraciones ( autenticación de usuarios, compartir archivos e impresoras). Con todas estas características, Samba se transforma en una herramienta más que útil y por sobre todas las cosas es libre; dándole aun más ventajas al usuario final.

Cuenta con distintos tipos de paquetes:

? "samba": un servidor de archivos e impresoras para Unix

? "samba-common": archivos utilizados tanto por clientes como por servidores

? "smbclient": un cliente simple para Unix a modo de "LanManager".

? "swat": un administrador via Web.

? "samba-doc": documentación sobre Samba (también en PDF),

? Y otros como smbfs, libpam-smbpass, libsmbclient, libsmbclient-dev, winbind y python- samba.

Las herramientas necesarias

Paquetes a instalar

Los paquetes de samba suelen ser 3 (al menos en la distribución Mandrake):

1. samba-common

2. samba samba-client

El primer paquete tiene los elementos que van a permitir el buen funcionamiento de los otros dos: Las herramientas de conversión de tablas de caracteres Windows, los ficheros de configuración y la documentación.

El segundo paquete contiene todos los programas del servidor, es decir: aplicaciones que permiten hacer accesible los recursos a los usuarios, herramientas de configuracion y la documentacion esencial de Samba.

El último paquete contiene los programas clientes, que permiten acceder a los recursos compartidos

Proceso de instalación

Los paquetes se pueden instalar fácilmente con urpmi (la utilidad tipo apt de mandrake) si estas conectado a la Internet. O bien desde el CD-ROM de la distribución. En todo caso se aconseja instalar los 3 paquetes anteriores y tal vez el paquete swat que es una aplicación web que te permite configurar tu servidor Samba fácilmente. Pero para ello te hará falta el apache y varias dependencias mas, así que con los 3 paquetes de Samba nos bastara para empezar.

Personalmente lo que mas me gusta es lanzar

# urpmi samba*

Nota: Versiones antiguas de urpmi se quedaban bastante colgadas. La ultima versión obtenida de la MDK 8.2 va bastante mejor, aunque aun le queda para llegar al nivel del apt-get (Debian) o del emerge (Gentoo)

Presentación de los servidores

Los dos demonios

Dos demonios se encargan de ofrecer los servicios de la conjunto de aplicaciones del Samba. El primero es el smbd y el segundo de ellos es el nmbd.

smbd es el demonio que se encarga de la compartición de recursos: ficheros, impresoras, … pero también del control del acceso a los recursos. Gestiona los permisos delos diferentes clientes una vez que estos han sido identificados.

El demonio nmbd se ocupa de anunciar servicios. Es decir, se encarga de informar a las maquinas presentes en la red sobre cuales son los recursos disponibles. Este demonio maneja también la resolución de nombres de NetBIOS. Puede para ello comunicarse con un servidor WINS (Windows Internet Naming Service) presente en la red.

Nota: La resolución de nombres consiste en obtener una equivalencia entre la dirección IP de la LAN y el nombre de la maquina.

Las herramientas de configuración

Existen dos formas para realizar la configuración:

Es posible editar directamente los ficheros de configuración con un editor de texto, pero podemos configurar esos mismos ficheros con la ayuda de una interfaz gráfica, obteniendo idéntico resultado.

Nosotros veremos aquí el manejo de Swat (Samba Web Administration Tool). Se trata de una interfaz que se comporta como un servidor Web, conectándose a la maquina por medio de un simple navegador. Es posible leer la documentación, cambiar la configuración y realizar las demás tareas administrativas después de habernos validado con un usuario y una contraseña.

Nota: El servidor Swat suele ejecutarse en el puerto 901, para no entrar en conflicto con el servidor de http (Servidor Web) que suele escuchar el puerto 80.

Las herramientas del cliente

Las herramientas para el cliente bajo Microsoft Windows son aquellas utilizadas habitualmente para trabajar con servidores NT. No hay que cambiar nada en este sentido. El funcionamiento para las maquinas Windows es totalmente transparente.

Para GNU/Linux, existen en el paquete samba-client programas cliente para los servicios CIFS que sean proporcionados por un servidor Windows o por un servidor Unix usando Samba.

Configuración con SWAT

La herramienta SWAT es el ejemplo de una buena interfaz de administración grafica. Intenta de forma relativamente transparente poder proporcionar todas las funcionalidades de la configuración en modo texto.

Nota: Como la configuración de Samba es sencilla, ha sido posible agrupar todas las posibilidades en un número reducido de opciones, sin sobrecargar la interfaz. Por otro lado SWAT ofrece la posibilidad de generar un fichero smb.conf de muestra, con el que podremos estudiar la sintaxis del script por si tuvieramos que editarlo a mano en alguna ocasión. De esta forma explicaremos las 2 formas de trabajar en paralelo.

Presentación de los ficheros en modo texto.

El fichero /etc/smbpasswd contiene los passwords de los usuarios de Samba, de forma cifrada.

El fichero /etc/lmhosts es un interfaz entre los nombres de maquinas NetBIOS y las direcciones IP numericas.

Su formato es parecido al de /etc/hosts.

El fichero /etc/smbusers contiene una lista de usuarios del sistema, seguida de una lista de usuarios de Samba que disponen de los derechos de esos usuarios.

De esta forma es posible crear varios usuarios Samba sin tener que crear para cada uno de ellos un usuario del sistema.

Los menus de SWAT

Las secciones del smb.conf

Los menus GLOBALS, SHARES, PRINTERS son parecidos a los de las secciones existentes en el fichero /etc/smb.conf, que se presenta como un fichero .ini habitual del mundo Windows.

El menu GLOBALS contiene variables generales que se aplican al total de los recursos puestos a disposición del servidor de SMB. Esta seccion contiene tambien informacion de identificacion del servidor dentro de la red NetBIOS: grupo de trabajo, nombre e identificador. Esta seccion contiene tambien los modos de funcionamiento de Samba.

El menu SHARES contiene la lista de comparticiones de disco efectuadas por la maquina. Se aconseja primero crear la particion compartida y despues precisar para cada particion sus propiedades particulares.

Nota: aquí hablo de particiones, pero también vale para carpetas/directorios compartidos.

El menú PRINTERS es casi idéntico al anterior, pero permite compartir impresoras en lugar de particiones de disco.

Los otros menús

El menú HOME permite acceder a la versión HTML de la documentación de Samba. Faltan tal vez algunas opciones, en particular la ayuda sobre el propio SWAT deja algo que desear. Se trata a menudo de una ayuda relativa a las opciones de los ficheros en modo texto. A menudo más configurables que la herramienta grafica. De un modo u otro toda esta documentación es en el fondo muy usable.

El menú VIEW nos permite ver el fichero smb.conf tal cual ha sido redactado por SWAT. Es posible ver tambien la totalidad de las opciones posibles, incluso las que SWAT no ha cambiado, pero que tienen un valor por defecto.

El menu PASSWORD permite al usuario cambiar su contraseña. Se trata de un interfaz grafico para el programa smbpasswd. Sirve tambien al administrador para añadir nuevos usuarios.

Teoría de funcionamiento de CIFS

Anunciar los recursos disponibles

Sobre una misma red, varias maquinas pueden poner recursos a disposición de otras. CIFS dispone de un sistema para anunciar servicios (browsing), que permite saber que recursos compartidos hay disponibles.

Cada maquina que desea anunciar sus recursos compartidos a las otras maquinas contacta con una maquina en particular, la Servidora de Anuncios (Master Browser) que se encarga de centralizar estas notificaciones de presencia. Es posible configurar el servidor Samba para que sea el mismo Servidor de Anuncios o dejar esta tarea a una maquina Windows.

Restricción de acceso a recursos

El acceso a los recursos puede controlarse de dos formas:

Escondiendo el recurso, es decir, no anunciándolo a ciertas maquinas de la red. Estableciendo un sistema de validación basado en contraseña, para restringir el acceso.

El anuncio de servicios esta limitado al "grupo de trabajo". Cada maquina Windows puede ser miembro de un solo grupo, y por tanto solo puede pertener a un conjunto de maquinas que compartan los mismos recursos.

Es posible de este modo separar conjuntos de recursos compartidos, creando distintos grupos de trabajo. Si lo que deseamos es tener maquinas accediendo a los recursos de varios grupos distintos, es necesario pasar por un sistema de autentificación.

Existen 4 formas distintas de autentificación, cada una con sus ventajas e inconvenientes. La autentificacion por usuario/contraseña.

Se trata del metodo por defecto. Representa la ventaja de permitir una gestion fina de los permisos. Para cada usuario es posible definir el acceso o no a unos recursos. Este metodo presenta un inconveniente: cada usuario debe disponer de una cuenta en la maquina Unix, para permitir la autentificacion.

El control de acceso por comparticiones.

Se trata de un metodo mas global: cada recurso compartido es protegido por un password propio. Para ello es necesario que varios usuarios conozcan el mismo password y que recuerden la contraseña adecuada para cada recurso compartido al que accedan.

Este metodo presenta la ventaja de que no son necesarias tantas cuentas de usuario como usuarios haya, sino tantas como recursos se compartan.

Autentificacion contra otro servidor.

Existen tambien dos metodos indirectos de control de acceso.

El primero, el metodo server, consiste en consultar con otro servidor CIFS, que se encargara de la autentificacion.

El segundo metodo, domain, consiste en validarse contra el servidor de dominio NT.

Nota : Un dominio NT es un conjunto de maquinas que comparten a la vez recursos y un proceso de autentificacion comun.

Configuración de los parámetros globales

Identificar el servidor

Primero hay que elegir algunos parametros de funcionamiento del servidor, para que se integre bien en la red.

El campo server string, permite elegir la descripcion que acompaña al nombre del servidor en la lista de recursos anunciados.

El campo netbios name, permite definir el nombre de la maquina, no como un nombre de DNS, sino como un nombre de resolucion de nombres propio del protocolo NetBIOS. Es importante entender que son dos cosas totalmente diferentes!

El campo workgroup, permite elegir el grupo de trabajo del que el servidor Samba hace parte.

El campo interfaces permite identificar la o las tarjetas de red que enlazan el servidor con el grupo de trabajo.

El control de acceso

El campo security permite elegir el metodo de autentificacion, podemos elegir uno de los vistos anteriormente.

Los menus hosts allow y host deny permiten controlar el acceso a los recursos de ciertas maquinas. Las configuraciones hechas en esta seccion se aplican a la totalidad de los recursos compartidos,independientemente de la configuracion especifica.

La seccion [GLOBAL]

Las configuraciones realizadas por Swat se reflejan en el fichero de configuracion /etc/smb.conf. Si editamos dicho fichero podremos ver algo de este estilo:

[global]

workgroup = nombre_del_grupo server string = Servidor Samba security = SHARE

log file = /var/log/samba/log.%m max log size = 50

La comparticion de impresoras

Las ventajas de un servidor de impresión Samba permite compartir facilmente una impresora conectada fisicamente a una maquina Unix, haciendo así accesible a todas las maquinas conectadas a la red. Una impresora de red que no soporte mecanismos de autentificacion puede ser puesta a disposicion de los usuarios gracias a un servidor de impresion de Samba, lo que permite controlar el acceso.

Utilización de la interfaz SWAT para configurar impresoras

Elegir la impresora

Esta operación se realiza dentro del menu PRINTERS. Este presenta una lista de impresoras existentes. Seleccionando una en la lista desplegable y usando el comando Choose Printer (elegir impresora) accederemos a su configuracion.

Por defecto Samba extrae la lista de impresoras disponibles de /etc/printcap. Si la maquina dispone de otras impresoras, es posible añadirlas, introduciendo su nombre en el campo Create Printer y confirmando la accion.

Una lista de datos a rellenar aparece en este momento

El camino de acceso (PATH)

En el caso de una impresora se trata de del camino hacia el directorio utilizado por samba para conservar la cola de impresion. En general se adopta /var/spool/samba

Autorizar el acceso a invitados (guest)

Autorizar el acceso guest, es permitir a cualquier usuario de una maquina miembro del grupo de trabajo usar la impresora.

Atencion! La integracion en un grupo de trabajo no es un metodo fiable de validacion. Cualquier usuario de una maquina Windows puede cambiar su grupo de trabajo tantas veces como desee sin que ningun mecanismo de autentificacion se lo impida. De este modo podria introducirse en un grupo con permisos de impresion un usuario al que en principio habiamos dejado fuera. Puede ser necesario usar restricciones por nombre de maquina (host allow, host deny) para una mayor seguridad.

Anunciar el recurso

El menu browseable indica que este recurso debe ser anunciado por nmbd, y por tanto ser visible para todos los usuarios.

Compartición de directorios

Algunas opciones son identicas a la comparticion de impresoras.

Las opciones que permiten limitar el acceso a ciertas maquinas, elegir el camino de acceso al recurso (en este caso, directorio a compartir), y la autorizacion de un usuario invitado son identicas a las que hemos encontrado en la seccion PRINTERS

Afinando el control de acceso.

En el caso de la comparticion de espacio en disco es posible tener un mejor control sobre el acceso.

Solo lectura Es posible, activando la opcion read only, autorizar solamente el acceso en modo lectura. Es posible definir sobre un mismo directorio varios tipos de permisos. Por ejemplo, se podria ofrecer acceso de solo lectura a la totalidad del grupo y luego afinar un acceso de escritura a ciertos usuarios en concreto.

Autentificaciones diversas

Si la seguridad esta en modo compartido (share), todos los usuarios disponen, previa autentificacion, de los derechos correspondientes al directorio que compartido. El sistema usa un metodo heuristico para determinar el identificador de un usuario que se conecta, pero este metodo es facilmente manipulable. Asi que mas vale usar la autentificacion en modo usuario, que permite por ejemplo compartir las carpetas personales del usuario sin riesgo alguno.

La autentificacion por cada usuario.

Las contraseñas encriptadas.

Por defecto, Samba no utiliza contraseñas cifradas. Esta eleccion le permite interoperar con clientes de Windows 3.x y Windows95

Pero por culpa de esta compatibilidad perdemos seguridad y es necesario tocar el registro del sistema de Windows en maquinas Win98 y posteriores para que todo funcione. Si en la red no hay maquinas windows95 o anteriores se aconseja configurar el servidor de Samba para que use contraseñas cifradas. Esto ultimo se hace de esta forma, añadiendo en el fichero smb.conf la siguiente linea:

dentro del [global] de smb.conf :

encrypt passwords = Yes

Estas contraseñas son almacenadas dentro del fichero /etc/smbpasswd. Las maquinas clientes contactan con el servidor y reciben una clave codificada usando la contraseña cifrada. El resultado es reenviado al servidor, que hace la misma operacion. Si los dos resultados son identicos la autentificacion es correcta. Esto impide a un usuario "malicioso" hacerse con los passwords que atraviesan la red camino al servidor en busca de la autentificacion.

Limitar el acceso a ciertos usuarios.

Para cada recurso es posible restringir el acceso a ciertos usuarios. Para cada una de las lineas de recursos compartidos en /etc/smb.conf, podemos añadir la linea :

valid users = usuario1, usuario2

En su ausencia, el recurso es accesible por todos los usuarios del servidor Samba. Si esta linea esta presente el acceso esta reservado unicamente a los usuarios mencionados.

Autorizar ciertos acceso en modo solo lectura

La opcion read only, permite impedir a los usuarios que escriban en el directorio compartido. Podemos tambien limitar este acceso a unos usuarios concretos, para ello tenemos dos posibilidades:

? Autorizar el acceso de escritura y bloquear ciertos usuarios con derecho de solo lectura, colocando su nombre en la seccion read list= del recurso.

? Autorizar el acceso en solo lectura y dar el privilegio de escritura a ciertos usuarios gracias a la seccion write list= del recurso compartido.

Integracion de Samba en un dominio NT

Los dominios NT

Los dominios NT son variantes de los grupos de trabajo. Igual que los grupos, permiten anunciar los recursos a diferentes clientes. La principal diferencia se encuentra a nivel de autentificacion. Todos los miembros de un dominio utilizan la misma base de datos de usuarios y contraseñas.

El metodo de autentificacion dentro de un dominio

Cuando un cliente miembro de un dominio intenta acceder a un recurso, envia una peticion a todas las maquinas de la red, y se autentifica contra la primera que responde. En una red NT, la tarea de responder se lleva a cabo la maquina "mas activa" que tenga acceso a la base de datos de usuarios. Se trata del Primary Domain Controller (PCD), el controlador del dominio principal. En su ausencia, los servidores secundarios, los BCD pueden tomar el relevo.

Una vez la maquina cliente se ha autentificado con un controlador del dominio, el cliente no tiene porque volver a validarse dentro del dominio aunque decida acceder a otro recurso compartido diferente del inicial. El controlador del dominio "memoriza" las autentifaciones satisfactorias.

Utilizar un servidor NT para la autentificación

Es posible configurar un servidor Samba para que se integre dentro de un dominio NT. El primer paso consiste en declarar Samba como un miembro del grupo de trabajo del servidor NT.

Seleccionando en el Swat Security= SERVER, le estamos pidiendo al servidor de Samba que contacte con un servidor NT (servidor NT indicado en la seccion password server = nombre_del_servidor) para la autentificacion. Evidentemene el servidor NT debe estar configurado para responder a las peticiones de autentificacion del servidor de Samba.

El siguiente paso es crear una cuenta para el servidor:

smbpasswd -j nombre_del_dominio

Este es el metodo mas simple para integrar un servidor Samba en una red NT.

Por ultimo, hay que asegurarse de que cada usuario que el servidor NT va a autentificar tiene una cuenta en la maquina NT, para que los permisos funcionen.

Utilizar Samba como controlador del dominio

Si bien hace un tiempo esto no era oficial, Samba es actualmente totalmente capaz de comportarse como un PDC.

Configurar Samba como un PDC

Hay varias etapas.

1.Autorizar las peticiones de autentificacion de otras maquinas1. .

2. Configurar la autentificacion usuario por usuario

Declararse Master Browser, es decir invertir el mecanismo de eleccion habitual en las maquinas NT para llevarlas a nuestra maquina Samba.

3. La seccion [GLOBAL] debe contener los siguientes elementos:

domain logons = yes security = user

os level = 34

local master = yes preferred master = yes domain master = yes

Configurar una comparticion permitiendo la autentificación

Creamos seguidamente una comparticion ficticia, siguiendo este patron : [netlogon]

path = /export/samba/logon public = no

writeable = no browsable = no

Esta comparticion no ofrece el acceso a ningun recurso. Pero sin embargo permite la autentificacion de diferentes maquinas.

Autorizar la conexión de las maquinas NT

Las maquinas NT intentan conectarse directamente al servidor, y no a un recurso en concreto. Es por tanto preciso autorizarlas para ello. Es necesario que las maquinas (y no los usuarios) dispongan de una cuenta. Las maquinas no van a conectarse al shell, asi que no es necesario darles un usuario del sistema con su directorio personal y demas.

El identificador de una maquina es su nombre NetBIOS, seguido del carácter $. Asi por ejemplo la maquina icerberg, tendra como identificador iceberg$. Hecho lo cual hay que añadir esta cuenta de usuario a la base de datos de los usuarios de Samba, con el comando :

smbpasswd -a -m maquina

Los clientes

Acceder a los recursos compartidos : smbclient

Este comando permite acceder, desde un cliente GNU/Linux, a recursos puestos a disposicion a traves de servidores CIFS, bien se trate de un servidor Samba o de un servidor basado en Microsoft Windows. La interfaz es parecida a la del ftp, es de este modo posible transferir ficheros sin esfuerzo. La sintaxis es :

smbclient //maquina/recurso

El recurso puede ser bien un directorio o bien una impresora, o un disco compartido al que se desea acceder. El nombre de la maquina es su nombre de NetBIOS, que puede (y suele) ser diferente de su nombre de DNS.

La opcion -R permite elegir el modo de resolucion del nombre de la maquina:

-R lmhosts permite consultar el fichero /etc/lmhosts, que resuelve nombres de IP contra nombres de NetBIOS de la maquina ,

-R wins permite lanzar la consulta a un servidor WINS para obtener dicha conversion.

Una vez conectado al servicio en cuestion, disponemos de una interfaz de transferencia de ficheros identica a la del FTP.

Disponemos de algunas opciones extra, tales como print fichero, para imprimir un fichero local en el servidor.

Integrar un recursos compartido en nuestra jerarquia de directorios: smbmount

El comando smbmount nos permitira movernos de una manera mas comoda por los recursos compartidos via CIFS. Se comporta de una forma similar a los montajes via NFS: el recurso compartido CIFS se monta en un punto de nuestra jerarquia de directorios y podemos movernos por el usando los comandos Unix habituales.

smbclient se encarga de gestionar las interacciones entre los ficheros presentes en el servidor. Para desmontar un recurso compartido usamos el comando smbumount.

Guardar datos de un recurso compartido : smbtar

El comando smbtar es muy similar al comando tar. Permite realizar copias de seguridad de los archivos del servidor desde la maquina cliente Samba. La sintaxis es la siguiente:

smbtar -s servidor -x recurso -t lugar_de_almacenamiento

Nota: Es necesario disponer de permisos de lectura del directorio que deseamos almacenar. Es también posible crear copias incrementales con la opcion -N fecha, que no almacena nada mas que los ficheros que han sido modificados a partir de la fecha especificada.

Curiosidades

? Dentro del romance entre Google y el Software Libre, Samba recibió este verano parte de los recursos económicos que la compañía destinó al 'Summer of Code 2006'. Pero además, tal y como se asegura , Google va a donar anualmente 20.000 dólares al proyecto. Con este dinero, asegura Andrew Tridgell (uno de los mayores impulsores del Software Libre, y responsable de Samba), se podrán destinar fondos para ofrecer recompensas económicas a los desarrolladores del software, y poder afrontar diversos gastos derivados de los viajes para asistir a conferencias.

? Diciembre 23, 2007

Microsoft firmó un acuerdo, hasta hace poco impensable, con el proyecto Samba. Con él pretende cumplir con las sanciones impuestas por la Comisión Europea por prácticas antimonopolio, en un dictamen que se remonta al 2004. "El acuerdo nos permite mantener a Samba al día con los recientes cambios en Microsoft Windows y también ayuda a otros proyectos de software libre que necesitan interoperar con la plataforma Windows", afirmó Andrew Tridgell, creador de Samba.

La respuesta de la Comisión Europea no ha tardado en llegar, de la mano de su portavoz, Jonathan Todd que dijo: "Esto debería inyectar competencia en un mercado que había estado dominado por Microsoft a través de su conducta abusiva".

Microsoft se había resistido a cumplir con la sentencia hasta que el segundo mayor tribunal de la Unión Europea falló en su contra el pasado mes de septiembre. Como Samba no es una entidad comercial, no se vio obligada a salir del mercado y todavía seguía en pie y con la capacidad de beneficiarse de la sentencia.

? Microsoft envía la documentación del protocolo SMB a los autores de Samba

Microsoft a través de la agencia Protocol Freedom Information Foundation ha enviado a los autores de Samba la documentación de su protocolo SMB para que por fin se puedan hacer proyectos de software libre totalmente compatibles con los grupos de trabajo y dominios de Microsoft Windows.

Referencias Bibliográficas

http://www.novell.com http://us1.samba.org/samba/

http://us1.samba.org/samba http://www.microsoft.com

http://es.wikipedia.org/wiki/C%C3%B3digo_libre http://www.z-labs.com.ar/docs/tif/8-proyectos.html http://socios.hispalinux.es/book http://softlibrewin.org.ar/Documentos/Documentos.html

http://www.laflecha.net/canales/softlibre/noticias/microsoft-firma-un-inusual-acuerdo-sobre- samba?from=rss http://espanol.news.yahoo.com/s/reuters/071220/tecnologia/internet_tecnologia_microsoft_sol

http://bulmalug.net/body.phtml?nIdNoticia=1366

 

Autora:

Ing. Velmour Muñoz Casals

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente