Diferencia entre revisiones de «Samba»

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda
Línea 79: Línea 79:
# Petición: Conexión a un recurso concreto. El cliente envía un mensaje que contiene una cadena que identifica el recurso al que desea acceder (por ejemplo, \ \ pc01 \ impresora o \ \ pc01 \ carpeta).
# Petición: Conexión a un recurso concreto. El cliente envía un mensaje que contiene una cadena que identifica el recurso al que desea acceder (por ejemplo, \ \ pc01 \ impresora o \ \ pc01 \ carpeta).
# Respuesta: Conexión a un recurso concreto. Si el recurso solicitado por el cliente existe y el SID tiene suficientes permisos, el servidor construye un identificador denominado Tree ID o TID, que será utilizado por el cliente par
# Respuesta: Conexión a un recurso concreto. Si el recurso solicitado por el cliente existe y el SID tiene suficientes permisos, el servidor construye un identificador denominado Tree ID o TID, que será utilizado por el cliente par
=== Niveles de seguridad en SMB/CIFS ===
* Share-level: Protección a nivel de recurso compartido. Cada recurso puede tener una contraseña. No hay usuarios.
* User Level: Protección con usuarios. Primero se autentifica y luego se le indica qué recursos puede obtener con ese usuario.

Revisión del 13:25 6 nov 2012

Es relativamente sencillo compartir recursos entre sistemas Linux con NFS. Incluso usar OpenLDAP para autentificar usuarios en la red no resulta excesivamente complejo. Pero Windows no es directamente compatible con los protocolos NFS o CUPS. Tampoco puede usar directamente un servidor LDAP para autentificar. Necesita estar en un Dominio a su medida. De la misma manera, Linux no puede pertenecer a un dominio Windows.

Samba permite crear redes mixtas. Un Linux puede ser cliente o servidor de Windows. Incluso se puede usar Samba para comunicar dos Linux. Al principio, Samba se implementó mediante ingeniería inversa, ya que los protocolos de Windows no estaban publicados.

Usos de Samba

Samba puede ser útil cuando:

  • No se quiere paga por un servidor Windows
  • Las licencias de cada cliente para acceder a un servidor Windows son demasiado caras.
  • Hacer una transición de Windows a Linux y viceversa.
  • Compartir impresoras entre los dos sistemas.
  • Para una red con clientes mixtos.
  • Para integrar un método de autentificación común para clientes de todo tipo.

Samba Permite:

  • Compartir partes de un sistemas de ficheros (carpetas)
  • Control de acceso a recursos.
    • Shared
    • User
  • Compartir impresoras
  • Servidor de resolución de nombres NetBios (WINS)

Historia de Samba

Andrew Tridgell, creador del algoritmo de rsync, comenzó el desarrollo de smbserver en 1991. Más adelante se llamó Samba por problemas de marcas registradas. Para obtener el nombre buscó una palabra en el diccionario de Linux que tuviera las letras SMB:

$ grep -i '^s.*m.*b' /usr/share/dict/words
salmonberry
samba
sawtimber
scramble
....

Recientemente, Microsoft ha revelado parte de sus protocolos para mejorar Samba, ya que es interesante para ellos que funcione correctamente la integración entre los dos sistemas. Noticia

Protocolos implementados por Samba

  • NetBios over TCP/IP
  • SMB (Actualmente CIFS)
  • DCE/RPC o MSRPC (RPC de Windows)
  • WINS. Aunque ha quedado relegado por DNS, se puede seguir usando.
  • NT Domain suite of protocols:
    • NT Domain Logons
    • Secure Account Manager (SAM) database
    • Local Security Authority (LSA) service
    • NT-style printing service (SPOOLSS)
    • Active Directory Logon Kerberos (Kerberos y LDAP)
  • Compartició de impresoras.

Netbios

Protocolo de nivel de sesión del modelo OSI. Se trata de una especificación de interfaz de acceso a recursos de red para máquinas independiente del hardware.

Nació en 1984 de la mano de IBM com una API para diseñar aplicaciones de red.

Netbios proporciona:

  • Resolución de nombres.
  • Servicios de sesión para comunicaciones orientadas a conexión.
  • Servicio de datagramas para las no orientadas a conexión.

SMB/CIFS

Server Message Block. Protocolo de nivel de aplicación utilizado para compartir ficheros, impresoras y otros recursos. SMB se puede comparar con NFS, su diferencia fundamental es que SMB proporciona autenticación. Fue creado por IBM y modificado numerosas veces por Windows. Utilitza NetBios para funcionar.

En 1996, Microsoft lo renombró CIFS y con Vista ha vuelto a cambiar de nombre. Con Windows 7 se llama SMB 2.1

SMB es un protocolo de alto nivel que puede implementarse sobre diversos protocolos, entre ellos el TCP/IP. Samba utiliza la versión que usa NetBios sobre TCP/IP.

Revisaremos el funcionamiento interno del protocolo SMB. - Supongamos que un sistema cliente quiere acceder a una carpeta compartida que exporta el servidor (en modo user). Se produciría el siguiente intercambio de mensajes entre ellos:

  1. Petición: Sesión NetBIOS. Quiere establecer una sesión fiable para subsiguientes mensajes entre los ordenadores cliente y servidor. El cliente conoce el nombre NetBIOS del servidor, el nombre NetBIOS del cliente es parte del mensaje, de modo que ambos saben quién es el otro.
  2. Respuesta: Sesión NetBIOS. El servidor envía un mensaje de reconocimiento aceptando la conexión.
  3. Petición: Dialecto SMB. El cliente envía una lista con los dialectos o variantes de SMB que soporta.
  4. Respuesta: Dialecto SMB. El servidor contesta con el dialecto que prefiere para la comunicación subsiguiente.
  5. Petición: Inicio de sesión. El cliente envía las credenciales de usuario (usuario, dominio, contraseña) con las que este desea conectarse al servidor.
  6. Respuesta: Inicio de sesión. El servidor autentifica las credenciales de usuario. Si las credenciales son buenas, el servidor tiene ya un SID válido que le permite, ante todo, comprobar si el usuario tiene el derecho de conectar al servidor. En caso afirmativo, se acepta la conexión y el servidor construye un identificador numérico particular para esta conexión (denominado User ID o UID). Los UIDs pueden ser reutilizados durante la vida del sistema, pero son únicos para todas las conexiones simultáneas que mantiene el servidor en un momento dado, de manera que identifican unívocamente una conexión (aceptada). Todos los mensajes posteriores del cliente deben contener este identificador para ser aceptados por el servidor.
  7. Petición: Conexión a un recurso concreto. El cliente envía un mensaje que contiene una cadena que identifica el recurso al que desea acceder (por ejemplo, \ \ pc01 \ impresora o \ \ pc01 \ carpeta).
  8. Respuesta: Conexión a un recurso concreto. Si el recurso solicitado por el cliente existe y el SID tiene suficientes permisos, el servidor construye un identificador denominado Tree ID o TID, que será utilizado por el cliente par

Niveles de seguridad en SMB/CIFS

  • Share-level: Protección a nivel de recurso compartido. Cada recurso puede tener una contraseña. No hay usuarios.
  • User Level: Protección con usuarios. Primero se autentifica y luego se le indica qué recursos puede obtener con ese usuario.