다음을 통해 공유


Ubuntu Linux 가상 머신을 Microsoft Entra Domain Services 관리되는 도메인에 조인

사용자가 단일 자격 증명 집합을 사용하여 Azure의 VM(가상 머신)에 로그인할 수 있도록 하려면 VM을 Microsoft Entra Domain Services 관리되는 도메인에 조인할 수 있습니다. VM을 Domain Services 관리되는 도메인에 가입하는 경우 도메인의 사용자 계정 및 자격 증명을 사용하여 로그인하고 서버를 관리할 수 있습니다. 관리되는 도메인의 그룹 멤버 자격도 적용되어 VM의 파일 또는 서비스에 대한 액세스를 제어할 수 있습니다.

이 문서에서는 Ubuntu Linux VM을 관리되는 도메인에 조인하는 방법을 보여줍니다.

필수 구성 요소

이 자습서를 완료하려면 다음 리소스 및 권한이 필요합니다.

  • 활성 Azure 구독입니다.
    • Azure 구독이 없는 경우, 계정을 생성하십시오.
  • 온-프레미스 디렉터리 또는 클라우드 전용 디렉터리와 동기화된 구독과 연결된 Microsoft Entra 테넌트입니다.
  • Microsoft Entra 테넌트 내에서 사용하도록 설정되고 구성된 Microsoft Entra Domain Services 관리 도메인입니다.
  • 관리되는 도메인의 일부인 사용자 계정입니다. 사용자의 SAMAccountName 특성이 자동으로 생성되지 않았는지 확인합니다. Microsoft Entra 테넌트에 있는 여러 사용자 계정에 동일한 mailNickname 특성이 있는 경우 각 사용자에 대한 SAMAccountName 특성이 자동으로 생성됩니다. 자세한 내용은 Microsoft Entra Domain Services 관리되는 도메인개체 및 자격 증명을 동기화하는 방법을 참조하세요.
  • Active Directory에서 충돌을 일으킬 수 있는 잘린 이름을 방지하기 위해 최대 15자의 고유한 Linux VM 이름입니다.

Ubuntu Linux VM 만들기 및 연결

Azure에 기존 Ubuntu Linux VM이 있는 경우 SSH를 사용하여 해당 VM에 연결한 다음 다음 단계를 계속 진행하여 VM 구성을시작합니다.

Ubuntu Linux VM을 만들어야 하거나 이 문서에서 사용할 테스트 VM을 만들려는 경우 다음 방법 중 하나를 사용할 수 있습니다.

VM을 만들 때 가상 네트워크 설정에 주의하여 VM이 관리되는 도메인과 통신할 수 있는지 확인합니다.

  • Microsoft Entra Domain Services를 사용하도록 설정한 동일한 가상 네트워크 또는 피어된 가상 네트워크에 VM을 배포합니다.
  • Microsoft Entra Domain Services 관리되는 도메인과 다른 서브넷에 VM을 배포합니다.

VM이 배포되면 단계에 따라 SSH를 사용하여 VM에 연결합니다.

호스트 파일 구성

VM 호스트 이름이 관리되는 도메인에 대해 올바르게 구성되었는지 확인하려면 /etc/hosts 파일을 편집하고 호스트 이름을 설정합니다.

sudo vi /etc/hosts

호스트 파일에서 localhost 주소를 업데이트합니다. 다음 예제에서는 다음을 수행합니다.

  • aaddscontoso.com 관리되는 도메인의 DNS 도메인 이름입니다.
  • ubuntu 관리되는 도메인에 가입하는 Ubuntu VM의 호스트 이름입니다.

이러한 이름을 사용자 고유의 값으로 업데이트합니다.

127.0.0.1 ubuntu.aaddscontoso.com ubuntu

완료되면 편집기의 :wq 명령을 사용하여 호스트 파일을 저장하고 종료합니다.

필수 패키지 설치

VM을 관리되는 도메인에 조인하려면 VM에 몇 가지 추가 패키지가 필요합니다. 이러한 패키지를 설치하고 구성하려면 apt-get 사용하여 도메인 조인 도구를 업데이트하고 설치합니다.

Kerberos 설치 중에 krb5-user 패키지는 모든 대문자로 리얼름 이름을 입력하라고 요청합니다. 예를 들어 관리되는 도메인의 이름이 aaddscontoso.com경우 영역으로 AADDSCONTOSO.COM 입력합니다. 설치는 /etc/krb5.conf 구성 파일에 [realm][domain_realm] 섹션을 작성합니다. 영역을 모두 대문자로 지정해야 합니다.

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

NTP(네트워크 시간 프로토콜) 구성

도메인 통신이 제대로 작동하려면 Ubuntu VM의 날짜와 시간이 관리되는 도메인과 동기화되어야 합니다. 관리되는 도메인의 NTP 호스트 이름을 /etc/ntp.conf 파일에 추가합니다.

  1. 편집기를 사용하여 ntp.conf 파일을 엽니다.

    sudo vi /etc/ntp.conf
    
  2. ntp.conf 파일에서 관리되는 도메인의 DNS 이름을 추가하는 줄을 만듭니다. 다음 예제에서는 aaddscontoso.com 항목이 추가됩니다. 사용자 고유의 DNS 이름을 사용합니다.

    server aaddscontoso.com
    

    완료되면 편집기의 :wq 명령을 사용하여 ntp.conf 파일을 저장하고 종료합니다.

  3. VM이 관리되는 도메인과 동기화되도록 하려면 다음 단계가 필요합니다.

    • NTP 서버 중지
    • 관리되는 도메인에서 날짜 및 시간 업데이트
    • NTP 서비스 시작

    이러한 단계를 완료하려면 다음 명령을 실행합니다. ntpdate 명령을 사용하여 사용자 고유의 DNS 이름을 사용합니다.

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

VM을 관리되는 도메인에 조인

이제 필요한 패키지가 VM에 설치되고 NTP가 구성되었으므로 VM을 관리되는 도메인에 조인합니다.

  1. realm discover 명령을 사용하여 관리되는 도메인을 검색합니다. 다음 예제에서는 영역 AADDSCONTOSO.COM을 발견합니다. 전체 대문자로 사용자 고유의 관리되는 도메인 이름을 지정합니다.

    sudo realm discover AADDSCONTOSO.COM
    

    realm discover 명령에서 관리되는 도메인을 찾을 수 없는 경우 다음 문제 해결 단계를 검토합니다.

    • VM에서 도메인에 연결할 수 있는지 확인합니다. ping aaddscontoso.com를 시도하여 긍정적인 응답이 반환되는지 확인하세요.
    • VM이 관리되는 도메인을 사용할 수 있는 동일한 가상 네트워크 또는 피어된 가상 네트워크에 배포되어 있는지 확인합니다.
    • 가상 네트워크에 대한 DNS 서버 설정이 관리되는 도메인의 도메인 컨트롤러를 가리키도록 업데이트되었는지 확인합니다.
  2. 이제 kinit 명령을 사용하여 Kerberos를 초기화합니다. 관리되는 도메인의 일부인 사용자를 지정합니다. 필요한 경우 Microsoft Entra ID 그룹에 사용자 계정을 추가.

    다시 말하지만 관리되는 도메인 이름은 모두 대문자로 입력해야 합니다. 다음 예제에서는 contosoadmin@aaddscontoso.com이라는 계정을 사용하여 Kerberos를 초기화합니다. 관리되는 도메인의 일부인 사용자 계정을 입력합니다.

    sudo kinit -V contosoadmin@AADDSCONTOSO.COM
    
  3. 마지막으로 realm join 명령을 사용하여 VM을 관리되는 도메인에 조인합니다. 이전 kinit 명령에서 지정한 관리되는 도메인의 일부인 동일한 사용자 계정(예: contosoadmin@AADDSCONTOSO.COM)을 사용합니다.

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

VM을 관리되는 도메인에 조인하는 데 몇 분 정도 걸립니다. 다음 예제 출력은 VM이 관리되는 도메인에 성공적으로 조인되었음을 보여줍니다.

Successfully enrolled machine in realm

VM이 도메인 가입 프로세스를 성공적으로 완료할 수 없는 경우 VM의 네트워크 보안 그룹에서 TCP + UDP 포트 464의 아웃바운드 Kerberos 트래픽을 관리되는 도메인의 가상 네트워크 서브넷으로 허용하는지 확인합니다.

지정되지 않은 GSS 오류 오류가 발생한 경우 부 코드는 자세한 정보(Kerberos 데이터베이스에서 서버를 찾을 수 없음)제공하고 /etc/krb5.conf 파일을 열고 [libdefaults] 섹션에서 다음 코드를 추가하고 다시 시도합니다.

rdns=false

SSSD 구성 업데이트

이전 단계에서 설치한 패키지 중 하나는 SSSD(System Security Services Daemon)용이었습니다. 사용자가 도메인 자격 증명을 사용하여 VM에 로그인하려고 하면 SSSD는 인증 공급자에게 요청을 릴레이합니다. 이 시나리오에서 SSSD는 Domain Services를 사용하여 요청을 인증합니다.

  1. 편집기를 사용하여 sssd.conf 파일을 엽니다.

    sudo vi /etc/sssd/sssd.conf
    
  2. 다음과 같이 use_fully_qualified_names 줄을 주석 처리합니다.

    # use_fully_qualified_names = True
    

    완료되면 편집기의 :wq 명령을 사용하여 sssd.conf 파일을 저장하고 종료합니다.

  3. 변경 사항을 적용하려면 SSSD 서비스를 다시 시작합니다.

    sudo systemctl restart sssd
    

사용자 계정 및 그룹 설정 구성

VM이 관리되는 도메인에 가입되고 인증을 위해 구성된 경우 완료할 몇 가지 사용자 구성 옵션이 있습니다. 이러한 구성 변경에는 암호 기반 인증을 허용하고 도메인 사용자가 처음 로그인할 때 로컬 VM에 홈 디렉터리를 자동으로 만드는 작업이 포함됩니다.

SSH에 대한 암호 인증 허용

기본적으로 사용자는 SSH 공개 키 기반 인증을 사용하여 VM에만 로그인할 수 있습니다. 암호 기반 인증이 실패합니다. VM을 관리되는 도메인에 가입하는 경우 해당 도메인 계정은 암호 기반 인증을 사용해야 합니다. 다음과 같이 암호 기반 인증을 허용하도록 SSH 구성을 업데이트합니다.

메모

Ubuntu 마켓 이미지에는 보통 /etc/ssh/sshd_config.d 아래에 설정된 몇 가지 구성 옵션이 있으며, 그 중 50-cloud-init.conf 파일의 PasswordAuthentication도 포함됩니다. 따라서 설정 파일이 아래 단계에 의해 덮어쓰이지 않도록 해당 파일도 반드시 업데이트해야 합니다.

  1. 편집기를 사용하여 sshd_conf 파일을 엽니다.

    sudo vi /etc/ssh/sshd_config
    
  2. PasswordAuthentication 줄을 yes로 업데이트하십시오.

    PasswordAuthentication yes
    

    완료되면 편집기의 :wq 명령을 사용하여 sshd_conf 파일을 저장하고 종료합니다.

  3. 변경 내용을 적용하고 사용자가 암호를 사용하여 로그인하도록 하려면 SSH 서비스를 다시 시작합니다.

    sudo systemctl restart ssh
    

자동 홈 디렉터리 만들기 구성

사용자가 처음 로그인할 때 홈 디렉터리를 자동으로 만들도록 설정하려면 다음 단계를 완료합니다.

  1. 편집기에서 /etc/pam.d/common-session 파일을 엽니다.

    sudo vi /etc/pam.d/common-session
    
  2. 이 파일에 다음 줄을 session optional pam_sss.so줄 아래에 추가합니다.

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

    완료되면 편집기의 :wq 명령을 사용하여 공통 세션 파일을 저장하고 종료합니다.

'AAD DC Administrators' 그룹 sudo 권한 부여

AAD DC Administrators 그룹 관리 권한을 Ubuntu VM에 부여하려면 /etc/sudoers항목을 추가합니다. 추가되면 AAD DC Administrators 그룹의 멤버는 Ubuntu VM에서 sudo 명령을 사용할 수 있습니다.

  1. 편집을 위해 sudoers 파일을 엽니다.

    sudo visudo
    
  2. /etc/sudoers 파일의 끝에 다음 항목을 추가합니다.

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

    완료되면 Ctrl-X 명령을 사용하여 편집기를 저장하고 종료합니다.

도메인 계정을 사용하여 VM에 로그인

VM이 관리되는 도메인에 성공적으로 가입되었는지 확인하려면 도메인 사용자 계정을 사용하여 새 SSH 연결을 시작합니다. 홈 디렉터리가 생성되고 도메인의 그룹 멤버 자격이 적용되는지 확인합니다.

  1. 콘솔에서 새 SSH 연결을 만듭니다. contosoadmin@aaddscontoso.com 같은 ssh -l 명령을 사용하여 관리되는 도메인에 속한 도메인 계정을 사용한 다음 ubuntu.aaddscontoso.com같은 VM의 주소를 입력합니다. Azure Cloud Shell을 사용하는 경우 내부 DNS 이름 대신 VM의 공용 IP 주소를 사용합니다.

    sudo ssh -l contosoadmin@AADDSCONTOSO.com ubuntu.aaddscontoso.com
    
  2. VM에 성공적으로 연결한 경우 홈 디렉터리가 올바르게 초기화되었는지 확인합니다.

    sudo pwd
    

    사용자 계정과 일치하는 고유한 디렉터리가 있는 /home 디렉터리에 있어야 합니다.

  3. 이제 그룹 멤버 자격이 올바르게 확인되고 있는지 확인합니다.

    sudo id
    

    관리되는 도메인의 그룹 멤버 자격이 표시됩니다.

  4. AAD DC Administrators 그룹의 구성원으로 VM에 로그인한 경우 sudo 명령을 올바르게 사용할 수 있는지 확인합니다.

    sudo apt-get update
    

다음 단계

VM을 관리되는 도메인에 연결하거나 도메인 계정으로 로그인하는 데 문제가 있는 경우 도메인 가입 문제 해결을 참조하세요.