Aggiungere una macchina virtuale Ubuntu Linux a un dominio gestito di Microsoft Entra Domain Services

Per consentire agli utenti di accedere alle macchine virtuali (VM) in Azure usando un singolo set di credenziali, è possibile aggiungere macchine virtuali a un dominio gestito di Microsoft Entra Domain Services. Quando si aggiunge una macchina virtuale a un dominio gestito di Servizi di dominio, è possibile usare account utente e credenziali dal dominio per accedere e gestire i server. Le appartenenze ai gruppi del dominio gestito vengono applicate anche per consentire di controllare l'accesso ai file o ai servizi nella macchina virtuale.

Questo articolo illustra come aggiungere una macchina virtuale Ubuntu Linux a un dominio gestito.

Prerequisiti

Per completare l'esercitazione, sono necessari i privilegi e le risorse seguenti:

  • Una sottoscrizione di Azure attiva.
  • Un tenant di Microsoft Entra associato alla sottoscrizione, sincronizzato con una directory locale o una directory solo cloud.
  • Un dominio gestito di Microsoft Entra Domain Services abilitato e configurato nel tenant di Microsoft Entra.
  • Un account utente che fa parte del dominio gestito. Assicurarsi che l'attributo SAMAccountName per l'utente non venga generato automaticamente. Se più account utente nel tenant di Microsoft Entra hanno lo stesso attributo mailNickname, viene generato automaticamente l'attributo SAMAccountName per ogni utente. Per altre informazioni, vedere Modalità di sincronizzazione di oggetti e credenziali in un dominio gestito di Microsoft Entra Domain Services.
  • Nomi univoci di macchine virtuali Linux con un massimo di 15 caratteri per evitare nomi troncati che potrebbero causare conflitti in Active Directory.

Creare e connettersi a una macchina virtuale Ubuntu Linux

Se si dispone di una macchina virtuale Ubuntu Linux esistente in Azure, connettersi usando SSH, quindi continuare con il passaggio successivo per iniziare a configurare la macchina virtuale.

Se è necessario creare una macchina virtuale Ubuntu Linux o creare una macchina virtuale di test da usare con questo articolo, è possibile usare uno dei metodi seguenti:

Quando si crea la macchina virtuale, prestare attenzione alle impostazioni della rete virtuale per assicurarsi che la macchina virtuale possa comunicare con il dominio gestito:

  • Distribuire la macchina virtuale nella stessa rete virtuale con peering in cui è stato abilitato Microsoft Entra Domain Services.
  • Distribuire la macchina virtuale in una subnet diversa rispetto al dominio gestito di Microsoft Entra Domain Services.

Dopo aver distribuito la macchina virtuale, seguire la procedura per connettersi alla macchina virtuale tramite SSH.

Configurare il file hosts

Per assicurarsi che il nome host della macchina virtuale sia configurato correttamente per il dominio gestito, modificare il file /etc/hosts e impostare il nome host:

sudo vi /etc/hosts

Nel file hosts aggiornare l'indirizzo localhost. Nell'esempio seguente:

  • aaddscontoso.com è il nome di dominio DNS del dominio gestito.
  • ubuntu è il nome host della macchina virtuale Ubuntu che si sta aggiungendo al dominio gestito.

Aggiornare questi nomi con i propri valori:

127.0.0.1 ubuntu.aaddscontoso.com ubuntu

Al termine, salvare ed uscire dal file hosts usando il :wq comando dell'editor.

Installare i pacchetti necessari

La macchina virtuale richiede alcuni pacchetti aggiuntivi per aggiungere la macchina virtuale al dominio gestito. Per installare e configurare questi pacchetti, aggiornare e installare gli strumenti di aggiunta a un dominio usando apt-get

Durante l'installazione di Kerberos, il pacchetto krb5-user richiede il nome dell'area di autenticazione in ALL UPPERCA edizione Standard. Ad esempio, se il nome del dominio gestito è aaddscontoso.com, immettere AADDSCONTOSO.COM come area di autenticazione. L'installazione scrive le [realm] sezioni e [domain_realm] nel file di configurazione /etc/krb5.conf . Assicurarsi di specificare l'area di autenticazione come ALL UPPERCA edizione Standard:

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

Configurare il protocollo NTP (Network Time Protocol)

Per il corretto funzionamento della comunicazione del dominio, la data e l'ora della macchina virtuale Ubuntu devono essere sincronizzate con il dominio gestito. Aggiungere il nome host NTP del dominio gestito al file /etc/ntp.conf .

  1. Aprire il file ntp.conf con un editor:

    sudo vi /etc/ntp.conf
    
  2. Nel file ntp.conf creare una riga per aggiungere il nome DNS del dominio gestito. Nell'esempio seguente viene aggiunta una voce per aaddscontoso.com . Usare il proprio nome DNS:

    server aaddscontoso.com
    

    Al termine, salvare e uscire dal file ntp.conf usando il :wq comando dell'editor.

  3. Per assicurarsi che la macchina virtuale sia sincronizzata con il dominio gestito, sono necessari i passaggi seguenti:

    • Arrestare il server NTP
    • Aggiornare la data e l'ora dal dominio gestito
    • Avviare il servizio NTP

    Eseguire i comandi seguenti per completare questi passaggi. Usare il proprio nome DNS con il ntpdate comando :

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

Aggiungere una macchina virtuale al dominio gestito

Ora che i pacchetti necessari sono installati nella macchina virtuale e NTP è configurato, aggiungere la macchina virtuale al dominio gestito.

  1. Usare il realm discover comando per individuare il dominio gestito. Nell'esempio seguente viene individuata la AADDSCONTOSO.COM dell'area di autenticazione. Specificare il proprio nome di dominio gestito in ALL UPPERCA edizione Standard:

    sudo realm discover AADDSCONTOSO.COM
    

    Se il comando non riesce a trovare il realm discover dominio gestito, esaminare i passaggi seguenti per la risoluzione dei problemi:

    • Assicurarsi che il dominio sia raggiungibile dalla macchina virtuale. Provare ping aaddscontoso.com a verificare se viene restituita una risposta positiva.
    • Verificare che la macchina virtuale sia distribuita nella stessa rete virtuale con peering in cui è disponibile il dominio gestito.
    • Verificare che le impostazioni del server DNS per la rete virtuale siano state aggiornate in modo che puntino ai controller di dominio del dominio gestito.
  2. Inizializzare Ora Kerberos usando il kinit comando . Specificare un utente che fa parte del dominio gestito. Se necessario, aggiungere un account utente a un gruppo in Microsoft Entra ID.

    Anche in questo caso, il nome di dominio gestito deve essere immesso in ALL UPPERCA edizione Standard. Nell'esempio seguente l'account denominato contosoadmin@aaddscontoso.com viene usato per inizializzare Kerberos. Immettere il proprio account utente che fa parte del dominio gestito:

    sudo kinit -V contosoadmin@AADDSCONTOSO.COM
    
  3. Infine, aggiungere la macchina virtuale al dominio gestito usando il realm join comando . Usare lo stesso account utente che fa parte del dominio gestito specificato nel comando precedente kinit , ad esempio contosoadmin@AADDSCONTOSO.COM:

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

L'aggiunta della macchina virtuale al dominio gestito richiede alcuni istanti. L'output di esempio seguente mostra che la macchina virtuale è stata aggiunta correttamente al dominio gestito:

Successfully enrolled machine in realm

Se la macchina virtuale non riesce a completare correttamente il processo di aggiunta al dominio, assicurarsi che il gruppo di sicurezza di rete della macchina virtuale consenta il traffico Kerberos in uscita sulla porta TCP + UDP 464 alla subnet di rete virtuale per il dominio gestito.

Se è stato ricevuto l'errore GSS non specificato. Il codice secondario può fornire altre informazioni (server non trovato nel database Kerberos), aprire il file /etc/krb5.conf e aggiungere il codice seguente nella [libdefaults] sezione e riprovare:

rdns=false

Aggiornare la configurazione di SSSD

Uno dei pacchetti installati in un passaggio precedente era per il daemon dei servizi di sicurezza di sistema (SSSD). Quando un utente tenta di accedere a una macchina virtuale usando le credenziali di dominio, SSSD inoltra la richiesta a un provider di autenticazione. In questo scenario, SSSD usa Servizi di dominio per autenticare la richiesta.

  1. Aprire il file sssd.conf con un editor:

    sudo vi /etc/sssd/sssd.conf
    
  2. Impostare come commento la riga per use_fully_qualified_names come indicato di seguito:

    # use_fully_qualified_names = True
    

    Al termine, salvare ed uscire dal file sssd.conf usando il :wq comando dell'editor.

  3. Per applicare la modifica, riavviare il servizio SSSD:

    sudo systemctl restart sssd
    

Configurare le impostazioni dell'account utente e del gruppo

Con la macchina virtuale aggiunta al dominio gestito e configurata per l'autenticazione, sono disponibili alcune opzioni di configurazione utente da completare. Queste modifiche alla configurazione includono l'autenticazione basata su password e la creazione automatica delle home directory nella macchina virtuale locale quando gli utenti di dominio accedono per la prima volta.

Consenti autenticazione password per SSH

Per impostazione predefinita, gli utenti possono accedere solo a una macchina virtuale usando l'autenticazione basata su chiave pubblica SSH. L'autenticazione basata su password ha esito negativo. Quando si aggiunge la macchina virtuale a un dominio gestito, questi account di dominio devono usare l'autenticazione basata su password. Aggiornare la configurazione SSH per consentire l'autenticazione basata su password come indicato di seguito.

  1. Aprire il file sshd_conf con un editor:

    sudo vi /etc/ssh/sshd_config
    
  2. Aggiornare la riga per PasswordAuthentication su :

    PasswordAuthentication yes
    

    Al termine, salvare e uscire dal file sshd_conf usando il :wq comando dell'editor.

  3. Per applicare le modifiche e consentire agli utenti di accedere usando una password, riavviare il servizio SSH:

    sudo systemctl restart ssh
    

Configurare la creazione automatica della home directory

Per abilitare la creazione automatica della home directory quando un utente accede per la prima volta, completare la procedura seguente:

  1. Aprire il /etc/pam.d/common-session file in un editor:

    sudo vi /etc/pam.d/common-session
    
  2. Aggiungere la riga seguente in questo file sotto la riga session optional pam_sss.so:

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

    Al termine, salvare ed uscire dal file di sessione comune usando il :wq comando dell'editor.

Concedere i privilegi sudo al gruppo "Amministratori di AAD DC"

Per concedere ai membri del controller di dominio di AAD Amministrazione istrators privilegi amministrativi nella macchina virtuale Ubuntu, aggiungere una voce ai /etc/sudoers. Dopo l'aggiunta, i membri del gruppo AAD DC Amministrazione istrators possono usare il sudo comando nella macchina virtuale Ubuntu.

  1. Aprire il file sudoers per la modifica:

    sudo visudo
    
  2. Aggiungere la voce seguente alla fine del file /etc/sudoers :

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

    Al termine, salvare e uscire dall'editor usando il Ctrl-X comando .

Accedere alla macchina virtuale usando un account di dominio

Per verificare che la macchina virtuale sia stata aggiunta correttamente al dominio gestito, avviare una nuova connessione SSH usando un account utente di dominio. Verificare che sia stata creata una home directory e che venga applicata l'appartenenza a un gruppo dal dominio.

  1. Creare una nuova connessione SSH dalla console. Usare un account di dominio appartenente al dominio gestito usando il ssh -l comando , ad esempio contosoadmin@aaddscontoso.com e quindi immettere l'indirizzo della macchina virtuale, ad esempio ubuntu.aaddscontoso.com. Se si usa Azure Cloud Shell, usare l'indirizzo IP pubblico della macchina virtuale anziché il nome DNS interno.

    sudo ssh -l contosoadmin@AADDSCONTOSO.com ubuntu.aaddscontoso.com
    
  2. Dopo aver eseguito la connessione alla macchina virtuale, verificare che la home directory sia stata inizializzata correttamente:

    sudo pwd
    

    Si dovrebbe trovarsi nella directory /home con la propria directory corrispondente all'account utente.

  3. Verificare ora che le appartenenze ai gruppi siano state risolte correttamente:

    sudo id
    

    Verranno visualizzate le appartenenze ai gruppi dal dominio gestito.

  4. Se è stato eseguito l'accesso alla macchina virtuale come membro del gruppo di Amministrazione istrators di AAD DC, verificare che sia possibile usare correttamente il sudo comando :

    sudo apt-get update
    

Passaggi successivi

In caso di problemi di connessione della macchina virtuale al dominio gestito o all'accesso con un account di dominio, vedere Risoluzione dei problemi di aggiunta al dominio.