Junte uma máquina virtual Ubuntu Linux a um domínio gerenciado dos Serviços de Domínio Microsoft Entra

Para permitir que os usuários entrem em máquinas virtuais (VMs) no Azure usando um único conjunto de credenciais, você pode unir VMs a um domínio gerenciado dos Serviços de Domínio Microsoft Entra. Quando você associa uma VM a um domínio gerenciado pelos Serviços de Domínio, as contas de usuário e as credenciais do domínio podem ser usadas para entrar e gerenciar servidores. As associações de grupo do domínio gerenciado também são aplicadas para permitir que você controle o acesso a arquivos ou serviços na VM.

Este artigo mostra como unir uma VM Ubuntu Linux a um domínio gerenciado.

Pré-requisitos

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

  • Uma subscrição ativa do Azure.
  • Um locatário do Microsoft Entra associado à sua assinatura, sincronizado com um diretório local ou um diretório somente na nuvem.
  • Um domínio gerenciado dos Serviços de Domínio Microsoft Entra habilitado e configurado em seu locatário do Microsoft Entra.
  • Uma conta de usuário que faz parte do domínio gerenciado. Verifique se o atributo SAMAccountName para o usuário não é gerado automaticamente. Se várias contas de usuário no locatário do Microsoft Entra tiverem o mesmo atributo mailNickname, o atributo SAMAccountName para cada usuário será gerado automaticamente. Para obter mais informações, consulte Como objetos e credenciais são sincronizados em um domínio gerenciado dos Serviços de Domínio Microsoft Entra.
  • Nomes exclusivos de VM Linux com no máximo 15 caracteres para evitar nomes truncados que possam causar conflitos no Ative Directory.

Criar e conectar-se a uma VM Ubuntu Linux

Se você tiver uma VM Ubuntu Linux existente no Azure, conecte-se a ela usando SSH e, em seguida, continue para a próxima etapa para começar a configurar a VM.

Se você precisar criar uma VM Ubuntu Linux ou quiser criar uma VM de teste para uso com este artigo, você pode 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 na qual você habilitou os Serviços de Domínio Microsoft Entra.
  • Implante a VM em uma sub-rede diferente do domínio gerenciado dos Serviços de Domínio Microsoft Entra.

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

Configurar o arquivo hosts

Para certificar-se de que 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 de host da sua VM Ubuntu que você está ingressando no domínio gerenciado.

Atualize estes nomes com os seus próprios valores:

127.0.0.1 ubuntu.aaddscontoso.com ubuntu

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

Instalar pacotes necessários

A VM precisa de alguns pacotes adicionais para unir a VM ao domínio gerenciado. Para instalar e configurar esses pacotes, atualize e instale as ferramentas de ingresso no domínio usando apt-get

Durante a instalação do Kerberos, o pacote krb5-user solicita o nome do território em ALL UPPERCASE. Por exemplo, se o nome do seu domínio gerenciado for aaddscontoso.com, insira AADDSCONTOSO.COM como o realm. A instalação grava as [realm] seções e [domain_realm] no arquivo de configuração /etc/krb5.conf . Certifique-se de especificar o realm em TODAS as 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 protocolo NTP (Network Time Protocol)

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

  1. Abra o arquivo ntp.conf com 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 é adicionada. Use seu próprio nome DNS:

    server aaddscontoso.com
    

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

  3. Para certificar-se de que a VM está sincronizada com o domínio gerenciado, as seguintes etapas são necessárias:

    • Pare o servidor NTP
    • Atualizar a data e a hora do domínio gerenciado
    • Iniciar o serviço NTP

    Execute os seguintes comandos para concluir estas etapas. Use seu próprio nome DNS com o ntpdate comando:

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

Associar VM ao domínio gerenciado

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

  1. Use o comando para descobrir o realm discover domínio gerenciado. O exemplo a seguir descobre o reino AADDSCONTOSO.COM. Especifique seu próprio nome de domínio gerenciado em TODAS as maiúsculas:

    sudo realm discover AADDSCONTOSO.COM
    

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

    • Certifique-se de que o domínio está acessível a partir da VM. Tente ping aaddscontoso.com ver se uma resposta positiva é devolvida.
    • 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.
    • Confirme se as configurações do servidor DNS para a rede virtual foram atualizadas para apontar para os controladores de domínio do domínio gerenciado.
  2. Agora inicialize o Kerberos usando o kinit comando. 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 TODAS as maiúsculas. No exemplo a seguir, a conta nomeada contosoadmin@aaddscontoso.com é usada para inicializar Kerberos. Introduza a sua própria conta de utilizador que faz parte do domínio gerido:

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

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

Leva alguns minutos para unir a VM ao domínio gerenciado. A saída de exemplo a seguir mostra que a VM ingressou com êxito no domínio gerenciado:

Successfully enrolled machine in realm

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

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

rdns=false

Atualizar a configuração do SSSD

Um dos pacotes instalados em uma etapa anterior foi para System Security Services Daemon (SSSD). Quando um usuário tenta entrar em uma VM usando credenciais de domínio, o SSSD retransmite a solicitação para um provedor de autenticação. Nesse cenário, o SSSD usa os Serviços de Domínio para autenticar a solicitação.

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

    sudo vi /etc/sssd/sssd.conf
    
  2. Comente a linha para use_fully_qualified_names da seguinte maneira:

    # use_fully_qualified_names = True
    

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

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

    sudo systemctl restart sssd
    

Definir configurações de conta de usuário e grupo

Com a VM unida ao domínio gerenciado e configurada para autenticação, há algumas opções de configuração do usuário a serem concluídas. Essas alterações de configuração incluem permitir a autenticação baseada em senha e criar automaticamente diretórios base na VM local quando os usuários do domínio entrarem 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 falha. Quando você associa a VM a um domínio gerenciado, essas contas de domínio precisam usar a autenticação baseada em senha. Atualize a configuração SSH para permitir a autenticação baseada em senha da seguinte maneira.

  1. Abra o arquivo sshd_conf com um editor:

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

    PasswordAuthentication yes
    

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

  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 de diretório base

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

  1. Abra o /etc/pam.d/common-session arquivo 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
    

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

Conceda privilégios sudo ao grupo 'Administradores de DC do AAD'

Para conceder aos membros do grupo Administradores de DC do AAD privilégios administrativos na VM do Ubuntu, adicione uma entrada ao /etc/sudoers. Uma vez adicionado, os membros do grupo Administradores de DC do AAD podem usar o sudo comando 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
    

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

Entrar na VM usando uma conta de domínio

Para verificar se a VM foi associada 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 nova conexão SSH a partir do seu console. Use uma conta de domínio que pertença ao domínio gerenciado usando o comando, como e, em seguida, digite o ssh -l endereço da sua VM, como contosoadmin@aaddscontoso.comubuntu.aaddscontoso.com. Se você usar 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. Quando você tiver se conectado com êxito à VM, verifique se o diretório base foi inicializado corretamente:

    sudo pwd
    

    Você deve estar no diretório /home com seu próprio 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 suas associações de grupo do domínio gerenciado.

  4. Se você entrou na VM como membro do grupo Administradores de DC do AAD, verifique se pode usar corretamente o sudo comando:

    sudo apt-get update
    

Próximos passos

Se você tiver problemas para conectar a VM ao domínio gerenciado ou entrar com uma conta de domínio, consulte Solução de problemas de ingresso no domínio.