windows-ubuntu-bash + hipervisor winrm + ansible - Servidor não encontrado no banco de dados Kerberos

2

Estou com dificuldade de uma semana com esse problema, leia todos os posts da Internet sobre esse problema.

O que temos

  • Windows Server 2016 Datacenter com Hyper-V Role instalado (netbios: hv)
  • Máquinas virtuais (netbios: web, fs, dc) no DataCenter do Windows Server 2016
  • Laptop do Windows 10 Professional com subsistema Linux instalado (netbios: asuslin)
  • Domínio em dc.goodpeople.local e todos os servidores e clientes (incluindo hv) estão unidos ao domínio do Active Directory
  • AD CA instalada com CA de emissão intermediária no controlador de domínio
  • Todos os servidores receberam um certificado com a política de inscrição automática para auth kerberos

Eu gostaria de configurar todos os servidores (incluindo hv) com ansible do meu laptop windows 10 com kerberos. Por enquanto, eu só preciso de um sucesso win_ping para todos eles.

Configuração

  • winrm configurado em todos os servidores: hv, web, fs, dc e clinet: asuslin da mesma forma: a autenticação kerberos está ativada, o listener https com certificado válido, as portas de firewall 5986 são abertas
  • como todas as janelas 2016 / win10 - o powershell é o mais recente com o .NET, pelo menos, 4.5
  • ansible no cliente foi instalado no subsistema linux de acordo com a documentação com todas as bibliotecas necessárias e certificado válido para o cliente asuslin é usado

Erro real

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: [email protected] on PORT 5986 TO hv.goodpeople.local
checking if winrm_host hv.goodpeople.local is an IPv6 address
calling kinit with subprocess for principal [email protected]
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
}

O que está funcionando

  • Eu posso com sucesso win_ping todos os servidores fs, dc, web e cliente asuslin
  • eu posso Enter-PSSession hv.goodpeople.local -UseSSL -Authentication Kerberos
  • Como eu posso ganhar outros servidores, eu assumo que meu krb5.conf está configurado corretamente, assim como um arquivo de inventário ansible. Por exemplo. Se eu executar win_ping no grupo, todos, exceto hv.goodpeople.local, estão ok

O que eu já verifiquei

  • winrm do powershell para hv.goodpeople.local com kerberos e SSL --- OK
  • SPN para hv.goodpeople.local comparado a outros servidores: dc, web, fs --- QUASE O MESMO (na verdade, como hv é o papel hyper-v, há alguns adicionais)
  • credenciais da minha conta, tentei com o Administrador do domínio
  • SDLL do winrm em hv.goodpeople.local --- PARECE OK
  • SPNs de hv.goodpeople.local e delegação --- OK
  • diferentes tipos de cifras de certificado SSL entre o subsistema linux e hv.goodpeople.local --- OK
  • kinit --- OK, ticket por 24h sempre válido
  • kvno HTTP/[email protected] - > %código%
  • todas as páginas do Google sobre esse problema (incluindo [serverfault.com])
    • o dns está resolvendo para cada máquina, incluindo hv
    • krb5.conf configurado corretamente com UPPERCASE e FQDN, bem como um inventário ansible

O que mais me irrita é por que a mesma configuração não está funcionando em um único servidor enquanto está trabalhando em outros? Eu apliquei a configuração com powershell para ter certeza de que tudo é o mesmo. Se alguém puder apontar o que devo verificar mais?

    
por alexsuslin 11.04.2018 / 20:21

1 resposta

1

Isso foi uma coisa tão boba que eu fiz

Na máquina Windows (host), havia uma entrada no arquivo C: \ WINDOWS \ System32 \ Drivers \ etc \ hosts

192.168.88.20 srv-gp

e esse é o meu servidor hv ... eu removi isso e tudo está funcionando bem ...

P.S. Eu encontrei o script link para testar minha autenticação do kerberos e os erros de

sudo ./test.py -s [email protected] -r GOODPEOPLE.LOCAL -p 5986 gssapi

Eu descobri conexão estranha com gp-srv ... Imediatamente verifique o arquivo / etc / host e windows hosts e descobri o problema.

    
por 15.04.2018 / 18:37