Ubuntu 데스크톱에서 True SSO를 지원하려면 Samba 및 Winbind 솔루션을 사용하여 기본 VM(가상 시스템)을 AD(Active Directory) 도메인과 통합합니다.

Ubuntu VM을 AD 도메인과 통합하려면 다음 절차를 사용합니다.

이 절차의 일부 예시는 Ubuntu 데스크톱의 호스트 이름과 같은 네트워크 구성의 엔티티를 나타내기 위해 자리 표시자 값을 사용합니다. 다음 표에 설명된 대로 자리 표시자 값을 구성과 관련된 정보로 바꿉니다.

자리 표시자 값 설명
dns_IP_ADDRESS DNS 이름 서버의 IP 주소
mydomain.com AD 도메인의 DNS 이름
MYDOMAIN.COM AD 도메인의 DNS 이름(모두 대문자)
myhost Ubuntu VM의 호스트 이름
MYDOMAIN Samba 서버를 포함하는 작업 그룹 또는 NT 도메인의 DNS 이름(모두 대문자)
ads-hostname AD 서버의 호스트 이름
admin-user AD 도메인 관리자의 사용자 이름

사전 요구 사항

다음을 확인하십시오.
  • AD 서버는 Ubuntu VM에서 DNS로 확인할 수 있습니다.
  • Ubuntu VM에서 NTP(Network Time Protocol)를 구성합니다.

프로시저

  1. Ubuntu VM에서 sambawinbind 패키지를 설치합니다.
    sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind
  2. Kerberos 인증 설정을 구성합니다.
    1. Kerberos 인증 설정 창이 시스템에 나타나지 않으면 다음 명령을 실행하여 표시합니다.
      dpkg-reconfigure krb5-config
    2. 기본 Kerberos 버전 5 영역으로 AD 도메인의 DNS 이름을 모두 대문자로 입력합니다.
      예를 들어, AD 도메인 이름이 mydomain.com이면 MYDOMAIN.COM을 입력합니다.
    3. 사용자 영역에 대한 Kerberos 서버에 AD 서버의 호스트 이름(이 절차 전체의 예시에서 ads_hostname으로 표시)을 입력합니다.
    4. Kerberos 영역에 대한 관리 서버에 AD 서버의 호스트 이름을 다시 입력합니다.
  3. PAM 구성을 업데이트합니다.
    1. PAM 구성 페이지를 엽니다.
      pam-auth-update
    2. 로그인 시 홈 디렉토리 생성을 선택하고 확인을 선택합니다.
  4. 다음 예시에 표시된 것처럼 /etc/nsswitch.conf 구성 파일을 편집합니다.
    passwd: compat winbind
    group: compat winbind
    shadow: compat
    gshadow: files
  5. (선택 사항) 시스템에서 올바른 DNS 서버가 자동으로 감지되면 이 단계를 건너뛰고 다음 단계를 계속 진행합니다. 시스템에서 올바른 DNS 서버를 감지하지 못하면 이 단계를 완료하여 DNS 서버를 수동으로 설정합니다.
    자동 생성된 resolv.conf 파일이 AD 도메인을 검색 도메인으로 참조하도록 하려면 시스템 연결에 대한 NetworkManager 설정을 편집합니다. 다음 하위 단계에서는 Ubuntu 20.04 시스템에 대한 예제 지침을 제공합니다.
    1. NetworkManager 제어판을 열고 시스템 연결에 대한 IPv4 설정으로 이동합니다. 방법으로 자동(DHCP) 주소만을 선택합니다. DNS 서버 텍스트 상자에 DNS 이름 서버의 IP 주소(이 절차 전체의 예시에서 dns_IP_ADDRESS로 표시)를 입력합니다. 그런 후 저장을 클릭합니다.
    2. 다음 예시와 같이 /etc/dhcp/dhclient.conf 파일을 편집합니다.
      supersede domain-name "mydomain.com";
      prepend domain-name-servers dns_IP_ADDRESS;
    3. 다음 예시와 같이 /etc/systemd/resolved.conf 파일을 편집합니다.
      DNS=dns_IP_ADDRESS
      Domains="mydomain.com"
      참고: 새 인스턴트 클론 가상 데스크톱이 생성될 때 새 가상 네트워크 어댑터가 추가됩니다. 인스턴트 클론 가상 데스크톱에 새 네트워크 어댑터가 추가되면 가상 데스크톱 템플릿에서 DNS 서버와 같은 네트워크 어댑터의 모든 설정이 손실됩니다. 복제된 가상 데스크톱에 새 네트워크 어댑터를 추가할 때 DNS 서버 설정이 손실되지 않도록 하려면 Ubuntu VM에 대해 DNS 서버를 지정해야 합니다.
    4. 다음 예시에 표시된 것처럼 /etc/resolv.conf 구성 파일을 편집하여 DNS 서버를 지정합니다.
      nameserver dns_IP_ADDRESS
      
      search mydomain.com
    5. VM을 다시 시작하고 다시 로그인합니다.
  6. 다음 예시에 표시된 것처럼 /etc/hosts 구성 파일을 편집합니다.
    127.0.0.1     localhost
    127.0.1.1     myhost.mydomain.com myhost
  7. 다음 예시와 같이 /etc/samba/smb.conf 구성 파일을 편집합니다.
    [global]
    security = ads
    realm = MYDOMAIN.COM
    workgroup = MYDOMAIN
    idmap uid = 10000-20000
    idmap gid = 10000-20000
    winbind enum users = yes
    winbind enum groups = yes
    template homedir = /home/%D/%U
    template shell = /bin/bash
    client use spnego = yes
    client ntlmv2 auth = yes
    encrypt passwords = yes
    winbind use default domain = yes
    restrict anonymous = 2
    kerberos method = secrets and keytab
    winbind refresh tickets = true
  8. smbd 서비스를 다시 시작합니다.
    sudo systemctl restart smbd.service
  9. 다음 예시와 비슷한 컨텐츠를 포함하도록 /etc/krb5.conf 구성 파일을 편집합니다.
    [libdefaults]
          default_realm = MYDOMAIN.COM
          dns_lookup_realm = true
          dns_lookup_kdc = true
    
    [realms]
          MYDOMAIN.COM = {
                kdc = ads-hostname
                admin_server = ads-hostname 
          }
    
    [domain_realm]
          .mydomain.com = MYDOMAIN.COM
          mydomain.com = MYDOMAIN.COM
    
  10. Ubuntu VM을 AD 도메인에 가입시킵니다.
    1. Kerberos 티켓을 시작합니다.
       sudo kinit admin-user
      메시지가 표시되면 관리자 암호를 입력합니다.
    2. 티켓이 성공적으로 생성되었는지 확인합니다.
      sudo klist
      이 명령은 해당하는 유효 시작 시간 및 만료 시간을 포함하여 티켓에 대한 정보를 반환합니다.
    3. Kerberos keytab 파일을 생성합니다.
      sudo net ads keytab create -U admin-user
    4. AD 도메인에 가입합니다.
      sudo net ads join -U admin-user
  11. Winbind 서비스를 다시 시작하고 확인합니다.
    1. Winbind 서비스를 다시 시작합니다.
      sudo systemctl restart winbind.service 
    2. Winbind 서비스를 확인하려면 다음 명령을 실행하고 올바른 출력을 반환하는지 확인합니다.
      • wbinfo -u
      • wbinfo -g
      • getend passwd
      • getend group
  12. VM을 다시 시작하고 다시 로그인합니다.

다음에 수행할 작업

Ubuntu 데스크톱에서 True SSO 구성