Ingressar uma máquina virtual do Ubuntu Linux a um domínio gerenciado do Microsoft Entra Domain Services

Para permitir que os usuários entrem em VMs (máquinas virtuais) no Azure usando um só conjunto de credenciais, ingresse as VMs em um domínio gerenciado do Microsoft Entra Domain Services. Quando você ingressa uma VM em um domínio gerenciado do Domain Services, as contas de usuário e as credenciais do domínio podem ser usadas para se conectar e gerenciar os servidores. Associações a grupos por meio do domínio gerenciado também são possíveis, permitindo controlar o acesso a arquivos ou serviços na VM.

Este artigo mostra como ingressar uma VM do Ubuntu Linux em um domínio gerenciado.

Pré-requisitos

Para concluir este tutorial, você precisará dos seguintes recursos e privilégios:

Criar e conectar-se a uma VM do Ubuntu Linux

Caso já tenha uma VM do Ubuntu Linux no Azure, conecte-se a ela usando SSH e prossiga para a próxima etapa a fim de começar a configurar a VM.

Se precisar criar uma VM do Ubuntu Linux ou se desejar criar uma VM de teste para usar com este artigo, você poderá usar um dos seguintes métodos:

Ao criar a VM, preste atenção às configurações de rede virtual para garantir que a VM possa se comunicar com o domínio gerenciado:

  • Implante a VM na mesma rede virtual ou em uma rede virtual emparelhada em que você tenha ativado o Microsoft Entra Domain Services.
  • Implante a VM em uma sub-rede diferente do domínio gerenciado do Microsoft Entra Domain Services.

Depois que a VM for implantada, siga as etapas para se conectar à VM usando SSH.

Configurar o arquivo de hosts

Para confirmar se o nome do host da VM está configurado corretamente para o domínio gerenciado, edite o arquivo /etc/hosts e defina o nome do host:

sudo vi /etc/hosts

No arquivo hosts, atualize o endereço localhost. No exemplo a seguir:

  • aaddscontoso.com é o nome de domínio DNS do seu domínio gerenciado.
  • ubuntu é o nome do host da VM Ubuntu que você está ingressando no domínio gerenciado.

Substitua esses nomes por seus próprios valores:

127.0.0.1 ubuntu.aaddscontoso.com ubuntu

Quando terminar, salve e saia do arquivo de hosts usando o comando do editor :wq.

Instalar os pacotes necessários

São necessários alguns pacotes adicionais para ingressar a VM no domínio gerenciado. Para instalar e configurar esses pacotes, atualize e instale as ferramentas de ingresso no domínio usando o apt-get

Durante a instalação do Kerberos, o pacote krb5-user solicita o nome de realm, tudo em letras MAIÚSCULAS. Por exemplo, se o nome do seu domínio gerenciado for aaddscontoso.com, insira AADDSCONTOSO.com no campo realm. A instalação grava as seções [realm] e [domain_realm] no arquivo de configuração /etc/krb5.conf. Especifique o realm com todas as letras MAIÚSCULAS:

sudo apt-get update
sudo apt-get install krb5-user samba sssd sssd-tools libnss-sss libpam-sss ntp ntpdate realmd adcli

Configurar o NTP (protocolo NTP)

Para que a comunicação de domínio funcione corretamente, a data e hora da sua VM do Ubuntu devem estar sincronizadas com o domínio gerenciado. Adicione nome do host NTP do seu domínio gerenciado no arquivo /etc/ntp.conf.

  1. Abra o arquivo ntp.conf em um editor:

    sudo vi /etc/ntp.conf
    
  2. No arquivo ntp.conf, crie uma linha para adicionar o nome DNS do seu domínio gerenciado. No exemplo a seguir, uma entrada para aaddscontoso.com será adicionada. Use o seu próprio nome DNS:

    server aaddscontoso.com
    

    Ao terminar, salve e saia do arquivo ntp.conf usando o comando :wq do editor.

  3. Para verificar se a VM está sincronizada com o domínio gerenciado, execute as seguintes etapas:

    • Interromper o servidor NTP
    • Atualizar a data e a hora com base no domínio gerenciado
    • Reiniciar o serviço do NTP

    Execute os comandos a seguir para concluir essas etapas. Use o seu próprio nome DNS com o comando ntpdate:

    sudo systemctl stop ntp
    sudo ntpdate aaddscontoso.com
    sudo systemctl start ntp
    

Ingressar a VM no domínio gerenciado

Agora que os pacotes necessários estão instalados na VM e o NTP está configurado, ingresse a VM no domínio gerenciado.

  1. Use o comando realm discover para descobrir o domínio gerenciado. O exemplo a seguir descobre o realm AADDSCONTOSO.COM. Especifique seu próprio nome de domínio gerenciado em letras MAIÚSCULAS:

    sudo realm discover AADDSCONTOSO.COM
    

    Se o comando realm discover não conseguir localizar o domínio gerenciado, revise as seguintes etapas de solução de problemas:

    • Verifique se o domínio está acessível da VM. Tente ping aaddscontoso.com para ver se uma resposta positiva é retornada.
    • Verifique se a VM está implantada na mesma rede virtual, ou em uma rede virtual emparelhada, na qual o domínio gerenciado está disponível.
    • Verifique se atualizou as configurações do servidor DNS da a rede virtual para apontar para os controladores de domínio do domínio gerenciado.
  2. Agora, inicialize o Kerberos usando o comando kinit. Especifique um usuário que faça parte do domínio gerenciado. Se necessário, adicione uma conta de usuário a um grupo no Microsoft Entra ID.

    Novamente, o nome de domínio gerenciado deve ser inserido em letras MAIÚSCULAS. No exemplo a seguir, a conta denominada contosoadmin@aaddscontoso.com é usada para inicializar o Kerberos. Insira sua própria conta de usuário que faz parte do domínio gerenciado:

    sudo kinit -V contosoadmin@AADDSCONTOSO.COM
    
  3. Por fim, una a VM ao domínio gerenciado usando o comando realm join. Use a mesma conta de usuário que faz parte do domínio gerenciado especificada no comando kinit anterior, como contosoadmin@AADDSCONTOSO.COM:

    sudo realm join --verbose AADDSCONTOSO.COM -U 'contosoadmin@AADDSCONTOSO.COM' --install=/
    

Leva alguns instantes para unir a VM ao domínio gerenciado. O seguinte exemplo de saída mostra que a VM ingressou com sucesso no domínio gerenciado:

Successfully enrolled machine in realm

Se a sua VM não puder concluir com sucesso o processo de ingresso no domínio, verifique se o grupo de segurança de rede da VM permite o tráfego de saída do Kerberos na porta TCP + UDP 464 para a sub-rede da rede virtual do seu domínio gerenciado.

Se você receber o erro Falha de GSS não especificada. O código secundário pode fornecer mais informações (servidor não encontrado no banco de dados do Kerberos), abra o arquivo /etc/krb5.conf, adicione o seguinte código na seção [libdefaults] e tente novamente:

rdns=false

Atualizar a configuração do SSSD

Um dos pacotes instalados em uma etapa anterior era para o SSSD (Daemon de Serviços de Segurança do Sistema). Quando um usuário tenta entrar em uma VM usando credenciais de domínio, o SSSD transmite a solicitação para um provedor de autenticação. Nesse cenário, o SSSD usa o Domain Services para autenticar a solicitação.

  1. Abra o arquivo sssd.conf em um editor:

    sudo vi /etc/sssd/sssd.conf
    
  2. Adicione uma marca de comentário na linha use_fully_qualified_names, da seguinte maneira:

    # use_fully_qualified_names = True
    

    Ao terminar, salve e saia do arquivo sssd.conf usando o comando :wq do editor.

  3. Para aplicar a alteração, reinicie o serviço SSSD:

    sudo systemctl restart sssd
    

Configurar a conta de usuário e as configurações de grupo

Com a VM ingressada no domínio gerenciado e configurada para autenticação, há algumas opções de configuração de usuário a serem concluídas. Essas alterações de configuração incluem a permissão de autenticação baseada em senha e a criação automática de diretórios base na VM local quando os usuários do domínio entram pela primeira vez.

Permitir autenticação de senha para SSH

Por padrão, os usuários só podem entrar em uma VM usando a autenticação baseada em chave pública SSH. A autenticação baseada em senha falhou. Ao unir a VM a um domínio gerenciado, as contas do domínio precisam usar a autenticação baseada em senha. Atualize a configuração de SSH para permitir a autenticação baseada em senha da maneira a seguir.

  1. Abra o arquivo sshd_conf com um editor:

    sudo vi /etc/ssh/sshd_config
    
  2. Atualize a linha de PasswordAuthentication para Sim:

    PasswordAuthentication yes
    

    Quando terminar, salve e saia do arquivo de sshd_conf usando o comando do editor :wq.

  3. Para aplicar as alterações e permitir que os usuários entrem usando uma senha, reinicie o serviço SSH:

    sudo systemctl restart ssh
    

Configurar a criação automática do diretório base

Para habilitar a criação automática de diretório base quando um usuário entrar pela primeira vez, conclua as seguintes etapas:

  1. Abra o arquivo /etc/pam.d/common-session em um editor:

    sudo vi /etc/pam.d/common-session
    
  2. Adicione a seguinte linha neste arquivo, abaixo da linha session optional pam_sss.so:

    session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
    

    Ao terminar, salve e saia do arquivo common-session usando o comando :wq do editor.

Conceder os privilégios sudo de grupo 'Administradores de controlador de domínio do AAD'

Para conceder aos membros do grupo Administradores do AAD DC privilégios administrativos sobre a VM do Ubuntu, adicione uma entrada ao arquivo /etc/sudoers. Depois de adicionados, os membros do grupo Administradores do AAD DC podem usar o comando sudo na VM do Ubuntu.

  1. Abra o arquivo sudoers para edição:

    sudo visudo
    
  2. Adicione a seguinte entrada ao final do arquivo /etc/sudoers:

    # Add 'AAD DC Administrators' group members as admins.
    %AAD\ DC\ Administrators ALL=(ALL) NOPASSWD:ALL
    

    Ao terminar, salve e saia do editor usando o comando Ctrl-X.

Entrar na VM usando uma conta de domínio

Para verificar se a VM uniu-se com êxito ao domínio gerenciado, inicie uma nova conexão SSH usando uma conta de usuário de domínio. Confirme se um diretório base foi criado e se a associação de grupo do domínio foi aplicada.

  1. Crie uma conexão SSH por meio do seu console. Use uma conta de domínio que pertença ao domínio gerenciado executando o comando ssh -l, como contosoadmin@aaddscontoso.com e, em seguida, insira o endereço da VM, como ubuntu.aaddscontoso.com. Se você usa o Azure Cloud Shell, use o endereço IP público da VM em vez do nome DNS interno.

    sudo ssh -l contosoadmin@AADDSCONTOSO.com ubuntu.aaddscontoso.com
    
  2. Após conectar-se com êxito à VM, verifique se o diretório base foi inicializado corretamente:

    sudo pwd
    

    Você deve estar no diretório /home com seu diretório que corresponda à conta de usuário.

  3. Agora, verifique se as associações de grupo estão sendo resolvidas corretamente:

    sudo id
    

    Você deve ver as associações de grupo do domínio gerenciado.

  4. Se tiver entrado na VM como um membro do grupo de Administradores do AAD DC, verifique se você poderá usar corretamente o comando sudo:

    sudo apt-get update
    

Próximas etapas

Caso tenha problemas para conectar a VM ao domínio gerenciado ou entrar com uma conta de domínio, consulte Solução de problemas de união de domínios.