Ubuntu/Debian 데스크톱에서 True SSO를 지원하려면 Samba 및 Winbind 솔루션을 사용하여 기본 VM(가상 시스템)을 AD(Active Directory) 도메인과 통합합니다.
Ubuntu/Debian VM을 AD 도메인과 통합하려면 다음 절차를 사용합니다.
이 절차의 일부 예시는 VM의 호스트 이름과 같은 네트워크 구성의 엔티티를 나타내기 위해 자리 표시자 값을 사용합니다. 다음 표에 설명된 대로 자리 표시자 값을 구성과 관련된 정보로 바꿉니다.
자리 표시자 값 |
설명 |
dns_IP_ADDRESS |
DNS 이름 서버의 IP 주소 |
mydomain.com |
AD 도메인의 DNS 이름 |
MYDOMAIN.COM |
AD 도메인의 DNS 이름(모두 대문자) |
myhost |
Ubuntu/Debian VM의 호스트 이름 |
MYDOMAIN |
Samba 서버를 포함하는 작업 그룹 또는 NT 도메인의 DNS 이름(모두 대문자) |
ads-hostname |
AD 서버의 호스트 이름 |
admin-user |
AD 도메인 관리자의 사용자 이름 |
사전 요구 사항
다음을 확인하십시오.
- AD 서버는 VM에서 DNS로 확인할 수 있습니다.
- VM에서 NTP(Network Time Protocol)를 구성합니다.
프로시저
- Ubuntu/Debian VM에서 samba 및 winbind 패키지를 설치합니다.
sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind
- Kerberos 인증 설정을 구성합니다.
- Kerberos 인증 설정 창이 시스템에 나타나지 않으면 다음 명령을 실행하여 표시합니다.
dpkg-reconfigure krb5-config
- 기본 Kerberos 버전 5 영역으로 AD 도메인의 DNS 이름을 모두 대문자로 입력합니다.
예를 들어, AD 도메인 이름이
mydomain.com이면
MYDOMAIN.COM을 입력합니다.
- 사용자 영역에 대한 Kerberos 서버에 AD 서버의 호스트 이름(이 절차 전체의 예시에서 ads_hostname으로 표시)을 입력합니다.
- Kerberos 영역에 대한 관리 서버에 AD 서버의 호스트 이름을 다시 입력합니다.
- PAM 구성을 업데이트합니다.
- PAM 구성 페이지를 엽니다.
- 로그인 시 홈 디렉토리 생성을 선택하고 확인을 선택합니다.
- 다음 예시에 표시된 것처럼 /etc/nsswitch.conf 구성 파일을 편집합니다.
passwd: compat winbind
group: compat winbind
shadow: compat
gshadow: files
- (선택 사항) 시스템에서 올바른 DNS 서버가 자동으로 감지되면 이 단계를 건너뛰고 다음 단계를 계속 진행합니다. 시스템에서 올바른 DNS 서버를 감지하지 못하면 이 단계를 완료하여 DNS 서버를 수동으로 설정합니다.
자동 생성된
resolv.conf 파일이 AD 도메인을 검색 도메인으로 참조하도록 하려면 시스템 연결에 대한 NetworkManager 설정을 편집합니다. 다음 하위 단계에서는 Ubuntu 20.04 시스템에 대한 예제 지침을 제공합니다.
- NetworkManager 제어판을 열고 시스템 연결에 대한 IPv4 설정으로 이동합니다. 방법으로 자동(DHCP) 주소만을 선택합니다. DNS 서버 텍스트 상자에 DNS 이름 서버의 IP 주소(이 절차 전체의 예시에서 dns_IP_ADDRESS로 표시)를 입력합니다. 그런 후 저장을 클릭합니다.
- 다음 예시와 같이 /etc/dhcp/dhclient.conf 파일을 편집합니다.
supersede domain-name "mydomain.com";
prepend domain-name-servers dns_IP_ADDRESS;
- 다음 예시와 같이 /etc/systemd/resolved.conf 파일을 편집합니다.
DNS=dns_IP_ADDRESS
Domains="mydomain.com"
참고: 새 인스턴트 클론 가상 데스크톱이 생성될 때 새 가상 네트워크 어댑터가 추가됩니다. 복제된 가상 데스크톱에 네트워크 어댑터를 추가하면 가상 데스크톱 템플릿이 DNS 서버와 같은 네트워크 어댑터에 대한 설정을 해제합니다. 새 네트워크 어댑터를 추가할 때 DNS 서버 설정을 유지하려면 VM에 대한 DNS 서버를 지정해야 합니다.
- 다음 예시에 표시된 것처럼 /etc/resolv.conf 구성 파일을 편집하여 DNS 서버를 지정합니다. 경고가 표시되면 무시하고 변경을 계속할 수 있습니다.
nameserver dns_IP_ADDRESS
search mydomain.com
- VM을 다시 시작하고 다시 로그인합니다.
- 다음 예시에 표시된 것처럼 /etc/hosts 구성 파일을 편집합니다.
127.0.0.1 localhost
127.0.1.1 myhost.mydomain.com myhost
- 다음 예시와 같이 /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
- smbd 서비스를 다시 시작합니다.
sudo systemctl restart smbd.service
- 다음 예시와 비슷한 컨텐츠를 포함하도록 /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
- Ubuntu/Debian VM을 AD 도메인에 가입시킵니다.
- Kerberos 티켓을 시작합니다.
sudo kinit admin-user
메시지가 표시되면 관리자 암호를 입력합니다.
- 티켓이 성공적으로 생성되었는지 확인합니다.
sudo klist
이 명령은 해당하는 유효 시작 시간 및 만료 시간을 포함하여 티켓에 대한 정보를 반환합니다.
- Kerberos keytab 파일을 생성합니다.
sudo net ads keytab create -U admin-user
- AD 도메인에 가입합니다.
sudo net ads join -U admin-user
- Winbind 서비스를 다시 시작하고 확인합니다.
- Winbind 서비스를 다시 시작합니다.
sudo systemctl restart winbind.service
- Winbind 서비스를 확인하려면 다음 명령을 실행하고 올바른 출력을 반환하는지 확인합니다.
- wbinfo -u
- wbinfo -g
- getent passwd
- getent group
- VM을 다시 시작하고 다시 로그인합니다.