Автор Тема: Ошибка корректного присоединения к Домену AD (Samba/Samba-DC/AD) [новая ошибка]  (Прочитано 2739 раз)

Оффлайн ivanlex

  • Давно тут
  • **
  • Сообщений: 27
    • Email
Доброго времени суток всем.

Не получается ввести ПК пользователя в домен AD.

Вводные данные:
Контроллер домена (единственный) под управлением MS Windows 2012R2.
Пользовательский ПК под управлением alt-p9-cinnamon x86_64 (ISO alt-p9-cinnamon-20210612-x86_64.iso).
Имя домена: DOMAIN.LOCAL
Имя контролера домена DC.DOMAIN.LOCAL
Имя пользовательского ПК computername
ip контролера домена 192.168.0.12
ip пользовательского ПК 192.168.0.99

Разумеется avahi-daemon остановлен и выключен (так как суффикс ".LOCAL").
DNS корректно резолвит как DC.DOMAIN.LOCAL, так и DOMAIN.LOCAL, и DOMAIN.
DHCP корректно присылает на пользовательский ПК параметр "search domainname.local".

Пытаюсь присоединить машину к домену по статье из вики.
Доходим до пункта: "В Центре управления системой перейдите в раздел Пользователи → Аутентификация" и получаем ошибку:
"Невозможно подключиться к домену Active Directory: /usr/sbin/system-auth: строка 595: 5674 Ошибка сегментирования (стек памяти сброшен на диск) $net_cmd ads join -U"$user%$password" --no-dns-updates" (скрин прилагаю).
Самое интересное, что код ошибки всегда разный (на втором скрине).

Пробую ввести в домен командой (конечно, для чистоты эксперемента - это уже свеже установленный дстрибутив с форматированием SSD).
 system-auth write ad domain.local 'computername' domain 'adminname' 'password', получаю ответ:
/usr/sbin/system-auth: строка 595:  8454 Ошибка сегментирования                   $net_cmd ads join -U"$user%$password" --no-dns-updatesИ соответственно остальные команды:
 net ads info
LDAP server: 192.168.0.12
LDAP server name: DC.DOMAIN.local
Realm: DOMAIN.LOCAL
Bind Path: dc=DOMAIN,dc=LOCAL
LDAP port: 389
Server time: Сб, 26 июн 2021 12:03:43 +05
KDC server: 192.168.0.12
Server time offset: -1
Last machine account password change: Чт, 01 янв 1970 05:00:00 +05
net ads testjoin, ответ: Enter COMPUTERNAME$@DOMAIN.LOCAL's password:
kerberos_kinit_password ALTLINUXTEST$@GOB06.LOCAL failed: Preauthentication failed
Join to domain is not valid: The attempted logon is invalid. This is either due to a bad username or authentication information.

А теперь самое интересное:

По умолчанию, в дистрибутивах alt-p9-cinnamon x86_64 в качестве репозитория используется зеркало яндекса. И когда вносятся какие то изменения в основной репозиторий (обновляют пакеты) - зеркало яндекса на время становится не доступно (индексы яндекс еще какое то время отдает из кэша, и они не собпадают с контрольными суммами).

22 июня 2021 года ПК пользователя корректно вводились в домен AD (мы вводили и до этого ПК в домен, и все было корректно).
23 июня 2021 года зеркала яндекса отвалились - это нормально, мы к этому привыкли, обновляют разработчики пакеты в репах - молодцы.
И после этого мы не смогли ни один ПК ввести в домен. Теперь воспроизводится приведенная выше ошибка.

Файлы /etc/krb5.conf на ПК, которые уже успели ввести в домен, и которые уже не вводятся в домен - идентичны.

Команды "getent passwd username", "id", "kinit", "klist" на ПК, которые по этому же рецепту ввели в домен - отрабатывают; на ПК, которые пытаемся ввести в домен после 23 июня 2021 года - не работают.








Прошу помощи.

Заранее спасибо всем откликнувшимся.
« Последнее редактирование: 26.06.2021 17:25:09 от ivanlex »

Оффлайн Александр Ерещенко

  • Завсегдатай
  • *
  • Сообщений: 1 159
Если верить логам ( journalctl -S 2021-06-22 | grep apt-get ) , то после 22 июня обновилась самба со всеми своими пакетами, включая libsss_nss_idmap.
Возможно, где-то здесь собака и порылась...
Если точнее, то ошибка возникает вот в этой функции, которая определяется в строке 595 скрипта /usr/sbin/system-auth
# Join to Active Directory domin
join_ad_domain()
{
    local ldomain="$1"
    local domain="$(upper $ldomain)"
    local user="$2"
    local password="$3"
    local host_name="$4"

    [ -x /usr/bin/kinit ] || fatal "krb5-kinit is required for join to Active Directory domain"
    [ -x "$net_cmd" ] || fatal "$net_cmd from samba-common or samba-common-tools package is required for join to Active Directory domain"
    [ -n "$(ls /etc/init.d/{winbind,sssd} 2>/dev/null)" ] || fatal "samba-winbind or sssd-ad is required for join to Active Directory domain"

    # Prepare Kerberos environment
    set_kerberos_realm "$ldomain"

    # Get Kerberos ticket for administrator
    output="$(echo "$password" | kinit "$user@$domain" 2>&1 >/dev/null)"
    if [ "$?" -ne 0 ]; then
#echo "ERROR: $output"
error_unknown_kdc="$(echo "$output"|grep '^kinit: Cannot contact any KDC for realm')"
error_bad_username="$(echo "$output"|grep '^kinit: Client not found in Kerberos database while getting initial credentials$')"
error_bad_preauth="$(echo "$output"|grep '^kinit: Preauthentication failed while getting initial credentials$')"
error_bad_credentials="$(echo "$output"|grep '^kinit: Password incorrect while getting initial credentials$')"
[ -n "$error_unknown_kdc" ] && echo "Cannot contact KDC for realm" >&2
[ -n "$error_bad_username" ] && echo "Unknown administrator name" >&2
[ -n "$error_bad_preauth" ] && echo "Preauthentication failed" >&2
[ -n "$error_bad_credentials" ] && echo "Wrong password" >&2
return 1
    else
# Set correct FQDN
set_hostname "$host_name.$ldomain"

# Join to domain
$net_cmd ads join -U"$user%$password" --no-dns-updates

[ "$?" -ne 0 ] && return 1

# Register machine in domain DNS
if [ -n "$host_name" ]; then
$net_cmd ads dns register -U"$user%$password" "$host_name.$ldomain"
fi

# Destroy ticket
kdestroy &>/dev/null
    fi
}

Оффлайн ivanlex

  • Давно тут
  • **
  • Сообщений: 27
    • Email
Еще один интересный факт.

Попробовал вогнать в домен у коллеги из соседней организации. У него суффикс домена .LAN - и у него ошибки нет. Ошибка только при использовании суффикса .LOCAL
Но до 22 июня 2021 года всё вгонялось замечательно.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 918
    • Домашняя страница
    • Email
Пишите на bugs.altlinux.org. Здесь не багтрекер.
Андрей Черепанов (cas@)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 918
    • Домашняя страница
    • Email
Нашёл время на выходных, проверил. Регулярка cinnamon установленная на диск, обновлённая (включая ядро), домен: domain.local. Памяти: 2 ГБ. Прекрасно вошла в домен безо всяких проблем. Вы на диск устанавливали?
Андрей Черепанов (cas@)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 918
    • Домашняя страница
    • Email
Подключение к домену domain.local с livecd (памяти 2 ГБ для Cinnamon, это прожорливая среда) прошла также без проблем:
Андрей Черепанов (cas@)

Оффлайн gvy

  • alt linux team
  • ***
  • Сообщений: 1 008
    • Альт на Эльбрусе
    • Email
после 22 июня обновилась самба со всеми своими пакетами, включая libsss_nss_idmap.
4.12 -> 4.14: http://ftp.altlinux.org/pub/distributions/archive/p9/index/src/s/samba/ (её тестировали, разумеется -- но комбинаторный взрыв вариантов уже давным-давно с нами, остаётся вешать багу)
--
Michael Shigorin | ALT Linux Team | ANNA-News | Сделано у нас | altlinux.org/эльбрус