使用Samba加密SMB流量


11

我们在Ubuntu 14.04 LTS上使用Samba作为具有漫游配置文件的PDC(主域控制器)。一切正常,除非我们尝试通过设置来实施加密:

    server signing = mandatory
    smb encrypt = mandatory

在[global]/etc/samba/smb.conf 的部分中。这样做之后,赢得8.0并赢得8.1个客户端(没有尝试过其他任何客户端)抱怨:Die Vertrauensstellung zwischen dieser Arbeitsstation und der primären Domäne konnte nicht hergestellt werden.此文本的英文翻译:The trust relationship between this workstation and the primary domain could not be established.

如果再加上两个选项server signing,并smb encrypt仅向[profiles]smb.conf文件的部分,则tcpdump显示,实际流量是不加密的!

完整的smb.conf:

[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

有什么帮助吗?


您可以将计算机重新加入域以查看它是否可以解决此问题?
— integratorIT

抱歉,将Win 8或Win 8.1客户端重新加入域不能解决问题。我们尝试了几次。
— Kai Petzke

Answers:


12

smb.conf手册页需要更新!它指的是仅适用于SMB1的旧的特定于Samba的加密机制,并通过unix扩展名完成。可以使用smbclient。

如今,“ smb encrypt”选项还可以控制SMB 3.0版及更高版本中的SMB级加密。Windows 8(及更高版本)客户端应使用这些设置对流量进行加密。

您是否尝试过在Samba域成员或独立服务器上使用相同的设置(smb encrypt = mandatory在本[global]节中)?

确保smb encrypt = auto在[global]部分(而非[profiles]部分)中进行设置。然后,仍将宣布加密的普遍可用性。



这很可能是Samba中的错误。因此,应该在samba的samba-technial邮件列表或samba的bugzilla上进行讨论。如果您使用的是Ubuntu版本的Samba,则可能还需要检查软件包页面。我怀疑这是Samba真正的上游问题。


7
我已经更新了Samba核心存储库中的手册页,以解释smb encryptSMB2和SMB3的不同含义:(git.samba.org/…)
— Michael Adam

4

这是Samba 3.2及更高版本中引入的新功能。它是对作为UNIX扩展的一部分协商的SMB / CIFS协议的扩展。SMB加密使用GSSAPI(Windows上为SSPI)功能对SMB协议流中的每个请求/响应进行加密和签名。启用后,它提供了一种SMB / CIFS通信的安全方法,类似于受ssh保护的会话,但使用SMB / CIFS身份验证来协商加密和签名密钥。目前,仅Samba 3.2 smbclient支持此功能,希望不久以后Linux CIFSFS和MacOS / X客户端也支持。Windows clients do not support this feature.

这控制是允许还是要求远程客户端使用SMB加密。可能的值是自动,强制和禁用。这可以按份额设置,但是客户端可以选择对整个会话进行加密,而不仅仅是对特定份额的流量进行加密。如果将其设置为强制性,则与共享建立连接后,必须对共享的所有流量进行加密。服务器将对此类共享上的所有未加密请求返回“拒绝访问”。选择加密的流量会降低吞吐量,因为必须使用更小的数据包大小(不允许使用巨大的UNIX风格的读/写操作),以及对所有数据进行加密和签名的开销。

如果选择了SMB加密,则不再需要Windows样式的SMB签名(请参阅服务器签名选项),因为GSSAPI标志使用选择数据的签名和密封。

设置为自动时,将提供但不强制执行SMB加密。设置为强制时,需要SMB加密;如果设置为禁用,则不能协商SMB加密。

默认值:smb crypto =自动

资料来源:https : //www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html


抱歉,我自己可以阅读手册页。关于您所强调的报价:有些页面,例如blogs.technet.com/b/filecab/archive/2012/05/03/…表示,Win 8也可以进行SMB加密。如该页面顶部所写:“此处的所有内容也适用于Windows 8”。该信息肯定是错误的吗?
— Kai Petzke

或者,您也可以使用Windows Server 2012来支持加密的smb流量
— integratorIT

但这不是在所有客户端上都需要Windows Server版本吗?
— Kai Petzke
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.