Diferencia entre revisiones de «Samba»

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Línea 87: Línea 87:
== Tipos de servidor Samba ==
== Tipos de servidor Samba ==


Estos son los tipos de servidores windows:
* Primary domain controller (PDC). De este tipo solo puede haber uno por dominio.
* Backup domain controller (BDC) Sirver para hacer una copia de seguridad o para dar más rendimiento.
* Domain member server (DMS). Un servidor de otros servicios en un dominio con PDC
Samba, por su parte, tiene 3 tipos de configuraciones como servidor:
* Standalone Server (Seguridad share)
* Domain member server.
* Domain controller server
** Primary Domain Controller (PDC)
** Backups domain Controller (BDC)
** Active directory domain server (ADS)
Si ejecutamos '''testparm''', podemos ver el rol de nuestro servidor.
Samba provee de mayor flexibilidad en este sentido. Samba añade 4 subniveles a la seguridad a nivel de usuario.
* Share: Cada recurso compartido utiliza una contraseña. Todo el que sepa esta contraseña puede acceder al recurso. Cada recurso tiene su palabra de paso independientemente del usuario. Pero en sistemas Linux se debe acceder como usuario. Por eso, el propio Samba genera un usuario para cada conexión y asigna permisos a ese usuario para ese recurso si acierta la contraseña. security=share
* User: Cada recurso compartido del grupo de trabajo está configurado para permitir el acceso a un grupo específico de usuarios. En cada conexión inicial a un servidor Samba autentica al usuario. Esta es la opción por defecto. El cliente se autentifica a nivel de sesión enviando usuario y contraseña. El servidor se basa en el usuario y la máquina. Si la sesión se acepta, el cliente no debe introducir de nuevo la contraseña. security=user.
* Server: El sistema es idéntico al anterior pero se utiliza otro servidor para obtener la información de los usuarios (LDAP por ejemplo)
* Domain: Samba se convierte en miembro de un dominio de Windows NT y utiliza un PDC (Primary Domain Controller) para implementar la autenticación. Una vez autenticado el usuario mantiene un token con la información del usuario a partir de la cual poder determinar a qué recursos tiene acceso.




[http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/index.html Manual oficial]
[http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/index.html Manual oficial]

Revisión del 10:33 9 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.

Tipos de servidor Samba

Estos son los tipos de servidores windows:

  • Primary domain controller (PDC). De este tipo solo puede haber uno por dominio.
  • Backup domain controller (BDC) Sirver para hacer una copia de seguridad o para dar más rendimiento.
  • Domain member server (DMS). Un servidor de otros servicios en un dominio con PDC

Samba, por su parte, tiene 3 tipos de configuraciones como servidor:

  • Standalone Server (Seguridad share)
  • Domain member server.
  • Domain controller server
    • Primary Domain Controller (PDC)
    • Backups domain Controller (BDC)
    • Active directory domain server (ADS)

Si ejecutamos testparm, podemos ver el rol de nuestro servidor.

Samba provee de mayor flexibilidad en este sentido. Samba añade 4 subniveles a la seguridad a nivel de usuario.

  • Share: Cada recurso compartido utiliza una contraseña. Todo el que sepa esta contraseña puede acceder al recurso. Cada recurso tiene su palabra de paso independientemente del usuario. Pero en sistemas Linux se debe acceder como usuario. Por eso, el propio Samba genera un usuario para cada conexión y asigna permisos a ese usuario para ese recurso si acierta la contraseña. security=share
  • User: Cada recurso compartido del grupo de trabajo está configurado para permitir el acceso a un grupo específico de usuarios. En cada conexión inicial a un servidor Samba autentica al usuario. Esta es la opción por defecto. El cliente se autentifica a nivel de sesión enviando usuario y contraseña. El servidor se basa en el usuario y la máquina. Si la sesión se acepta, el cliente no debe introducir de nuevo la contraseña. security=user.
  • Server: El sistema es idéntico al anterior pero se utiliza otro servidor para obtener la información de los usuarios (LDAP por ejemplo)
  • Domain: Samba se convierte en miembro de un dominio de Windows NT y utiliza un PDC (Primary Domain Controller) para implementar la autenticación. Una vez autenticado el usuario mantiene un token con la información del usuario a partir de la cual poder determinar a qué recursos tiene acceso.


Manual oficial