Назад | Перейти на главную страницу

Невозможно присоединиться к домену с помощью 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, а также к объекту на удаленном сервере Active Directory, настроены правильно, что означает, что система будет успешно связываться с использованием 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: вместо этого использование области и 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 = область:

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

У меня была такая же проблема, realm плюс adcli было решение. realm по умолчанию использует стандартную самбу. Получите пакеты 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 против DC, путем поиска с помощью инструментов Windows или по запросу администраторов AD, но я не знаю, какие варианты использовать для LDAP, и мне нравится быть самодостаточным.

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

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

Документы для Realm на 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.

Проблема также возникла в debian и ubuntu после обновления samba с 4.1 до младшей версии 4.3. Это означает, что это не было специально для Redhat. Кстати, я обратился в службу поддержки RedHat.

Мне не удалось найти решение, но я нашел подходящую работу. По какой-то причине, когда происходит конкретный сбой, keytab не создается или создается неправильный. Привязка к серверам Active Directory на самом деле была успешной, и для того, чтобы все заработало, необходимо создать новую keytab.

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

Запустите это, чтобы создать keytab:

net -P ads keytab create

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