У меня есть рядовой сервер Samba 4.6.2 samba ActiveDirectory. Примерно каждый месяц все клиенты теряют возможность подключиться ко всем общим ресурсам. Я могу обойти эту проблему, покинув домен, удалив учетную запись компьютера и повторно присоединившись к домену, но, очевидно, неправильно, что мне приходится делать это каждые несколько недель. Я думал, что это проблема с истечением срока действия пароля учетной записи компьютера, но работает обновление adcli не помогает. Я попытался изменить групповую политику для истечения срока действия пароля компьютера, но это тоже не помогло.
Сообщение об ошибке на стороне клиента:
"\\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. Я особенно озадачен, почему повторное присоединение работает, но только на время.
Сборки Samba в CentOS 7 сильно ломаются в контексте 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 непрактично, потому что от нее зависят многие другие пакеты.