301.1 Conceptos y Arquitectura

Objetivos del subtema

Este subtema cubre los fundamentos del protocolo SMB/CIFS, la arquitectura de Samba, los servicios que lo componen y los conceptos de red necesarios para integrar sistemas Linux en entornos Windows.

Protocolo SMB/CIFS

Historia y evolución

  • SMB (Server Message Block): Protocolo desarrollado originalmente por IBM en 1983 y adoptado por Microsoft para compartir archivos, impresoras y comunicación entre procesos (IPC)
  • CIFS (Common Internet File System): Renombramiento y extensión del protocolo SMB por Microsoft en los años 90
  • SMB1/CIFS: Versión original, considerada insegura y obsoleta (deshabilitada por defecto en Windows 10+)
  • SMB2: Introducido en Windows Vista, reduce la complejidad del protocolo y mejora el rendimiento
  • SMB3: Introducido en Windows 8/Server 2012, añade cifrado, multicanal y mejoras de rendimiento
  • SMB3.1.1: Versión más reciente, con integridad de preautenticación y cifrado AES-128-GCM

Características principales del protocolo

  • Protocolo cliente-servidor para compartir recursos en red
  • Funciona sobre TCP/IP (puerto 445 directo) o sobre NetBIOS (puertos 137-139)
  • Soporta autenticación, bloqueo de archivos oportunista (oplocks) y notificaciones de cambio
  • Modelo de seguridad basado en usuario o en recurso compartido

Para el examen: Es fundamental conocer las diferencias entre SMB1, SMB2 y SMB3. SMB1 es inseguro y no debe usarse en producción. Samba 4 soporta SMB2 y SMB3.

Arquitectura de Samba

Demonios principales

Samba se compone de tres demonios fundamentales:

DemonioFunciónPuerto(s)
smbdServicio de archivos e impresoras, autenticaciónTCP 139, 445
nmbdResolución de nombres NetBIOS, WINSUDP 137, 138
winbinddIntegración con dominios Windows, mapeo de usuariosN/A (socket local)

smbd - Demonio de archivos e impresoras

  • Proceso principal de Samba para compartir recursos
  • Maneja la autenticación de usuarios (NTLM, Kerberos)
  • Gestiona el acceso a archivos e impresoras compartidos
  • Crea un proceso hijo por cada conexión de cliente
  • Escucha en los puertos TCP 139 y 445

nmbd - Demonio de nombres NetBIOS

  • Proporciona resolución de nombres NetBIOS sobre TCP/IP
  • Puede actuar como servidor WINS (Windows Internet Name Service)
  • Participa en la elección de navegador maestro (master browser)
  • Responde a peticiones de broadcast para descubrimiento de red
  • Utiliza los puertos UDP 137 (servicio de nombres) y 138 (datagramas)

winbindd - Demonio de integración Windows

  • Mapea usuarios y grupos de Windows a UIDs/GIDs de Linux
  • Permite que usuarios de dominio Windows accedan a recursos Samba
  • Se comunica con controladores de dominio AD mediante LDAP y RPC
  • Utiliza NSS (Name Service Switch) y PAM para integración del sistema
  • Se comunica a través de un socket UNIX local (/var/run/winbindd/pipe)

Para el examen: Recuerda que smbd y nmbd son necesarios para un servidor de archivos básico, mientras que winbindd solo se necesita cuando se integra con un dominio Windows/AD.

Samba 4 como controlador de dominio

Cuando Samba 4 actúa como controlador de dominio Active Directory, ejecuta un demonio unificado samba que incluye:

  • Servidor LDAP interno
  • Servidor DNS interno (o integración con BIND9)
  • Servidor Kerberos (Heimdal KDC)
  • Servidor de archivos (smbd integrado)
  • Servidor RPC para administración de dominio
# En modo AD DC, se usa el demonio unificado:
systemctl start samba-ad-dc

# En modo servidor de archivos, se usan los demonios individuales:
systemctl start smbd nmbd winbindd

NetBIOS y resolución de nombres

Nombres NetBIOS

  • Limitados a 15 caracteres más 1 byte de tipo de servicio (16º carácter)
  • No son jerárquicos (espacio de nombres plano)
  • Se registran y resuelven mediante broadcast o WINS
  • Cada tipo de servicio tiene un sufijo hexadecimal diferente
SufijoTipoDescripción
<00>ÚnicoEstación de trabajo
<03>ÚnicoServicio de mensajería
<20>ÚnicoServidor de archivos
<1B>ÚnicoDomain Master Browser
<1C>GrupoControlador de dominio
<1D>ÚnicoMaster Browser
<1E>GrupoElecciones de navegación

WINS (Windows Internet Name Service)

  • Servicio centralizado de resolución de nombres NetBIOS
  • Elimina la necesidad de broadcast para resolución de nombres
  • Samba puede actuar como servidor WINS (wins support = yes en smb.conf)
  • Los clientes registran sus nombres al iniciar y los liberan al apagar
  • Permite resolución de nombres entre subredes

Para el examen: WINS resuelve nombres NetBIOS, NO nombres DNS. En entornos modernos con AD, DNS ha reemplazado en gran medida a WINS.

Workgroups vs. Dominios

Workgroups (Grupos de trabajo)

  • Modelo peer-to-peer sin administración centralizada
  • Cada equipo mantiene su propia base de datos de usuarios
  • No hay autenticación centralizada
  • Útil para redes pequeñas (menos de 10 equipos)
  • Configurado con workgroup = NOMBRE en smb.conf

Dominios NT4

  • Modelo cliente-servidor con un PDC (Primary Domain Controller)
  • Uno o más BDCs (Backup Domain Controllers) para redundancia
  • Base de datos SAM centralizada
  • Samba 3 podía actuar como PDC/BDC de dominio NT4
  • Relaciones de confianza limitadas (unidireccionales)

Dominios Active Directory

  • Modelo jerárquico basado en LDAP, DNS y Kerberos
  • Múltiples controladores de dominio con replicación multimaestro
  • Bosques (forests) y árboles (trees) de dominios
  • Políticas de grupo (GPO) para gestión centralizada
  • Samba 4 puede actuar como controlador de dominio AD completo

Puertos de red utilizados

PuertoProtocoloServicio
137UDPNetBIOS Name Service (nmbd)
138UDPNetBIOS Datagram Service (nmbd)
139TCPNetBIOS Session Service (smbd)
445TCPSMB directo sobre TCP (smbd)
389TCP/UDPLDAP (Samba AD DC)
636TCPLDAPS (Samba AD DC)
88TCP/UDPKerberos (Samba AD DC)
464TCP/UDPKerberos kpasswd (Samba AD DC)
53TCP/UDPDNS (Samba AD DC)
3268TCPGlobal Catalog (Samba AD DC)
3269TCPGlobal Catalog SSL (Samba AD DC)

Para el examen: Los puertos 137/UDP, 138/UDP, 139/TCP y 445/TCP son los más preguntados. Recuerda que el puerto 445 permite SMB sin NetBIOS.

Diferencias clave entre Samba 3 y Samba 4

CaracterísticaSamba 3Samba 4
Dominio AD DCNo
Dominio NT4 PDCSí (compatibilidad)
Protocolo SMBSMB1SMB1, SMB2, SMB3
KDC KerberosNo (externo)Sí (Heimdal integrado)
Servidor LDAPNo (externo)Sí (integrado)
Servidor DNSNoSí (interno o BIND9_DLZ)
GPOLimitadoSoporte básico

Modos de seguridad de Samba

El parametro security en [global] define como Samba autentifica a los usuarios:

ModoValorDescripcion
Usersecurity = userSamba autentifica contra su propia base de datos (por defecto)
ADSsecurity = ADSSamba es miembro de un dominio Active Directory; usa Kerberos
Domainsecurity = domainSamba es miembro de un dominio NT4 (obsoleto)

Para el examen: security = user es el modo por defecto y el mas comun para servidores standalone. security = ADS se usa cuando Samba es miembro de un dominio AD. El modo security = share fue eliminado en Samba 4.

Backends de autenticacion (passdb backend)

BackendDescripcionUso tipico
tdbsamBase de datos TDB localServidores standalone (por defecto)
ldapsamUsuarios almacenados en LDAPMultiples servidores Samba con usuarios compartidos
smbpasswdArchivo de texto plano (obsoleto)Compatibilidad con Samba 2/3
# En smb.conf
[global]
   passdb backend = tdbsam
   # o
   passdb backend = ldapsam:ldap://ldap.empresa.com
# Gestionar usuarios con tdbsam
smbpasswd -a usuario          # Anadir usuario Samba
smbpasswd -x usuario          # Eliminar usuario Samba
smbpasswd usuario             # Cambiar password
pdbedit -L                    # Listar usuarios Samba
pdbedit -Lv                   # Listar con detalle
pdbedit -a usuario            # Anadir con pdbedit (mas opciones)

Para el examen: tdbsam es el backend por defecto y almacena datos en /var/lib/samba/private/passdb.tdb. smbpasswd es obsoleto. pdbedit ofrece mas opciones que smbpasswd para gestion de cuentas.

Herramientas de diagnostico y gestion

testparm - Verificar configuracion

# Verificar smb.conf y mostrar errores
testparm
 
# Mostrar configuracion efectiva (sin valores por defecto)
testparm -s
 
# Verificar acceso de un host especifico
testparm -s /etc/samba/smb.conf 192.168.1.100

smbstatus - Estado del servidor

# Ver conexiones activas, archivos abiertos y locks
smbstatus
 
# Solo procesos (conexiones)
smbstatus -p
 
# Solo shares en uso
smbstatus -S
 
# Solo archivos bloqueados
smbstatus -L

smbcontrol - Control de demonios

# Recargar configuracion sin reiniciar
smbcontrol all reload-config
 
# Cerrar conexiones de un usuario
smbcontrol smbd close-share shareN
 
# Forzar desconexion de un usuario
smbcontrol smbd kill-client-ip 192.168.1.100

net - Herramienta multiusos

# Unir a dominio AD
net ads join -U administrador
 
# Ver info del dominio
net ads info
 
# Listar shares remotos
net rpc share list -S servidor -U admin
 
# Ver usuarios del servidor
net rpc user list -S servidor -U admin
 
# Sincronizar reloj con DC (necesario para Kerberos)
net time set -S dc.empresa.local

Para el examen: testparm es la primera herramienta a usar cuando Samba no funciona como se espera — valida la configuracion y muestra errores. smbcontrol all reload-config recarga la configuracion sin interrumpir conexiones activas.

Archivos de configuración principales

  • /etc/samba/smb.conf - Configuración principal de Samba
  • /etc/samba/lmhosts - Resolución estática de nombres NetBIOS
  • /var/lib/samba/ - Bases de datos TDB y estado de Samba
  • /var/log/samba/ - Archivos de log de los demonios
  • /var/cache/samba/ - Caché de winbind y otros datos temporales

Resumen de conceptos clave

  • SMB/CIFS es el protocolo; Samba es la implementación libre
  • Tres demonios: smbd (archivos), nmbd (nombres), winbindd (dominio)
  • Puerto 445 para SMB directo; puertos 137-139 para SMB sobre NetBIOS
  • Samba 4 introdujo soporte completo para Active Directory
  • WINS resuelve nombres NetBIOS; DNS resuelve nombres de host
  • El modo AD DC usa un demonio unificado samba en lugar de smbd/nmbd separados

Trampas del examen

Errores comunes y distinciones criticas que LPI suele evaluar en este subtema:

  • smbd vs nmbd vs winbindd — Confundir que demonio hace que es trampa clasica. smbd=archivos/impresoras/autenticacion (TCP 139,445), nmbd=nombres NetBIOS/WINS (UDP 137,138), winbindd=mapeo usuarios dominio Windows (socket local). winbindd solo se necesita al integrar con AD.
  • Puerto 445 vs puertos 137-139 — El puerto 445 es SMB directo sobre TCP (sin NetBIOS). Los puertos 137-139 son SMB sobre NetBIOS. Preguntas frecuentes mezclan ambos; recordar que SMB moderno usa 445 exclusivamente.
  • SMB1 vs SMB2 vs SMB3 — SMB1/CIFS es inseguro y obsoleto (deshabilitado en Windows 10+). Samba 4 soporta SMB2 y SMB3. No confundir CIFS (nombre antiguo de SMB1) con el protocolo SMB moderno.
  • Demonio unificado samba vs demonios separados — En modo AD DC se ejecuta samba-ad-dc (demonio unificado), NO smbd/nmbd/winbindd por separado. Ejecutar ambos simultaneamente causa conflictos.
  • WINS resuelve nombres NetBIOS, NO nombres DNS — Es trampa clasica preguntar si WINS resuelve nombres de host DNS. WINS solo resuelve nombres NetBIOS (maximo 15 caracteres, espacio plano). DNS es para AD moderno.
  • Sufijos NetBIOS — El 16o caracter define el tipo de servicio: <00>=estacion de trabajo, <20>=servidor de archivos, <1B>=Domain Master Browser, <1C>=controlador de dominio. Las preguntas suelen pedir identificar el sufijo correcto.
  • Samba 3 vs Samba 4 — Samba 3 podia ser PDC de dominio NT4 pero NO controlador AD. Samba 4 es AD DC completo con KDC Heimdal, LDAP y DNS integrados. No confundir las capacidades de cada version.
  • Workgroup vs Dominio NT4 vs Dominio AD — Workgroup=peer-to-peer sin autenticacion centralizada. NT4=PDC/BDC con SAM centralizada. AD=LDAP+Kerberos+DNS con replicacion multimaestro. Las preguntas suelen pedir identificar la arquitectura correcta.