samba4 при обновлении dns проблема с gssapi

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
als
мл. сержант
Сообщения: 102
Зарегистрирован: 2015-08-26 8:17:23

samba4 при обновлении dns проблема с gssapi

Непрочитанное сообщение als » 2016-08-25 15:00:22

Мое почтение коллегам.
Пробую настроить обновление самбой DNS зону.
Стоит samba 4.4 (пробовал на 4.3, тоже самое).
Стоит bind910. Самба bind 9.11 отвергла :)
Прописал dns.keytab в named.conf
Сам dns.keytab переформировывал давеча.
ktutil -k /var/db/samba4/private/dns.keytab -v list выдает

Код: Выделить всё

 1  des-cbc-crc              DNS/server.localnet.tlinknet@LOCALNET.TLINKNET  2016-08-11
  1  des-cbc-crc              dns-server@LOCALNET.TLINKNET                    2016-08-11
  1  des-cbc-md5              DNS/server.localnet.tlinknet@LOCALNET.TLINKNET  2016-08-11
  1  des-cbc-md5              dns-server@LOCALNET.TLINKNET                    2016-08-11
  1  arcfour-hmac-md5         DNS/server.localnet.tlinknet@LOCALNET.TLINKNET  2016-08-11
  1  arcfour-hmac-md5         dns-server@LOCALNET.TLINKNET                    2016-08-11
  1  aes128-cts-hmac-sha1-96  DNS/server.localnet.tlinknet@LOCALNET.TLINKNET  2016-08-11
  1  aes128-cts-hmac-sha1-96  dns-server@LOCALNET.TLINKNET                    2016-08-11
  1  aes256-cts-hmac-sha1-96  DNS/server.localnet.tlinknet@LOCALNET.TLINKNET  2016-08-11
  1  aes256-cts-hmac-sha1-96  dns-server@LOCALNET.TLINKNET                    2016-08-11
Прописал в библиотеке самбы для бинда ключик -d
database "dlopen /usr/local/lib/shared-modules/bind9/dlz_bind9_10.so -d 9";

И пошел смотреть логи named

Ошибка в логах зависит от сборки bind

Если собрать с опцией GSSAPI_HEIMDAL, то будет ошибка про badkey. Собственно dns.keytab переформировывал из-за этой ошибки.

Дальше пересобрал bind с опцией GSSAPI_BASE.
Ошибка появляется такая

Код: Выделить всё

samba_dlz: starting transaction on zone localnet.tlinknet
client 192.168.0.122#58885/key k122\$\@LOCALNET.TLINKNET: updating zone 'localnet.tlinknet/NONE': prerequisites are OK
samba_dlz: Starting GENSEC mechanism spnego
samba_dlz: Starting GENSEC submechanism gssapi_krb5
samba_dlz: GSS server Update(krb5)(1) Update failed:  An unsupported mechanism was requested: unknown mech-code 0 for mech 1 2 840 113554 1 2 2
samba_dlz: SPNEGO(gssapi_krb5) NEG_TOKEN_INIT failed: NT_STATUS_LOGON_FAILURE
samba_dlz: SPNEGO login failed: NT_STATUS_LOGON_FAILURE
samba_dlz: spnego update failed
client 192.168.0.122#58885/key k122\$\@LOCALNET.TLINKNET: updating zone 'localnet.tlinknet/NONE': update failed: rejected by secure update (REFUSED)
client 192.168.0.122#58885/key k122\$\@LOCALNET.TLINKNET: updating zone 'localnet.tlinknet/NONE': rolling back
samba_dlz: cancelling transaction on zone localnet.tlinknet
В начале все вроде прилично. Самба подключила spnego. Подключила gssapi_krb5. И на тебе - An unsupported mechanism was requested.
Захожу /etc/gss
Смотрю mech

Код: Выделить всё

# Name          OID                     Library name                    Kernel module
kerberosv5      1.2.840.113554.1.2.2    /usr/lib/libgssapi_krb5.so.10   kgssapi_krb5
spnego          1.3.6.1.5.5.2           /usr/lib/libgssapi_spnego.so.10 -
#ntlm           1.3.6.1.4.1.311.2.2.10  /usr/lib/libgssapi_ntlm.so.10   -
Ее OID указан в ошибке. Библиотека есть.

Решил проверить, может быть при сборке bind910 не так указан ключ --with-gssapi
В Makefile указано

Код: Выделить всё

GSSAPI_BASE_USES=       gssapi
GSSAPI_BASE_CONFIGURE_ON= \
        --with-gssapi=${GSSAPIBASEDIR} KRB5CONFIG="${KRB5CONFIG}"
и по умолчанию собирается с опцией --with-gssapi=/usr
Попробовал собрать с опцией --with-gssapi=/usr/include/gssapi
Все тоже самое...

Я понимаю, у меня в голове каша из gss krb5 heimdal :roll:
Как бы мне это побороть?
В чем может быть проблема - в ключах dns.keytab?
Последний раз редактировалось f_andrey 2016-08-26 6:19:08, всего редактировалось 1 раз.
Причина: Автору. пожалуйста, выбирайте соответствующий раздел форума.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

LBV
ефрейтор
Сообщения: 60
Зарегистрирован: 2014-09-03 10:18:00

samba4 при обновлении dns проблема с gssapi

Непрочитанное сообщение LBV » 2016-08-25 15:51:46

Ну у меня например собрана с GSSAPI_HEIMDAL и все работает, а ошибка bad key скорее всего из-за ограничения доступа named к папке private самбы, покажы

Код: Выделить всё

ls -ld /var/db/samba4/private

als
мл. сержант
Сообщения: 102
Зарегистрирован: 2015-08-26 8:17:23

samba4 при обновлении dns проблема с gssapi

Непрочитанное сообщение als » 2016-08-25 16:17:58

LBV, по heimdal понял.

Код: Выделить всё

ls -ld /var/db/samba4/private
drwx------  8 root  wheel  1024 25 авг 18:12 /var/db/samba4/private
bind доступ дается на остальную внутренность :)
Например,
ls -ld /var/db/samba4/private/dns
drwxrwx--- 3 root bind 512 11 авг 20:14 /var/db/samba4/private/dns

LBV
ефрейтор
Сообщения: 60
Зарегистрирован: 2014-09-03 10:18:00

samba4 при обновлении dns проблема с gssapi

Непрочитанное сообщение LBV » 2016-08-25 16:27:28

ну выполни

Код: Выделить всё

su -m bind -c "cat /var/db/samba4/private/dns.keytab"

als
мл. сержант
Сообщения: 102
Зарегистрирован: 2015-08-26 8:17:23

samba4 при обновлении dns проблема с gssapi

Непрочитанное сообщение als » 2016-08-25 20:27:11

LBV, ух. Вот ведь, ну ведь надо же :)
Ладно, причитать не будем :)
Добился вывода. Перезапустил. Пока вижу, что все равно canceled, но уже ситуация сильно изменилась.
Огромное спасибо!

Разберу логи, отпишусь.

als
мл. сержант
Сообщения: 102
Зарегистрирован: 2015-08-26 8:17:23

samba4 при обновлении dns проблема с gssapi

Непрочитанное сообщение als » 2016-08-26 7:51:24

Посмотрел.
Нашел заковыку одну.
При старте samba проверяет права на каталог /var/db/samba4/private
И меняет их на 700...
Дальше по цепочке бинд получает отказ в доступе к файлу и понеслась...

Отправлено спустя 6 минут 12 секунд:
Собственно в стартовом скрипте и идет изменении прав на каталог.
Об этом же написано и в http://forum.lissyara.su/viewtopic.php?t=43526

Пока поправил стартовый скрипт. Надо будет подумать, что делать. Забуду ведь :)

als
мл. сержант
Сообщения: 102
Зарегистрирован: 2015-08-26 8:17:23

samba4 при обновлении dns проблема с gssapi

Непрочитанное сообщение als » 2016-08-30 21:04:45

Разобрался, проверил.
Работает наполовину :)

Когда работает. Новый комп. Вводишь в домен, в логах бинда проходит обновление зоны через samba_dlz
Когда не работает. Комп уже был в зоне, ip не совпадает с текущим. При апдейте в логах бинда проходит сообщение
samba_dlz: disallowing update of signer=K222\$\@LOCALNET.TLINKNET name=K222.localnet.tlinknet type=AAAA error=insufficient access rights

Каким-то образом бинд классифицирует компы на две части - одним можно, другим низя :)
Сейчас изучаю, как через nsupdate удалить зависшее.

als
мл. сержант
Сообщения: 102
Зарегистрирован: 2015-08-26 8:17:23

samba4 при обновлении dns проблема с gssapi

Непрочитанное сообщение als » 2016-08-31 7:36:45

Нашел другой пример.
Комп не регается в dns. Та же ошибка.
При этом его в DNS еще нет.

als
мл. сержант
Сообщения: 102
Зарегистрирован: 2015-08-26 8:17:23

samba4 при обновлении dns проблема с gssapi

Непрочитанное сообщение als » 2016-08-31 21:14:37

Разобрался с удалением записи через nsupdate
Надо было получить билет kinit и уже через nsupdate -g можно удалять.
Но не помогло. Удаленный комп все равно выдает ошибку insufficient

Отправлено спустя 8 минут 31 секунду:
Ха!
Я только сейчас разглядел.
Ошибка звучит так

Код: Выделить всё

[quote="als"][post]380388[/post] samba_dlz: disallowing update of signer=K222\$\@LOCALNET.TLINKNET name=K222.localnet.tlinknet type=AAAA error=insufficient access rights[/quote]
А тип АААА - это ip6. То есть получается самба не дает обновить IP6 :)
То есть я жму на стороне клиента ipconfig /registerdns и самбе прилетает обновление ip6 (при этом этот протокол на клиенте отключен) :)

буду дальше думать.

Отправлено спустя 17 секунд:
Ха!
Я только сейчас разглядел.
Ошибка звучит так

Код: Выделить всё

[quote="als"][post]380388[/post] samba_dlz: disallowing update of signer=K222\$\@LOCALNET.TLINKNET name=K222.localnet.tlinknet type=AAAA error=insufficient access rights[/quote]
А тип АААА - это ip6. То есть получается самба не дает обновить IP6 :)
То есть я жму на стороне клиента ipconfig /registerdns и самбе прилетает обновление ip6 (при этом этот протокол на клиенте отключен) :)

буду дальше думать.

Отправлено спустя 18 минут 47 секунд:
На клиентском компе включил IP6, убрал признак "Регистрировать DNS" (пишу по памяти) и выключил.
Теперь имею ошибку insufficient, то тип записи A :)

als
мл. сержант
Сообщения: 102
Зарегистрирован: 2015-08-26 8:17:23

samba4 при обновлении dns проблема с gssapi

Непрочитанное сообщение als » 2016-09-01 16:02:43

Я похоже разгадал тайну черепахи тортиллы.
Поставил RSAT (Remote server administration tools). Меня интересовала компонента DNS.
В доках самбы сказано, что рулить DNS сервером можно и через эту компоненту.

Так вот. В этой компоненте открывается управление сервером. Смотрим свойство прямой записи (тип А) конкретного компа. А там есть закладка безопасность. А там ... а там и видно, что право на изменение эаписи у компа и нет :)

Если выйти из домена, зайти - право на запись может быть установлено не компу, а какой-то Неизвестной записи.
Начал смотреть. Судя по остаткам, это что-то из миграции еще висит (на samba4 перешел с samba3).
Сработало так.
Выводишь комп из домена. Удаляешь запись в DNS. Удаляешь запись компа из учетки (у меня там еще ошметки миграции видны).
Вводишь в домен. Проверяешь появление записи в DNS (появляется после перегрузки и мальца подождать). Если не появилась, смотрю на логи бинда. Если там тихо, на клиентском компе запускаю ipconfig /registerdns
Убеждаюсь, что права на добавление снова нет.
Вручную добавляю запись в DNS через компоненту. На закладке безопасность добавляю право этому компу (учетка тип компьютер).
Дергаю снова ipconfig /registerdns и ... наслаждаюсь обновлением :)
Ура, ура, ура.