Dołączanie maszyny wirtualnej z systemem Ubuntu Linux do domeny zarządzanej usług Microsoft Entra Domain Services
Aby umożliwić użytkownikom logowanie się do maszyn wirtualnych na platformie Azure przy użyciu jednego zestawu poświadczeń, możesz dołączyć maszyny wirtualne do domeny zarządzanej usług Microsoft Entra Domain Services. Po dołączeniu maszyny wirtualnej do domeny zarządzanej usług Domain Services konta użytkowników i poświadczenia z domeny mogą służyć do logowania się serwerów i zarządzania nimi. Członkostwa w grupach z domeny zarządzanej są również stosowane w celu kontrolowania dostępu do plików lub usług na maszynie wirtualnej.
W tym artykule pokazano, jak dołączyć maszynę wirtualną z systemem Ubuntu Linux do domeny zarządzanej.
Warunki wstępne
Do ukończenia tego samouczka potrzebne są następujące zasoby i uprawnienia:
- Aktywna subskrypcja platformy Azure.
- Jeśli nie masz subskrypcji platformy Azure, utwórz konto.
- Dzierżawa usługi Microsoft Entra związana z twoją subskrypcją, zsynchronizowana z lokalnym katalogiem lub katalogiem wyłącznie w chmurze.
- W razie potrzeby utwórz dzierżawę usługi Microsoft Entra lub połącz subskrypcję platformy Azure z kontem.
- Zarządzana domena Microsoft Entra Domain Services jest włączona i skonfigurowana w Twojej dzierżawie Microsoft Entra.
- W razie potrzeby pierwszy samouczek tworzy i konfiguruje zarządzaną domenę usługi Microsoft Entra Domain Services.
- Konto użytkownika będące częścią domeny zarządzanej. Upewnij się, że atrybut SAMAccountName dla użytkownika nie jest generowany automatycznie. Jeśli wiele kont użytkowników w dzierżawie Microsoft Entra ma ten sam atrybut mailNickname, atrybut SAMAccountName dla każdego użytkownika jest generowany automatycznie. Aby uzyskać więcej informacji, zobacz , jak obiekty i poświadczenia są synchronizowane w domenie zarządzanej przez Microsoft Entra Domain Services.
- Unikatowe nazwy maszyn wirtualnych z systemem Linux o maksymalnie 15 znakach, aby uniknąć skracania nazw, co może powodować konflikty w usłudze Active Directory.
Tworzenie maszyny wirtualnej z systemem Ubuntu Linux i nawiązywanie z nią połączenia
Jeśli masz istniejącą maszynę wirtualną z systemem Ubuntu Linux na platformie Azure, połącz się z nią przy użyciu protokołu SSH, a następnie przejdź do następnego kroku, aby rozpocząć konfigurowanie maszyny wirtualnej.
Jeśli musisz utworzyć maszynę wirtualną z systemem Ubuntu Linux lub utworzyć testową maszynę wirtualną do użycia z tym artykułem, możesz użyć jednej z następujących metod:
Podczas tworzenia maszyny wirtualnej należy zwrócić uwagę na ustawienia sieci wirtualnej, aby upewnić się, że maszyna wirtualna może komunikować się z domeną zarządzaną:
- Wdróż maszynę wirtualną w tej samej lub równorzędnej sieci wirtualnej, w której włączono usługi Microsoft Entra Domain Services.
- Wdróż maszynę wirtualną w innej podsieci niż w zarządzanej domenie Microsoft Entra Domain Services.
Po wdrożeniu maszyny wirtualnej wykonaj kroki, aby nawiązać połączenie z maszyną wirtualną przy użyciu protokołu SSH.
Konfigurowanie pliku hosts
Aby upewnić się, że nazwa hosta maszyny wirtualnej jest poprawnie skonfigurowana dla domeny zarządzanej, zmodyfikuj /etc/hosts pliku i ustaw nazwę hosta:
sudo vi /etc/hosts
W pliku hostów zaktualizuj adres localhost . W poniższym przykładzie:
- aaddscontoso.com to nazwa domeny DNS domeny zarządzanej.
- ubuntu to nazwa hosta Twojej maszyny wirtualnej z systemem Ubuntu, którą dołączasz do domeny zarządzanej.
Zaktualizuj te nazwy własnymi wartościami:
127.0.0.1 ubuntu.aaddscontoso.com ubuntu
Po zakończeniu zapisz i zamknij plik hosts przy użyciu polecenia :wq
edytora.
Instalowanie wymaganych pakietów
Maszyna wirtualna wymaga dodatkowych pakietów, aby dołączyć maszynę wirtualną do domeny zarządzanej. Aby zainstalować i skonfigurować te pakiety, zaktualizuj i zainstaluj narzędzia przyłączania do domeny przy użyciu apt-get
Podczas instalacji protokołu Kerberos, pakiet krb5-user prosi o podanie nazwy domeny we wszystkich wielkich literach. Jeśli na przykład nazwa domeny zarządzanej to aaddscontoso.com, wprowadź AADDSCONTOSO.COM jako obszar. Instalacja zapisuje sekcje [realm]
i [domain_realm]
w pliku konfiguracji /etc/krb5.conf. Upewnij się, że określono obszar WSZYSTKIE WIELKIE LITERY:
sudo apt-get update
sudo apt-get install krb5-user samba sssd sssd-tools libnss-sss libpam-sss ntp ntpdate realmd adcli
Konfigurowanie protokołu NTP (Network Time Protocol)
Aby komunikacja domeny działała prawidłowo, data i godzina maszyny wirtualnej z systemem Ubuntu muszą być zsynchronizowane z domeną zarządzaną. Dodaj nazwę hosta NTP domeny zarządzanej do pliku /etc/ntp.conf.
Otwórz plik ntp.conf za pomocą edytora:
sudo vi /etc/ntp.conf
W pliku ntp.conf utwórz wiersz, aby dodać nazwę DNS domeny zarządzanej. W poniższym przykładzie dodany zostanie wpis dla aaddscontoso.com. Użyj własnej nazwy DNS:
server aaddscontoso.com
Po zakończeniu zapisz i zamknij plik ntp.conf przy użyciu polecenia
:wq
edytora.Aby upewnić się, że maszyna wirtualna jest zsynchronizowana z domeną zarządzaną, potrzebne są następujące kroki:
- Zatrzymywanie serwera NTP
- Aktualizowanie daty i godziny z domeny zarządzanej
- Uruchamianie usługi NTP
Aby wykonać te kroki, uruchom następujące polecenia. Użyj własnej nazwy DNS za pomocą polecenia
ntpdate
:sudo systemctl stop ntp sudo ntpdate aaddscontoso.com sudo systemctl start ntp
Dołączanie maszyny wirtualnej do domeny zarządzanej
Po zainstalowaniu wymaganych pakietów na maszynie wirtualnej i skonfigurowaniu protokołu NTP dołącz maszynę wirtualną do domeny zarządzanej.
Użyj polecenia
realm discover
, aby odnaleźć domenę zarządzaną. Poniższy przykład umożliwia odnalezienie obszaru AADDSCONTOSO.COM. Określ własną nazwę domeny zarządzanej we wszystkich wielkich literach:sudo realm discover AADDSCONTOSO.COM
Jeśli polecenie
realm discover
nie może znaleźć domeny zarządzanej, zapoznaj się z następującymi krokami rozwiązywania problemów:- Upewnij się, że domena jest osiągalna z maszyny wirtualnej. Spróbuj
ping aaddscontoso.com
, aby sprawdzić, czy zostanie zwrócona pozytywna odpowiedź. - Sprawdź, czy maszyna wirtualna jest wdrożona w tej samej lub równorzędnej sieci wirtualnej, w której jest dostępna domena zarządzana.
- Upewnij się, że ustawienia serwera DNS dla sieci wirtualnej zostały zaktualizowane tak, aby wskazywały kontrolery domeny zarządzanej.
- Upewnij się, że domena jest osiągalna z maszyny wirtualnej. Spróbuj
Teraz zainicjuj kerberos przy użyciu polecenia
kinit
. Określ użytkownika, który jest częścią domeny zarządzanej. W razie potrzeby dodać konto użytkownika do grupy w usłudze Microsoft Entra ID.Ponownie należy wprowadzić nazwę domeny zarządzanej we wszystkich wielkich literach. W poniższym przykładzie konto o nazwie
contosoadmin@aaddscontoso.com
jest używane do inicjowania protokołu Kerberos. Wprowadź własne konto użytkownika będące częścią domeny zarządzanej:sudo kinit -V contosoadmin@AADDSCONTOSO.COM
Na koniec dołącz maszynę wirtualną do domeny zarządzanej przy użyciu polecenia
realm join
. Użyj tego samego konta użytkownika, które jest częścią domeny zarządzanej określonej w poprzednimkinit
polecenia, na przykładcontosoadmin@AADDSCONTOSO.COM
:sudo realm join --verbose AADDSCONTOSO.COM -U 'contosoadmin@AADDSCONTOSO.COM' --install=/
Dołączenie maszyny wirtualnej do domeny zarządzanej może potrwać kilka minut. Następujące przykładowe dane wyjściowe pokazują, że maszyna wirtualna została pomyślnie przyłączona do domeny zarządzanej:
Successfully enrolled machine in realm
Jeśli maszyna wirtualna nie może pomyślnie ukończyć procesu przyłączania do domeny, upewnij się, że sieciowa grupa zabezpieczeń maszyny wirtualnej zezwala na wychodzący ruch Kerberos na porcie TCP + UDP 464 do podsieci sieci wirtualnej dla domeny zarządzanej.
Jeśli został wyświetlony błąd nieokreślona awaria GSS. Kod pomocniczy może dostarczyć dodatkowe informacje (nie znaleziono serwera w bazie danych Kerberos); otwórz plik /etc/krb5.conf i dodaj następujący kod w sekcji [libdefaults]
; i spróbuj ponownie:
rdns=false
Aktualizowanie konfiguracji SSSD
Jednym z pakietów zainstalowanych w poprzednim kroku był Demon Usług Bezpieczeństwa Systemowego (SSSD). Gdy użytkownik próbuje zalogować się do maszyny wirtualnej przy użyciu poświadczeń domeny, usługa SSSD przekazuje żądanie do dostawcy uwierzytelniania. W tym scenariuszu usługa SSSD używa usług Domain Services do uwierzytelniania żądania.
Otwórz plik sssd.conf za pomocą edytora:
sudo vi /etc/sssd/sssd.conf
Zakomentuj wiersz dla use_fully_qualified_names jak poniżej:
# use_fully_qualified_names = True
Po zakończeniu zapisz i zamknij plik sssd.conf przy użyciu polecenia
:wq
edytora.Aby zastosować zmianę, uruchom ponownie usługę SSSD:
sudo systemctl restart sssd
Konfigurowanie ustawień konta użytkownika i grupy
Jeśli maszyna wirtualna jest przyłączona do domeny zarządzanej i skonfigurowana do uwierzytelniania, istnieje kilka opcji konfiguracji użytkownika do ukończenia. Te zmiany konfiguracji obejmują zezwolenie na uwierzytelnianie oparte na hasłach i automatyczne tworzenie katalogów domowych na lokalnej maszynie wirtualnej, gdy użytkownicy domeny po raz pierwszy się zalogują.
Zezwalaj na uwierzytelnianie haseł dla protokołu SSH
Domyślnie użytkownicy mogą logować się tylko do maszyny wirtualnej przy użyciu uwierzytelniania opartego na kluczach publicznych SSH. Uwierzytelnianie oparte na hasłach kończy się niepowodzeniem. Po dołączeniu maszyny wirtualnej do domeny zarządzanej te konta domeny muszą używać uwierzytelniania opartego na hasłach. Zaktualizuj konfigurację protokołu SSH, aby zezwolić na uwierzytelnianie oparte na hasłach w następujący sposób.
Notatka
Obrazy Ubuntu dostępne w Marketplace zwykle mają kilka opcji konfiguracji ustawionych w pliku /etc/ssh/sshd_config.d, w tym PasswordAuthentication w pliku 50-cloud-init.conf. Należy zaktualizować ten plik, aby uniknąć nadpisania ustawień według poniższych kroków.
Otwórz plik sshd_conf za pomocą edytora:
sudo vi /etc/ssh/sshd_config
Zaktualizuj wiersz PasswordAuthentication na tak:
PasswordAuthentication yes
Po zakończeniu zapisz i zamknij plik sshd_conf przy użyciu polecenia
:wq
edytora.Aby zastosować zmiany i zezwolić użytkownikom na logowanie się przy użyciu hasła, uruchom ponownie usługę SSH:
sudo systemctl restart ssh
Konfigurowanie automatycznego tworzenia katalogu macierzystego
Aby włączyć automatyczne tworzenie katalogu macierzystego po pierwszym zalogowaniu użytkownika, wykonaj następujące kroki:
Otwórz plik
/etc/pam.d/common-session
w edytorze:sudo vi /etc/pam.d/common-session
Dodaj następujący wiersz w tym pliku poniżej wiersza
session optional pam_sss.so
:session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
Po zakończeniu zapisz i zamknij plik common-session , używając polecenia
:wq
edytora.
Udzielanie uprawnień sudo grupie "Administratorzy kontrolera domeny usługi AAD"
Aby przyznać członkom grupy AAD DC Administrators uprawnienia administracyjne na maszynie wirtualnej z systemem Ubuntu, należy dodać wpis do /etc/sudoers. Po dodaniu członkowie administratorzy kontrolera domeny usługi AAD mogą użyć polecenia sudo
na maszynie wirtualnej z systemem Ubuntu.
Otwórz plik sudoers do edycji:
sudo visudo
Dodaj następujący wpis na końcu /etc/sudoers pliku:
# Add 'AAD DC Administrators' group members as admins. %AAD\ DC\ Administrators ALL=(ALL) NOPASSWD:ALL
Po zakończeniu zapisz i zamknij edytor przy użyciu polecenia
Ctrl-X
.
Logowanie się do maszyny wirtualnej przy użyciu konta domeny
Aby sprawdzić, czy maszyna wirtualna została pomyślnie przyłączona do domeny zarządzanej, uruchom nowe połączenie SSH przy użyciu konta użytkownika domeny. Upewnij się, że katalog główny został utworzony i że członkostwo w grupie z domeny jest stosowane.
Utwórz nowe połączenie SSH z konsoli. Użyj konta domeny należącego do domeny zarządzanej przy użyciu polecenia
ssh -l
, takiego jakcontosoadmin@aaddscontoso.com
, a następnie wprowadź adres maszyny wirtualnej, na przykład ubuntu.aaddscontoso.com. Jeśli używasz usługi Azure Cloud Shell, użyj publicznego adresu IP maszyny wirtualnej, a nie wewnętrznej nazwy DNS.sudo ssh -l contosoadmin@AADDSCONTOSO.com ubuntu.aaddscontoso.com
Po pomyślnym nawiązaniu połączenia z maszyną wirtualną sprawdź, czy katalog macierzysty został poprawnie zainicjowany:
sudo pwd
Powinieneś być w katalogu /home, gdzie znajduje się katalog zgodny z twoim kontem użytkownika.
Teraz sprawdź, czy członkostwa w grupach są prawidłowo rozwiązywane:
sudo id
Powinieneś widzieć swoje członkostwa w grupach z domeny zarządzanej.
Jeśli zalogowałeś się do VM jako członek grupy AAD DC Administrators, sprawdź, czy możesz poprawnie użyć polecenia
sudo
:sudo apt-get update
Następne kroki
Jeśli masz problemy z połączeniem maszyny wirtualnej z domeną zarządzaną lub logowaniem się przy użyciu konta domeny, zobacz Rozwiązywanie problemów z dołączaniem do domeny.