windows-ubuntu-bash + hypervisor winrm + ansible - Server not found in Kerberos database

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

Что мы имеем

  • Датацентр Windows Server 2016 с установленной ролью Hyper-V (netbios: hv)
  • Виртуальные машины (netbios: web, fs, dc) на датацентре Windows Server 2016
  • Ноутбук Windows 10 Professional с установленной подсистемой Linux (netbios: asuslin)
  • Домен на dc.goodpeople. local и все серверы и клиенты (включая hv) подключены к домену Active Directory
  • Установлен AD CA с промежуточным центром выдачи на контроллере домена
  • Все серверы получили сертификат с политикой авторегистрации для аутентификации kerberos

Я хотел бы настроить все серверы (включая hv) с помощью ansible с моего ноутбука windows 10 с kerberos. На данный момент мне просто нужен успешный win_ping на все из них.

Конфигурация

  • winrm настроен на всех серверах: hv, web, fs, dc и clinet: asuslin одинаково: kerberos auth включен, https listener с действительным сертификатом, порты брандмауэра 5986 открыты
  • так же все windows 2016/win10 - powershell самый последний с .NET не ниже 4. 5
  • ansible on client был установлен на linux подсистему согласно документации со всеми необходимыми libs и используется действительный сертификат для клиента asuslin

Actual Error

ansible hv -m win_ping -vvvv
ansible 2.5.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/alexsuslin/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.12 (default, Dec  4 2017, 14:50:18) [GCC 5.4.0 20160609]
Using /etc/ansible/ansible.cfg as config file
setting up inventory plugins
Parsed /etc/ansible/hosts inventory source with ini plugin
Loading callback plugin minimal of type stdout, v2.0 from /usr/lib/python2.7/dist-packages/ansible/plugins/callback/minimal.pyc
META: ran handlers
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/windows/win_ping.ps1
<hv.goodpeople.local> ESTABLISH WINRM CONNECTION FOR USER: alexsuslin@GOODPEOPLE.LOCAL on PORT 5986 TO hv.goodpeople.local
checking if winrm_host hv.goodpeople.local is an IPv6 address
calling kinit with subprocess for principal alexsuslin@GOODPEOPLE.LOCAL
hv.goodpeople.local | UNREACHABLE! => {
    "changed": false,
    "msg": "kerberos: authGSSClientStep() failed: (('Unspecified GSS failure.  Minor code may provide more information', 851968), ('Server not found in Kerberos database', -1765328377))",
    "unreachable": true
}

What is working

  • I successfully can win_ping all the servers fs,dc,web and client asuslin
  • I can Enter-PSSession hv. goodpeople.local -UseSSL -Authentication Kerberos
  • Поскольку я могу win_ping другие серверы, я предполагаю, что мой krb5.conf настроен правильно, также как и файл инвентаризации ansible. Например, если я запускаю win_ping внутри группы, все, кроме hv.goodpeople.local, в порядке

Что я уже проверил

  • winrm из powershell на hv.goodpeople.local с kerberos и SSL --- OK
  • SPN для hv. goodpeople.local по сравнению с другими серверами: dc, web, fs --- почти то же самое (на самом деле, поскольку hv является ролью hyper-v, есть несколько дополнительных)
  • мои учетные данные, пробовал с Domain Admin
  • winrm SDDL на hv. goodpeople.local --- SEEMS OK
  • SPNs hv.goodpeople.local и делегации --- OK
  • разные типы шифров SSL сертификата между linux подсистемой и hv.goodpeople.local --- OK
  • kinit --- OK, билет на 24 часа всегда действителен
  • kvno HTTP/hv.goodpeople.local@GOODPEOPLE.LOCAL --> HTTP/hv.goodpeople.local@GOODPEOPLE.LOCAL: kvno = 17
  • все страницы в google по этому вопросу (включая [serverfault.com])
    • dns разрешается на каждой машине, включая hv
    • krb5.conf realm настроен правильно с UPPERCASE и FQDN, а также в инвентаре ansible

Больше всего меня беспокоит, почему один и тот же конфиг не работает на одном сервере, а на других работает? Я применил конфигурацию с помощью powershell, чтобы убедиться, что все одинаково. Если кто-то может указать, что я должен проверить больше?

2
задан 11 April 2018 в 21:40
1 ответ

Это была такая глупая вещь, которую я сделал

На Windows (хост-машине) была запись в C: \ WINDOWS \ System32 \ Drivers \ etc \ hosts file

192.168. 88.20 srv-gp

и это мой сервер hv ... Я удалил его, и все работает нормально ...

PS Я нашел https://github.com/bgamble/pykerberos/blob/master/test.py скрипт для проверки моей аутентификации Kerberos и от ошибок

sudo ./test.py -s (скрыто ) -r GOODPEOPLE.LOCAL -p 5986 gssapi

Я обнаружил странное соединение с gp-srv ... Немедленно проверьте / etc / host и файл хостов Windows и обнаружил проблему.

1
ответ дан 3 December 2019 в 12:33

Теги

Похожие вопросы