Capitulos de este wiki
  1. 1 Aprendiendo Samba
  2. 2 ¿Qué es Samba?
  3. 3 ¿Qué puede hacer Samba por mí?
  4. 4 Familiarizandonos con una Red SMB/CIFS
  5. 5 Implementaciones de Microsoft
  6. 6 Un Vistazo a la Distribución Samba
  7. 7 ¿Cómo puedo Obtener Samba?
  8. 8 Instalando Samba en un Sistema Unix
  9. 9 Descargando la Distribución
  10. 10 Configurando Samba
  11. 11 Compillando e Instalando Samba
  12. 12 Un Fichero de Configuración Basico
  13. 13 Iniciando los Demonios de Samba
  14. 14 Testeando los Demonios Samba
  15. 15 Configurando los Clientes Windows
  16. 16 Configurando Computadoras Windows 95/98 (I)
  17. 17 Configurando Computadoras Windows 95/98 (II)
  18. 18 Una Introducción a SMB/CIFS (I)
  19. 19 Una Introducción a SMB/CIFS (II)
  20. 20 Compartición de Unidades de Disco
  21. 21 Aprendiendo a usar el Fichero de Configuración de Samba
  22. 22 Secciones Especiales
  23. 23 Opciones del Ficheros de Configuración
  24. 24 Configuración del Servidor
  25. 25 Configuración de la Compartición de Disco
  26. 26 Opciones de Red con Samba
  27. 27 Servidores Virtuales
  28. 28 Opciones de Ficheros de Registro
  29. 29 Visualización (Browsing) y Compartición Avanzada de Discos
  30. 30 Visualización, Navegación o 'Browsing'
  31. 31 Diferencias entre Sistemas de Ficheros
  32. 32 Permisos de Ficheros y Atributos en MS-DOS y Unix
  33. 33 Planchado de Nombres (Name Mangling) y Tipo
  34. 34 Bloqueos y Opciones de Bloqueos
  35. 35 Usuarios, Seguridad y Dominios
  36. 36 Usuarios y Grupos
  37. 37 Controlando el acceso a los recursos compartidos
  38. 38 Seguridad y autenticación
  39. 39 Contraseñas
  40. 40 Sincronización de las Contraseñas
  41. 41 Dominios Windows
  42. 42 Scripts de Entrada
  43. 43 Impresión y Resolución de Nombres
  44. 44 Enviando tareas de impresión a SAMBA
  45. 45 Impresión sobre Impresoras de Cliente Windows
  46. 46 Resolución de Nombres con Samba
  47. 47 Informacion adicional sobre Samba
  48. 48 Magic Scripts (Scripts Magicos)
  49. 49 Internationalización
  50. 50 Mensajes Emergentes
  51. 51 Opciones Añadidas Recientemente
  52. 52 Otras Opciones
  53. 53 Copias de Seguridad (Backups) con smbtar
  54. 54 Resolviendo Problemas con Samba
  55. 55 La Caja de Herramientas
  56. 56 El Arbol de Errores
  57. 57 Recursos Extra
  58. 58 Bibliography

Usando Samba - Una Introducción a SMB/CIFS (I)

18 - Una Introducción a SMB/CIFS (I)

[editar]
Tutorial creado por Robert Eckstein, David Collier-Brown, Peter Kelly. Extraido de: http://es.tldp.org/Manuales-LuCAS/USANDO-SAMBA/usando-samba-html/node1.html
20 de Febrero de 2006

Vamos a convertir este capítulo en un pequeño tutorial sobre SMB/CIFS. SMB/CIFS es el protocolo que las máquinas Windows 95/98 y NT usan para comunicarse con el servidor Samba y entre ellos. A alto nivel, la suite del protocolo SMB es relativamente simple. Incluye comandos para todas las operaciones de archivos e impresión que puedas necesitar hacer sobre un disco o impresora local, como:

Abrir y cerrar un fichero.

Crear y eliminar ficheros y directorios.

Leer y escribir sobre un fichero.

Buscar archivos.

Enviar y eliminar archivos a una cola de impresora.

Cada una de estas operaciones puede ser codificada en un mensaje SMB y transmitida hacia/desde un servidor. El nombre de SMB viene de su formato de datos: son versiones de las estructuras estandar de las llamadas al sistema DOS, o Server Message Blocks, rediseñadas para transmitir a otra máquina a través de una red.

Formato SMB

Richard Sharpe, del equipo de desarrollo de Samba, define SMB como un protocolo "petición-respuesta"3.2. En efecto, esto significa que un cliente envía una petición SMB a un servidor, y el servidor envía una respuesta SMB de vuelta al cliente. Raramente un servidor envía un mensaje que no es respuesta a la petición de un cliente.

Un mensaje SMB no es tan complejo como puedas pensar. Echemos un vistazo a la estructura interna de uno de estos mensajes. Este puede dividirse en dos partes: la cabecera (header), la cual es de tamaño fijo, y la cadena de comando (command string), cuyo tamaño puede variar en base al contenido del mensaje.

Formato de la Cabecera SMB

La Tabla 3.1. muestra el formato de una cabecera SMB. Los comandos SMB no necesitan usar todos los campos de la cabecera SMB. Por ejemplo, cuando un cliente inicialmente intenta conectar a un servidor, este todavía no tiene un valor de identificador de árbol ("tree identifier") (TID) -se asigna uno cuando se realiza una conexión con éxito-, así que se emplaza un TID nulo (0xFFFF) en el campo de la cabecera. Otros campos pueden ser rellenados con ceros cuando no se usan.

Los campos de la cabecera SMB se listan en la Tabla 3.1.


Table: Campos de la Cabecera SMB.
Campo Tamaño (bytes) Descripción
0xFF 'SMB' 1 Identificador de Protocolo
COM 1 Código Comando, desde 0x00 hasta 0xFF
RCLS 1 Clase de Error
REH 1 Reservado
ERR 2 Código de Error
REB 1 Reservado
RES 14 Reservado
TID 2 TID; un ID único para un recurso en uso por un cliente
PID 2 ID de Proceso
UID 2 ID de Usuario
MID 2 Multiplex identifier; usado para rutar peticiones dentro de procesos

 

Formato de Comando SMB

Inmediatamente después de la cabecera va un número variable de bytes que forman un comando o respuesta SMB. Cada comando, tal como "Open File" (identificador de campo COM: SMBopen) o "Get Print Queue" ( SMBsplretq ), tiene su propio conjunto de parámetros y datos. Al igual que en el caso de los campos en las cabeceras SMB, no todos los campos de comando necesitan estar rellenados, dependiendo de cada comando específico. Por ejemplo, el comando "Get Server Attributes" (SMBdskattr) establece los campos WCT y BCC a cero. Los campos del segmento de comando se muestran en la Tabla 3.2.


Table: Contenido de un Comando SMB.
Campo Tamaño (bytes) Descripción
WCT 1 Contador de Palabras
VWV Variable Parámetro de palabras (tamaño dado por WCT)
BCC 2 Contador de byte de Parámetro
DATA Variable Dato (tamaño dado por BCC)


No te preocupes si no comprendes cada uno de estos campos; no es necesario para usar Samba a un nivel de administración. Sin embargo, conocer esto te va a resultar útil cuando analices o depures mensajes del sistema. Te mostraremos alguno de los mensajes de sistema SMB más comunes que clientes y servidores envían usando una versión modificada de tcpdump más adelante en esta sección. (Si quieres un sniffer SMB con una interfaz gráfica, prueba "ethereal", que usa las librerías GTK; mira en la página web de Samba para más información sobre esta herramienta).

Si deseas más información sobre cada uno de los comandos del protocolo SMB, mira la documentación sobre SMB/CIFS en
ftp://ftp.microsoft.com/developr/drg/CIFS/.

Variaciones sobre SMB

El protocolo SMB ha sido extendido con nuevos comandos muchas veces desde su concepción. Cada nueva versión es compatible con las anteriores. Esto hace posible tener en una misma LAN varios clientes y servidores corriendo diferentes versiones del protocolo SMB al mismo tiempo.

La Tabla 3.3. muestra las mejores versiones del protocolo SMB. Dentro de cada "versión" de SMB hay muchas subversiones que incluyen comandos soportando versiones determinadas de los mejores sistemas operativos. El ID de cadena es usado por clientes y servidores para determinar qué nivel de protocolo usarán para hablar unos con otros.


Table: Dialectos del Protocolo SMB.
Nombre Protocolo ID de Cadena Usado por
Core PC NETWORK PROGRAM 1.0  
Core Plus MICROSOFT NETWORKS 1.03  
LAN Manager 1.0 LANMAN1.0  
LAN Manager 2.0 LM1.2X002  
LAN Manager 2.1 LANMAN2.1  
NT LAN Manager 1.0 NT LM 0.12 Windows NT 4.0
Samba's NT LM 0.12 Samba Samba
Common Internet File System CIFS 1.0 Windows 2000


Samba implementa la especificación NT LM 0.12 para NT LAN Manager 1.0. Este es compatible con todas las variantes de versiones anteriores. La especificación CIFS es, en realidad, LAN Manager 0.12 con unas cuantas adiciones específicas.

Clientes y Servidores SMB

Como mencionamos antes, SMB es un protocolo cliente/servidor. Esto significa que un cliente envía una petición a un servidor, el cual actúa en función de la petición y envía una respuesta. Sin embargo, los roles de cliente/servidor pueden invertirse frecuentemente, algunas veces dentro del contexto de una misma sesión SMB. Por ejemplo, considera dos computadoras Windows 95/98 como en la Figura 3.28. La computadora llamada WIZZIN comparte una impresora para la red, y la llamada ESCRIME comparte un directorio de disco. WIZZIN está en el papel de cliente cuando accede a la unidad de red de ESCRIME, y se pone en el papel de servidor cuando imprime un trabajo para ESCRIME.

Figure: Dos computadoras que comparten recursos para la red.

\includegraphics[ width=0.80\textwidth]{img/sam-0328.ps}

Esto nos lleva a un punto importante en la terminología Samba:

Un servidor es una máquina con un recurso compartido.

Un cliente es una máquina que quiere usar un recurso compartido.

Un servidor puede ser un cliente en cualquier momento.

Advierte que no hay implicaciones en cuanto a la cantidad de recursos que ofrece un servidor, o si tiene mayor capacidad de disco o velocidad de procesador. Un servidor podría ser un viejo 486 con una impresora conectada a él, o podría ser una estación UltraSparc con un servicio de disco de 20 gigabytes.

Los productos de Microsoft Windows contienen la tecnología cliente/servidor SMB incluídas en el sistema operativo. Wndows NT 4.0 usa un nuevo protocolo SMB distinto al de Windows para Grupos de Trabajo, y ofrece el valor añadido de la seguridad en la red, lo cual discutiremos en el Capítulo 6. En adición, hay un largo número de productos comerciales de servidores SMB disponibles para compañías tales como Sun, Compaq, SCO, Hewlett-Packard, Syntax, e IBM. Desafortunadamente, en la parte del cliente hay muy pocas ofertas,limitándose principalmente a productos de redes de equipos Digital , y por supuesto, Samba.

 

Una Simple Conexión SMB

Antes de dar por terminado este capítulo, echemos un vistazo a una simple conexión SMB. Lo que vamos a comentar ahora son algunos interesantes datos técnicos, que realmente no son necesarios para administrar Samba, así que si quieres, esto te lo puedes saltar. Presentamos esta información lo más desmenuzada posible para que te familiarices con la forma en que el protocolo SMB negocia conexiones con otras computadoras en la red.

Hay cuatro pasos que un cliente y un servidor deben completar en orden a establecer una conexión con un recurso:

Establecer una conexión virtual.

Negociar la variante de protocolo a usar para hablar entre ellos.

Establecer los parámetros de la sesión.

Realizar una conexión de árbol a un recurso (TID).

Examinaremos cada uno de estos pasos a través de los ojos de una útil herramienta que ya hemos mencionado anteriormente: el modificado tcpdump que está disponible desde el sitio web de Samba.

Puedes descargar este programa desde samba.org en el directorio
samba/ftp/tcpdump-smb; la última versión a la hora de escribir este manual era la 3.4-5. Usa este programa tal como usarías la aplicación estándar tcpdump, pero añade el switch -s 1500 para asegurarte de que obtienes todo el paquete y no sólo los primeros bytes del mismo.

Estableciendo una Conexión Virtual

Cuando un usuario realiza una primera petición para acceder a un disco de red o para enviar un trabajo a una impresora remota, NetBIOS se encarga de realizar una conexión (sesión). El resultado es un canal virtual bidireccional entre el cliente y el servidor. En realidad, sólo hay dos mensajes que el cliente y el servidor necesitan para establecer esa conexión. Esto se muestra en el siguiente ejemplo de petición y respuesta en una sesión, tal como saldría de la catpura a través de tcpdump :

>>> NBT Packet 
 NBT Session Request 
 Flags=0x81000044 
 Destination=ESCRIME NameType=0x20 (Server)
 Source=WIZZIN       NameType=0x00 (Workstation)
 
 >>> NBT Packet
 NBT Session 
 Granted Flags=0x82000000
 

...3.2

Mira en http://anu.samba.org/cifs/docs/what-is-smb.html el excelente sumario de Richard sobre SMB.

[editar]

10 opiniones

Sergio

buenisimo
huevos

no mames
Muy muy bueno.

Excelente. Todos los aspectos que me presentaron problemas en la configuración del servidor fueron resueltos con la ayuda proporcionada por este documento. Muchas gracias a los autores y traductores por su aporte.
Samba en web.

Quisiera saber mas sobre lo que es la instalacion de samba en web.
Samba.

Exelente curso de samba, muy bien explicado.
1 2 | siguiente >

Tutoriales relacionados con 'Usando Samba'

Este documento describe la manera de usar el paquete Samba, que dota a Linux de... Más »
Cuando un entorno Windows precisa nuestros archivos, o puede servirnos para imprimir nuestros documentos, nada... Más »
Esta guía no es un documento general de seguridad. Esta guía está específicamente orientada a... Más »
Antes de continuar he de advertir que instalar una estación de trabajo NetBSD es un... Más »
Vamos a ver cómo funciona Snort en todas sus facetas, instalación y configuración (sistemas Windows),... Más »

Autor y licencia de 'Usando Samba'


Tutorial de Robert Eckstein, David Collier-Brown, Peter Kelly. Extraido de: http://es.tldp.org/Manuales-LuCAS/USANDO-SAMBA/usando-samba-html/node1.html CopyLeft
Licencia GNU Free Documentation License: http://www.es.gnu.org/licencias/fdles.html
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.