Шифрование трафика SMB с помощью Samba
Мы используем Samba в Ubuntu 14.04 LTS в качестве PDC (основного контроллера домена) с перемещаемыми профилями. Все работает нормально, за исключением случаев, когда мы пытаемся включить шифрование через настройку:
server signing = mandatory
smb encrypt = mandatory
в [global]
раздел /etc/samba/smb.conf. После этого клиенты win 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
Любая помощь?
2 ответа
Страница руководства smb.conf должна быть обновлена! Это относится к старому Samba-специфичному механизму шифрования, который применяется только к SMB1 и осуществляется через расширения Unix. Это может быть использовано smbclient
,
В наши дни smb encrypt
"options также управляет шифрованием на уровне SMB, которое является частью SMB версии 3.0 и новее. Клиенты Windows 8 (и новее) должны шифровать трафик с этими настройками.
Вы пытались использовать те же настройки (smb encrypt = mandatory
в [global]
раздел) на члене домена Samba или автономном сервере?
Обязательно установите smb encrypt = auto
в [global]
раздел (не [profiles]
раздел). Тогда все еще объявлено о доступности шифрования.
Вполне возможно, что это ошибка в Samba. Так что это, вероятно, следует обсудить в списке рассылки samba-technial samba или в bugzilla samba. Если вы используете версию Samba для Ubuntu, вы также можете проверить страницу пакета. Я подозреваю, что это настоящая проблема самбы.
Это новая функция, представленная в 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