У меня есть рядовой сервер Samba 4.6.2 samba ActiveDirectory. Примерно каждый месяц все клиенты теряют возможность подключиться ко всем общим ресурсам. Я могу обойти эту проблему, покинув домен, удалив учетную запись компьютера и повторно присоединившись к домену, но, очевидно, неправильно, что мне приходится делать это каждые несколько недель. Я думал, что это проблема с истечением срока действия пароля учетной записи компьютера, но работает adcli update не помогает. Я попытался изменить групповую политику для истечения срока действия пароля компьютера, но это тоже не помогло.
Сообщение об ошибке на стороне клиента:
"\\cheetoes is not accessible. You might not have permissions to use this network resource. Contact the administrator of this server to find out if you have access permissions.
Login Failure: The target account name is incorrect"
На стороне сервера при запуске log.smbd содержит:
[2018/05/09 12:03:41.622878, 0] ../source3/libads/kerberos_util.c:74(ads_kinit_password)
kerberos_kinit_password CHEETOES$@HYMESRUZICKA.ORG failed: Preauthentication failed
[2018/05/09 12:03:41.622923, 1] ../source3/libads/sasl.c:821(ads_sasl_spnego_bind)
ads_sasl_spnego_gensec_bind(KRB5) failed for ldap/true-companion.hymesruzicka.org with user[CHEETOES$] realm=[HYMESRUZICKA.ORG]: Preauthentication failed
И журнал для каждого клиента показывает:
[2018/05/09 12:06:58.259646, 1] ../source3/librpc/crypto/gse.c:646(gse_get_server_auth_token)
gss_accept_sec_context failed with [Unspecified GSS failure. Minor code may provide more information: Request ticket server cifs/CHEETOES.hymesruzicka.org@HYMESRUZICKA.ORG not found in keytab (ticket kvno 3)]
[2018/05/09 12:06:59.099902, 1] ../source3/librpc/crypto/gse.c:646(gse_get_server_auth_token)
gss_accept_sec_context failed with [Unspecified GSS failure. Minor code may provide more information: Request ticket server cifs/CHEETOES.hymesruzicka.org@HYMESRUZICKA.ORG not found in keytab (ticket kvno 3)]
Сразу после повторного присоединения я не получаю ни отказов клиента, ни ошибки «Ошибка предварительной аутентификации» в log.smbd. Я особенно озадачен, почему повторное присоединение работает, но только на время.
CentOS 7 builds of Samba очень плохо работает в контексте Active Directory. Сборка CentOS Samba 4.8.3 приводит к тому, что adcli
выгружает ядро при попытке выполнения подкоманды 'update'. adcli
также не может правильно присоединиться к домену или покинуть его, что приводит к поломке
/etc/samba/smb.conf, а также конфигурации sssd
и pam
.
И это не только adcli
. realmd
, winbind
и smbd
сами по себе некорректно работают с серверами Windows Active Directory, в результате чего некоторые клиенты (например, устройства iOS) не могут подключиться.
Единственный обходной путь, который я нашел, - это создать "стандартный" стек samba и adcli + reamld из исходников последней версии и использовать его поверх стека CentOS samba. Вы также должны отключить обновления для всех компонентов samba в /etc/yum.conf, иначе ваша локальная установка samba будет нарушена установкой CentOS. Ваш файл yum.conf требует как минимум:
exclude=adcli-* libsmbclient-* libwbclient* python-smbc-* realmd-* samba-* samba-client-* samba-client-libs-* samba-common-* samba-common-libs-* samba\
-common-tools-* samba-libs-* samba-python-* samba-winbind-* samba-winbind-clients-* samba-winbind-modules-*
Обратите внимание, что удалять самбу CentOS нецелесообразно, потому что от нее зависят многие другие пакеты.