6.2.7.1. Неверные права DNS-записей машины в домене
При вводе машины в домен AD вызывается утилита system-auth
, которая в свою очередь использует команду net ads join
. В рамках данной команды выполняется присоединение к домену с использованием Kerberos-аутентификации и не производится обновление DNS. После успешного присоединения машина регистрирует свою DNS-запись с помощью команды net ads dns register
также используя Kerberos-аутентификацию.
Если машины уже введены в домен или используется старая версия alterator-auth (до версии 0.44.10-alt1), то у машин не будет прав на обновление своих DNS-записей. Это происходит потому, что во время создания DNS-записи в доменном DNS system-auth
использует билет администратора, и в результате владельцем записи становится он, а не машина, что впоследствии не позволяет машине обновить свою DNS-запись.
Имеются ввиду записи вида:
DC=host1,DC=test.alt,CN=MicrosoftDNS,DC=DomainDnsZones,DC=test,DC=alt
Исправление в пакете alterator-auth версии 0.44.10-alt1 работает только для машин, которые не были ранее введены в домен с текущим именем (то есть, если машинная учётная запись создаётся впервые). Если машина уже была добавлена в домен, но для неё используется новое имя, то будет создана новая учётная запись, и проблема с правами на обновление DNS-записей будет решена. Однако, если машина повторно вводится в домен с тем же именем, это не устранит проблему.
При вводе машины в домен с новым именем необходимо убедиться, что очищены кеши SSSD и Winbind, а также удален старый keytab-файл.
В случае с уже введёнными в домен машинами можно воспользоваться скриптом
https://github.com/altlinuxteam/samba_allow_nsupdate на контроллере домена (предварительно получив билет администратора). Этот скрипт позволяет задать необходимые права как для всех машин в домене или OU, так и для произвольного списка машин в домене. Примеры:
разрешить самостоятельное обновление для машин, находящихся в контейнере «Computers»:
# samba_allow_nsupdate --domain-dns="test.alt" --computers-base-dn="CN=Computers,DC=test,DC=alt"
Domain: test.alt
Domain DN: DC=test,DC=alt
Computers search base DN: CN=Computers,DC=test,DC=alt
Action: allow
Selected computers list:
DC1$
WS2$
WS$
WS3$
Allow self nsupdate for this computers list? (Y/n):
DC1$ S-1-5-21-3099202228-3607437695-3279060739-1000 DONE
WS2$ S-1-5-21-3099202228-3607437695-3279060739-1113 DONE
WS$ S-1-5-21-3099202228-3607437695-3279060739-1107 DONE
WS3$ S-1-5-21-3099202228-3607437695-3279060739-1127 DONE
разрешить самостоятельное обновление для произвольного списка машин в домене (в примере для WS, WS2):
# samba_allow_nsupdate --action=allow WS$ WS2$ --computers-base-dn="DC=test,DC=alt" --domain-dns="test.alt"
Domain: test.alt
Domain DN: DC=test,DC=alt
Computers search base DN: DC=test,DC=alt
Action: allow
Selected computers list:
WS$
WS2$
Allow self nsupdate for this computers list? (Y/n):
WS$ S-1-5-21-3099202228-3607437695-3279060739-1107 DONE
WS2$ S-1-5-21-3099202228-3607437695-3279060739-1113 DONE
Другие решения:
воспользоваться RSAT оснасткой DNS на Windows машине и задать необходимые права вручную;
в той же оснастке DNS для всего DNS домена дать права на запись группе «Domain Computers» (не рекомендуется);
воспользоваться инструментом samba-tool dsacl
.