Problemas ao unir o desktop do Ubuntu ao domínio do Active Directory usando o Samba

2

Estou tentando adicionar um desktop Ubuntu ao nosso domínio corporativo com sucesso limitado. Eu segui o guia no link da melhor maneira possível (inclusive seguindo os links para configurar o Kerberos). Eu posso usar o kinit para conseguir um ingresso de nossos CDs:

localuser@HOSTNAME: sudo kinit adminuser
Password for [email protected]:
Warning: Your password will expire in 5 days on Sun 18 Sep 2016 08:58:05 AEST
localuser@HOSTNAME: sudo klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]

Valid starting     Expires            Service Principal
12/09/16 09:57:10  12/09/16 19:57:10  krbtgt/[email protected]
        renew until 13/09/16 09:56:57

Pode até ver que minha senha expira em cinco dias. Mas quando tento entrar no domínio, recebo o seguinte:

localuser@HOSTNAME: sudo net ads join -k
Kinit for HOSTNAME$ to access cifs/[email protected] failed: Cannot contact any KDC for requested realm
Using short domain name -- DOMAIN
Joined 'HOSTNAME' to dns domain 'domain.com.au'
kerberos_kinit_password [email protected] failed: Cannot conact any KDC for requested realm
DNS update failed: kinit failed: Cannot contact any KDC for requested realm

Estranhamente, o objeto de domínio é criado e, na reinicialização, posso ver a atualização lastLogonTime para a hora em que a área de trabalho é iniciada.

Eu também tentei usar o smbclient para testar. Aqui encontrei algo estranho; funciona se eu especificar o nome do servidor, mas funciona apenas parcialmente se eu especificar o FQDN:

localuser@HOSTNAME:~$ smbclient -kL //dc01
OS=[Windows Server 2012 R2 Standard 9600] Server=[Windows Server 2012 R2 Standard 6.3]

        Sharename       Type      Comment
        ---------       ----      -------
        ADMIN$          Disk      Remote Admin
        C$              Disk      Default share
        IPC$            IPC       Remote IPC
        NETLOGON        Disk      Logon server share
        SYSVOL          Disk      Logon server share
OS=[Windows Server 2012 R2 Standard 9600] Server=[Windows Server 2012 R2 Standard 6.3]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------
localuser@HOSTNAME:~$ smbclient -kL //dc01.domain.com.au
OS=[Windows Server 2012 R2 Standard 9600] Server=[Windows Server 2012 R2 Standard 6.3]

        Sharename       Type      Comment
        ---------       ----      -------
        ADMIN$          Disk      Remote Admin
        C$              Disk      Default share
        IPC$            IPC       Remote IPC
        NETLOGON        Disk      Logon server share
        SYSVOL          Disk      Logon server share
Connection to dc01.domain.com.au failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
NetBIOS over TCP disabled -- no workgroup available

Estou executando o Ubuntu Desktop 16.04 LTS em uma VM do Hyper-V, hospedada no Windows 10 Professional. Nosso domínio está no nível funcional de 2008 e nossos DCs são todos de 2012 R2. Eu instalei os seguintes pacotes:

sudo apt install krb5-user libnss-winbind libpam-winbind ntp ntp-doc samba smbclient ssh-server vim vim-doc winbind

DNS e NTP estão funcionando; ntpq -p lista meus CDs. Alterações que fiz nos arquivos de configuração:

/etc/krb5.conf - Temos dois domínios DNS em uso; Eu não tentei nada usando o segundo domínio, mas eu coloquei aqui em preparação para isso. Além disso, um rastreio do Wireshark mostrou que o desktop estava tentando se conectar via UDP primeiro, e não obtendo resposta, tentaria ~ 20 segundos depois com o TCP e obteria uma resposta imediata, então eu desativei o UDP.

[logging]
        default = FILE:/var/log/krb5.log
[libdefaults]
        default_realm = DOMAIN.COM.AU
        udp_preference_limit = 0
[domain_realm]
        .domain.com.au = DOMAIN.COM.AU
        domain.com.au = DOMAIN.COM.AU
        .domain2.com.au = DOMAIN.COM.AU
        domain2.com.au = DOMAIN.COM.AU

/etc/samba/smb.conf - Como o testparm estava reclamando da linha padrão "syslog = 0", eu a removi. Além disso, como este computador não terá nenhuma impressora para compartilhar, removi as seções de compartilhamentos padrão ([impressoras] e [imprimir $]).

[global]
        client ntlmv2 auth = yes
        client signing = yes
        client use spnego = yes
        encrypt passwords = yes
        idmap config * : backend = autorid
        idmap config * : range = 1000000 - 1999999
        kerberos method = secrets and keytab
        realm = DOMAIN.COM.AU
        restrict anonymous = 2
        security = ads
        template homedir = /home/%D/%U
        template shell = /bin/bash
        winbind enum groups = yes
        winbind enum users = yes
        winbind use default domain = yes
        workgroup = DOMAIN

Alguma ideia de onde procurar problemas? Apesar de ter adicionado a seção de log ao meu arquivo krb5.conf, nenhum arquivo de log está sendo criado, então não consigo obter nenhum detalhe sobre o que está acontecendo no Kerberos. Espero que alguém mais sábio do que eu possa me apontar na direção certa para onde verificar em seguida.

    
por DarkMoon 12.09.2016 / 02:33

1 resposta

1

Pode ser um problema de DNS. Verifique o DNS para o servidor DC01.domain.com.au :

$ nslookup DC01 # or dig if you prefer
$ nslookup DC01.domain.com.au
$ nslookup w.x.y.z # IP address

Da mesma forma, garanta que seu cliente resolva corretamente no DNS para frente e para trás, com o caminho de pesquisa correto do DNS:

$ nslookup HOSTNAME
$ nslookup HOSTNAME.domain.com.au
$ nslookup w.x.y.z # IP address

Tente forçar o uso de um determinado KDC, pelo menos para a junção. Não é ideal para fazer isso, mas pode ajudar no caso de problemas de DNS.

Em /etc/krb5.conf :

[realms]
        DOMAIN.COM.AU = {
                kdc = dc01.domain.com.au
        }

Em /etc/smb.conf :

[global]
        password server = dc01.domain.com.au

Tente também net ads join -U adminuser em vez da opção -k .

Os exemplos que vi têm udp_preference_limit = 1 em vez de udp_preference_limit = 0 , mas isso provavelmente não importa.

Fazer login /etc/krb5.conf é apenas para o lado do servidor, acredito.

    
por 12.09.2016 / 08:09