Невозможно присоединиться к домену с помощью samba tool net или realm/sssd

На сервере rhel7 я пытаюсь присоединить сервер к домену, но получаю следующую ошибку:

net ads join -S domain.example.org -U name
Enter name's password:
Failed to join domain: failed to set machine kerberos encryption types: Insufficient access

Параметры, относящиеся к pam, krb5, samba, dns, а также к объекту на удаленном сервере активных каталогов, настроены правильно, что означает, что система успешно выполнит привязку с использованием rhel6 и ubuntu 14.04.

Я не смог найти много информации относительно конкретной ошибки, которую я получаю. Я попытался установить allow_weak_crypto = true в krb5.conf, просто чтобы посмотреть, связано ли это с этим, но это никак не отразилось.

Я следовал некоторым советам по устранению неполадок в https://technet.microsoft.com/en-us/library/bb463167.aspx но безуспешно, вещи, которые я пробовал, работают нормально.

В частности, я могу сделать следующее, что означает, что я могу получить начальные учетные данные для имени пользователя:

kinit name
Password for name@domain.example.org: 

Я также могу сгенерировать файл keytab, используя ktutil, и когда я переместил его в /etc/krb5.keytab klist -e, он показывает правильное содержимое. Но объединение чистой рекламы продолжает терпеть неудачу.

Изменить: После изучения исходного пакета rhel7 samba я обнаружил следующее в README.dc:

Мы обеспечим функциональность Samba AD DC, как только будет готова поддержка MIT Kerberos KDC.

Я подозреваю, что это может быть проблемой, и мне придется ждать, пока она не будет готова.

Edit2: Использование realm и sssd вместо этого, похоже, имеет ту же проблему. После выполнения:

realm -v join --user=example ad.example.org

Я нахожу следующую ошибку:

* LANG=C /usr/sbin/adcli join --verbose --domain ad.example.org --domain-realm AD.EXAMPLE.ORG --domain-controller 192.0.2.11 --login-type user --login-user example --stdin-password
! Insufficient permissions to set encryption types on computer account: CN=example,OU=w,OU=x,DC=ad,DC=example,DC=org: 00002098: SecErr: DSID-03150BB9, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0

Обратите внимание, это работает с rhel6. У меня также нет разрешения вносить изменения в сервер AD или мою учетную запись.

Версия rhel - 7.2, и соответствующие пакеты имеют следующие версии:

Name        : realmd
Version     : 0.16.1
--
Name        : adcli
Version     : 0.7.5
--
Name        : krb5-workstation
Version     : 1.13.2
--
Name        : samba-common
Version     : 4.2.3

Санитарная обработка файла journalctl -e SYSLOG_IDENTIFIER = realmd:

Jan 21 14:56:20 host.example.org realmd[25796]:  * Using domain name: example.org
Jan 21 14:56:20 host.example.org realmd[25796]:  * Using computer account name: HOST
Jan 21 14:56:20 host.example.org realmd[25796]:  * Using domain realm: example.org
Jan 21 14:56:20 host.example.org realmd[25796]:  * Calculated computer account name from fqdn: HOST
Jan 21 14:56:20 host.example.org realmd[25796]:  * Generated 120 character computer password
Jan 21 14:56:20 host.example.org realmd[25796]:  * Using keytab: FILE:/etc/krb5.keytab
Jan 21 14:56:20 host.example.org realmd[25796]:  * Using fully qualified name: host.example.org
Jan 21 14:56:20 host.example.org realmd[25796]:  * Using domain name: example.org
Jan 21 14:56:20 host.example.org realmd[25796]:  * Using computer account name: HOST
Jan 21 14:56:20 host.example.org realmd[25796]:  * Using domain realm: example.org
Jan 21 14:56:20 host.example.org realmd[25796]:  * Looked up short domain name: AD
Jan 21 14:56:20 host.example.org realmd[25796]:  * Found computer account for HOST$ at: CN=host,OU=w,OU=x,DC=ad,DC=example,DC=org
Jan 21 14:56:20 host.example.org realmd[25796]:  * Set computer password
Jan 21 14:56:20 host.example.org realmd[25796]:  * Retrieved kvno '87' for computer account in directory: CN=host,OU=w,OU=x,DC=ad,DC=example,DC=org
Jan 21 14:56:20 host.example.org realmd[25796]:  ! Insufficient permissions to set encryption types on computer account: CN=host,OU=w,OU=x,DC=ad,DC=example,DC=org: 00002098: SecErr: DSID-03150BB9, problem 4003 (INSUFF_ACCESS_RIGHTS),  
Jan 21 14:56:20 host.example.org realmd[25796]:  * Modifying computer account: userAccountControl
Jan 21 14:56:20 host.example.org realmd[25796]:  * Modifying computer account: operatingSystem, operatingSystemVersion, operatingSystemServicePack
Jan 21 14:56:20 host.example.org realmd[25796]:  ! Couldn't set operatingSystem, operatingSystemVersion, operatingSystemServicePack on computer account: CN=host,OU=w,OU=x,DC=ad,DC=example,DC=org: Insufficient access
Jan 21 14:56:20 host.example.org realmd[25796]:  * Updated existing computer account: CN=host,OU=w,OU=x,DC=ad,DC=example,DC=org
Jan 21 14:56:20 host.example.org realmd[25796]:  * Discovered which keytab salt to use
Jan 21 14:56:20 host.example.org realmd[25796]:  * Added the entries to the keytab: HOST$@AD.EXAMPLE.ORG: FILE:/etc/krb5.keytab
Jan 21 14:56:20 host.example.org realmd[25796]:  * Added the entries to the keytab: HOST/HOST@AD.EXAMPLE.ORG: FILE:/etc/krb5.keytab
Jan 21 14:56:20 host.example.org realmd[25796]:  * Added the entries to the keytab: HOST/host.example.org@AD.EXAMPLE.ORG: FILE:/etc/krb5.keytab
Jan 21 14:56:21 host.example.org realmd[25796]:  * Added the entries to the keytab: RestrictedKrbHost/HOST@AD.EXAMPLE.ORG: FILE:/etc/krb5.keytab
Jan 21 14:56:21 host.example.org realmd[25796]:  * Added the entries to the keytab: RestrictedKrbHost/host.example.org@AD.EXAMPLE.ORG: FILE:/etc/krb5.keytab
Jan 21 14:56:21 host.example.org realmd[25796]: process exited: 25879
Jan 21 14:56:21 host.example.org realmd[25796]:  * /usr/bin/systemctl enable sssd.service
Jan 21 14:56:21 host.example.org realmd[25796]: process started: 25880
Jan 21 14:56:21 host.example.org realmd[25796]: Created symlink from /etc/systemd/system/multi-user.target.wants/sssd.service to /usr/lib/systemd/system/sssd.service.
Jan 21 14:56:21 host.example.org realmd[25796]: process exited: 25880
Jan 21 14:56:21 host.example.org realmd[25796]:  * /usr/bin/systemctl restart sssd.service
Jan 21 14:56:21 host.example.org realmd[25796]: process started: 25894
Jan 21 14:56:22 host.example.org realmd[25796]: process exited: 25894
Jan 21 14:56:22 host.example.org realmd[25796]:  * /usr/bin/sh -c /usr/sbin/authconfig --update --enablesssd --enablesssdauth --enablemkhomedir --nostart && /usr/bin/systemctl enable oddjobd.service && /usr/bin/systemctl start oddjobd.se
Jan 21 14:56:22 host.example.org realmd[25796]: process started: 25901
Jan 21 14:56:23 host.example.org realmd[25796]: process exited: 25901
Jan 21 14:56:23 host.example.org realmd[25796]:  * Successfully enrolled machine in realm
Jan 21 14:56:23 host.example.org realmd[25796]: released daemon: current-invocation
Jan 21 14:56:23 host.example.org realmd[25796]: client gone away: :1.3100
Jan 21 14:56:23 host.example.org realmd[25796]: released daemon: :1.3100
Jan 21 14:57:23 host.example.org realmd[25796]: quitting realmd service after timeout
Jan 21 14:57:23 host.example.org realmd[25796]: stopping service

Санитарный выход чистой рекламы -P статус:

objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
objectClass: computer
cn: host
distinguishedName: CN=host,OU=w,OU=x,DC=ad,DC=example,DC=org
instanceType: 4
whenCreated: 2012
whenChanged: 2016
uSNCreated: 1687590
memberOf: CN=group,OU=groups,OU=w,DC=ad,DC=example,DC=org
uSNChanged: 1212121212
name: host
objectGUID: x
userAccountControl: 6
badPwdCount: 0
codePage: 0
countryCode: 0
badPasswordTime: 1
lastLogoff: 0
lastLogon: 1
localPolicyFlags: 0
pwdLastSet: 1
primaryGroupID: 600
objectSid: S-1-5-21
accountExpires: 9
logonCount: 1
sAMAccountName: HOST$
sAMAccountType: 8
dNSHostName: host.ad.example.org
servicePrincipalName: RestrictedKrbHost/HOST
servicePrincipalName: RestrictedKrbHost/host.ad.example.org
servicePrincipalName: HOST/host.ad.example.org
servicePrincipalName: HOST/HOST
objectCategory: CN=Computer,CN=Schema,CN=Configuration,DC=ad,DC=example,DC=org
isCriticalSystemObject: FALSE
dSCorePropagationData: 2
dSCorePropagationData: 3
dSCorePropagationData: 4
dSCorePropagationData: 5
dSCorePropagationData: 6
lastLogonTimestamp: 1

3 ответа

Решение

Проблема также возникла в Debian и Ubuntu после обновления samba с 4.1 до версии 4.3. Что означает, что это не было конкретно. Кроме того, я связался с Redhat Support.

Я не смог найти решение, но нашел работу, которая достаточно хороша. По какой-то причине, когда происходит конкретный сбой, таблица ключей не создается или создается неверная. Привязка к активным серверам каталогов фактически была успешной, и для того, чтобы все заработало, необходимо создать новую таблицу ключей.

Не удалось присоединиться к домену: не удалось установить типы шифрования Kerberos на компьютере: Недостаточный доступ

Запустите это, чтобы создать таблицу ключей:

net -P ads keytab create

Хотя я решил продолжать использовать самбу, я думаю, что при использовании царства вы можете использовать эту работу вокруг.

У меня была такая же проблема, realm плюс adcli было решение. realm по умолчанию использует общий бэкэнд samba. Получить пакеты realmd и adcli и использовать

# realm join --membership-software=adcli -U <username> <domain>

Вы никогда не должны использовать adcli непосредственно. Обратите внимание, что возникает та же ошибка прав доступа, но вы продолжаете присоединяться к домену, а не терпите неудачу при отказе типа шифрования.

Это связывало меня несколько недель. Проект закончился задержкой, пока я не смог понять это. Учись у моей боли.

К сожалению, насколько я могу судить adcli похоже, нет способа проверить соединение без внесения изменений в AD. Для проверки вы можете сделать резервную копию /etc/samba/smb.conf и заменить его на (просто):

realm = <REALM>
workgroup = <WORKGROUP>

Тогда беги net ads -P status получить из AD много информации о вашей новой зарегистрированной учетной записи компьютера. Вы можете сделать то же самое с ldapsearch по отношению к контроллеру домена, с помощью инструментов Windows или с помощью ваших администраторов AD, но я не знаю, какие варианты использовать для LDAP, и мне нравится быть самодостаточным.

Часто adcli/net регистрирует машину, но sssd_ad не совсем подходит для управления идентификацией "из коробки". Я нахожу, особенно в средах AD предприятия с RIDS более 200000 или несколько раз обновлялись из гораздо более старых версий, проблемы обычно всплывают. Если вы получите результаты от net ads status Команда, но все еще не может получить информацию о пользователе, ищите проблемы с sssd и sssd_ad. systemctl status sssd.service это хорошее место для начала. Однако устранение неполадок sssd_ad для сопоставления и проверки подлинности не входит в сферу вашего исходного вопроса.

Дополнительное кредитное чтение:

Документы для царства на freedesktop.org.

Документы для adcli на freedesktop.org.

Справочная страница для sssd_ad

Почему вы используете сеть? Вы должны присоединиться к домену с помощью samba-tool.

samba-tool domain join domain.example.org DC -Uadministrator --realm=domain.example.org

net больше не используется в samba 4, кроме акций и прочего.
Не связывайтесь с криптографическими настройками Kerberos.

Другие вопросы по тегам