Partilhar via


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 associa uma VM a um domínio gerido pelos Serviços de Domínio, as contas de utilizador e as credenciais do domínio podem ser utilizadas para iniciar sessão e gerir 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:

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 comece 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 ficheiro hosts

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

sudo vi /etc/hosts

No hospeda arquivo, 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 tua VM Ubuntu que estás a ligar ao domínio gerido.

Atualize estes nomes com os seus próprios valores:

127.0.0.1 ubuntu.aaddscontoso.com ubuntu

Quando terminar, salve e saia do hospeda arquivo usando o comando :wq 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 o 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 gerido for aaddscontoso.com, insira AADDSCONTOSO.COM como o domínio. A instalação grava as seções [realm] e [domain_realm] em arquivo de configuração de /etc/krb5.conf. Certifique-se de especificar o domínio em 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 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 de /etc/ntp.conf.

  1. Abra o arquivo de ntp.conf com um editor:

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

    server aaddscontoso.com
    

    Quando terminar, guarde e saia do ficheiro ntp.conf usando o comando :wq 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

    Para concluir essas etapas, execute os seguintes comandos. Use seu próprio nome DNS com o comando ntpdate:

    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 realm discover para descobrir o domínio gerenciado. O exemplo a seguir descobre o domínio AADDSCONTOSO.COM. Especifique o seu próprio nome de domínio gerido em LETRAS MAIÚSCULAS:

    sudo realm discover AADDSCONTOSO.COM
    

    Se o comando realm discover não conseguir localizar seu 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 para ver se uma resposta positiva é retornada.
    • Verifique se a VM está implantada na mesma 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 comando kinit. Especifique um usuário que faça parte do domínio gerenciado. Se necessário, adicionar uma conta de utilizador 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 chamada 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 comando realm join. Use a mesma conta de usuário que faz parte do domínio gerenciado que você especificou no comando kinit anterior, 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 seção [libdefaults] 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 do 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 comando :wq 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.

Observação

As imagens do Marketplace do Ubuntu geralmente têm algumas opções de configuração definidas em /etc/ssh/sshd_config.d, incluindo PasswordAuthentication no arquivo 50-cloud-init.conf, então, certifique-se de também atualizar este arquivo para evitar que ele sobrescreva as configurações definidas com as etapas abaixo.

  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 sshd_conf usando o comando :wq 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 arquivo /etc/pam.d/common-session em um editor:

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

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

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

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

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

Entrar na VM usando uma conta de domínio

Para verificar se a VM ingressou com êxito no 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 ssh -l, como contosoadmin@aaddscontoso.com e, em seguida, digite o endereço da sua VM, como ubuntu.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 iniciar sessão na VM como membro do grupo AAD Administradores de DC, certifique-se de que pode usar corretamente o comando sudo.

    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.