Шифрование трафика SMB с помощью Samba

11

Мы используем Samba в Ubuntu 14.04 LTS в качестве PDC (основного контроллера домена) с перемещаемыми профилями. Все работает нормально, за исключением случаев, когда мы пытаемся включить шифрование через настройку:

    server signing = mandatory
    smb encrypt = mandatory

в [global]разделе /etc/samba/smb.conf. После этого клиенты win 8.0 и win 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

Любая помощь?

Кай Петцке
источник
Можете ли вы присоединить компьютер к домену, чтобы посмотреть, решит ли он эту проблему?
интегратор
Извините, присоединение клиента win 8 или win 8.1 к домену не решает проблему. Мы пробовали это несколько раз.
Кай Петцке

Ответы:

12

Страница руководства smb.conf должна быть обновлена! Это относится к старому Samba-специфическому механизму шифрования, который применяется только к SMB1 и осуществляется через расширения Unix. Это может быть использовано smbclient.

В настоящее время smb encryptопции " " также управляют шифрованием на уровне SMB, которое является частью SMB версии 3.0 и новее. Клиенты Windows 8 (и новее) должны шифровать трафик с этими настройками.

Вы пытались использовать те же настройки ( smb encrypt = mandatoryв [global]разделе) для участника домена Samba или автономного сервера?

Обязательно установите smb encrypt = autoв [global]разделе (не в [profiles]разделе). Тогда все еще объявлено о доступности шифрования.



Вполне возможно, что это ошибка в Samba. Так что это, вероятно, следует обсудить в списке рассылки samba-technial samba или в bugzilla samba . Если вы используете версию Samba для Ubuntu, вы также можете проверить страницу пакета . Я подозреваю, что это настоящая проблема самбы.

Майкл Адам
источник
7
Я обновил страницу руководства в основном хранилище Samba, чтобы объяснить различное значение smb encryptдля SMB2 и SMB3: ( git.samba.org/… )
Майкл Адам,
4

Это новая функция, представленная в Samba 3.2 и выше. Это расширение протокола SMB / CIFS, согласованного как часть расширений UNIX. Шифрование SMB использует возможность GSSAPI (SSPI в Windows) для шифрования и подписывания каждого запроса / ответа в потоке протокола SMB. При включении он обеспечивает безопасный метод связи SMB / CIFS, аналогично сеансу с защитой ssh, но с использованием аутентификации SMB / CIFS для согласования ключей шифрования и подписи. В настоящее время это поддерживается только Samba 3.2 smbclient, и, надеюсь, скоро клиенты Linux CIFSFS и MacOS / X.Windows clients do not support this feature.

Это определяет, разрешено или требуется ли удаленному клиенту использовать шифрование SMB. Возможные значения: auto, обязательные и отключенные. Это может быть установлено на основе общего ресурса, но клиенты могут выбрать шифрование всего сеанса, а не только трафика к определенному общему ресурсу. Если это установлено как обязательное, то весь трафик к общему ресурсу должен быть зашифрован после того, как было установлено соединение с общим ресурсом. Сервер вернул бы «доступ запрещен» ко всем незашифрованным запросам на таком общем ресурсе. Выбор зашифрованного трафика снижает пропускную способность, так как необходимо использовать пакеты меньшего размера (не допускается чтение и запись в стиле UNIX), а также накладные расходы на шифрование и подпись всех данных.

Если выбрано шифрование SMB, подпись SMB в стиле Windows (см. Параметр подписи сервера) больше не требуется, поскольку флаги GSSAPI используют выбор подписи и запечатывания данных.

Когда установлено значение auto, шифрование SMB предлагается, но не применяется. Если установлено обязательное, требуется шифрование SMB, а если отключено, шифрование SMB не может быть согласовано.

По умолчанию: smb encrypt = auto

Источник: 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». Это информация, безусловно, неправильно?
Кай Петцке
В качестве альтернативы вы можете использовать Windows Server 2012, который поддерживает зашифрованный трафик smb
integratorIT
Но не потребует ли это выпуска Windows Server на всех клиентах?
Кай Петцке