Cifrar tráfico SMB con Samba

11

Utilizamos Samba en Ubuntu 14.04 LTS como PDC (controlador de dominio primario) con perfiles móviles. Todo funciona bien, excepto si intentamos aplicar el cifrado mediante la configuración:

    server signing = mandatory
    smb encrypt = mandatory

en la [global]sección de /etc/samba/smb.conf. Después de hacerlo, los clientes win 8.0 y win 8.1 (no han probado ningún otro) se quejan: Die Vertrauensstellung zwischen dieser Arbeitsstation und der primären Domäne konnte nicht hergestellt werden.Traducción al inglés de este texto:The trust relationship between this workstation and the primary domain could not be established.

Si agregamos las dos opciones server signingy smb encryptsolo a la [profiles]sección de smb.conf, se tcpdumpmuestra que el tráfico real no está encriptado.

El smb.conf completo:

[global]
    workgroup = DOMAIN
    server string = %h PDC
    netbios name = HOSTNAME
    wins support = true
    dns proxy = no
    allow dns updates = False
    dns forwarder = IP

    deadtime = 15

    log level = 2
    log file = /var/log/samba/log.%m
    max log size = 5000
    debug pid = yes
    debug uid = yes
    syslog = yes
    utmp = yes

    security = user
    domain logons = yes
    domain master = yes
    os level = 64
    logon path = \\%N\profiles\%U
    logon home = \\%N\%U
    logon drive = H:
    logon script =

    passdb backend = ldapsam:ldap://localhost
    ldap ssl = start tls
    ldap admin dn = cn=admin,dc=DOMAIN,dc=de
    ldap delete dn = no

    encrypt passwords = yes
    server signing = mandatory
    smb encrypt = mandatory

    ## Sync UNIX password with Samba password
    ldap password sync = yes

    ldap suffix = dc=intra,dc=DOMAIN,dc=de
    ldap user suffix = ou=People
    ldap group suffix = ou=Groups
    ldap machine suffix = ou=Computers
    ldap idmap suffix = ou=Idmap

    add user script = /usr/sbin/smbldap-useradd -m '%u' -t 1
    rename user script = /usr/sbin/smbldap-usermod -r '%unew' '%uold'
    delete user script = /usr/sbin/smbldap-userdel '%u'
    set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u'
    add group script = /usr/sbin/smbldap-groupadd -p '%g'
    delete group script = /usr/sbin/smbldap-groupdel '%g'
    add user to group script = /usr/sbin/smbldap-groupmod -m '%u' '%g'
    delete user from group script = /usr/sbin/smbldap-groupmod -x '%u' '%g'
    add machine script = /usr/sbin/smbldap-useradd -W '%m' -t 1

[homes]
    comment = Home Directories
    valid users = %S
    read only = No
    browseable = No

[netlogon]
    comment = Network Logon Service
    path = /var/lib/samba/netlogon
    admin users = root
    guest ok = Yes
    browseable = No

[profiles]
    comment = Roaming Profile Share
    path = /var/lib/samba/profiles
    read only = No
    profile acls = Yes
    browsable = No
    valid users = %U
    create mode = 0600
    directory mode = 0700

¿Alguna ayuda?

Kai Petzke
fuente
¿Puedes unirte a una computadora al dominio para ver si resuelve este problema?
integratorIT
Lo sentimos, volver a unir un cliente win 8 o win 8.1 al dominio no resuelve el problema. Lo intentamos varias veces.
Kai Petzke

Respuestas:

12

¡La página de manual de smb.conf necesita ser actualizada! Se refiere al antiguo mecanismo de cifrado específico de Samba que se aplica solo a SMB1 y se realiza a través de extensiones Unix. Esto puede ser usado por smbclient.

Hoy en día, las smb encryptopciones " " también controlan el cifrado de nivel SMB que forma parte de SMB versión 3.0 y posteriores. Los clientes de Windows 8 (y más nuevos) deben cifrar el tráfico con esta configuración.

¿Ha intentado usar la misma configuración ( smb encrypt = mandatoryen la [global]sección) en un miembro de dominio Samba o en un servidor independiente?

Asegúrese de establecer smb encrypt = autoen la [global]sección (no la [profiles]sección). Entonces la disponibilidad general de cifrado aún se anuncia.



Es muy posible que esto sea un error en Samba. Entonces, esto probablemente debería discutirse en la lista de correo de samba-technial o en el bugzilla de samba . Si está utilizando la versión de Ubuntu de Samba, es posible que también desee consultar la página del paquete . Sospecho que se trata de un verdadero problema aguas arriba de Samba.

Michael Adam
fuente
77
He actualizado la página del manual en el repositorio principal de Samba para explicar el significado diferente de smb encryptSMB2 y SMB3: ( git.samba.org/… )
Michael Adam
4

Esta es una nueva característica introducida con Samba 3.2 y superior. Es una extensión del protocolo SMB / CIFS negociado como parte de las extensiones UNIX. El cifrado SMB utiliza la capacidad GSSAPI (SSPI en Windows) para cifrar y firmar cada solicitud / respuesta en una secuencia de protocolo SMB. Cuando está habilitado, proporciona un método seguro de comunicación SMB / CIFS, similar a una sesión protegida ssh, pero que utiliza la autenticación SMB / CIFS para negociar claves de cifrado y firma. Actualmente, esto solo es compatible con smbclient de Samba 3.2 y, con suerte, pronto los clientes Linux CIFSFS y MacOS / X.Windows clients do not support this feature.

Esto controla si el cliente remoto puede usar o no usar el cifrado SMB. Los valores posibles son automático, obligatorio y deshabilitado. Esto puede establecerse en función de cada recurso compartido, pero los clientes pueden optar por cifrar toda la sesión, no solo el tráfico a un recurso compartido específico. Si se establece como obligatorio, todo el tráfico a un recurso compartido debe cifrarse una vez que se ha realizado la conexión al recurso compartido. El servidor devolvería el "acceso denegado" a todas las solicitudes no cifradas en dicho recurso compartido. La selección del tráfico cifrado reduce el rendimiento, ya que se deben utilizar paquetes de menor tamaño (no se permiten grandes lecturas / escrituras de estilo UNIX), así como la sobrecarga de cifrar y firmar todos los datos.

Si se selecciona el cifrado SMB, la firma SMB estilo Windows (consulte la opción de firma del servidor) ya no es necesaria, ya que los indicadores GSSAPI usan la firma y el sellado selectivo de los datos.

Cuando se establece en automático, se ofrece cifrado SMB, pero no se aplica. Cuando se establece como obligatorio, se requiere el cifrado SMB y si se establece como deshabilitado, el cifrado SMB no se puede negociar.

Valor predeterminado: smb encrypt = auto

Fuente: https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html

joe
fuente
Lo siento, puedo leer la página del manual yo mismo. Sobre la cita que destacó: Algunas páginas, como blogs.technet.com/b/filecab/archive/2012/05/03/… indican que Win 8 también puede hacer cifrado SMB. Como está escrito en la parte superior de esa página: "Todo aquí también se aplica a Windows 8". ¿Esa información seguramente está mal?
Kai Petzke
Alternativamente, puede usar Windows Server 2012 que admite tráfico smb cifrado
integratorIT
¿Pero eso no requeriría la edición de Windows Server en todos los clientes?
Kai Petzke