Ubuntu 데스크톱에서 True SSO를 지원하려면 Samba 및 Winbind 솔루션을 사용하여 데스크톱을 Active Directory 도메인과 통합합니다.
Ubuntu 데스크톱을 AD 도메인과 통합하려면 다음 절차를 사용합니다.
이 절차의 일부 예시는 Ubuntu 데스크톱의 호스트 이름과 같은 네트워크 구성의 엔티티를 나타내기 위해 자리 표시자 값을 사용합니다. 다음 표에 설명된 대로 자리 표시자 값을 구성과 관련된 정보로 바꿉니다.
자리 표시자 값 |
설명 |
dns_IP_ADDRESS |
DNS 이름 서버의 IP 주소 |
mydomain.com |
AD 도메인의 DNS 이름 |
MYDOMAIN.COM |
AD 도메인의 DNS 이름(모두 대문자) |
myhost |
Ubuntu 데스크톱의 호스트 이름 |
MYDOMAIN |
Samba 서버를 포함하는 작업 그룹 또는 NT 도메인의 DNS 이름(모두 대문자) |
ads-hostname |
AD 서버의 호스트 이름 |
admin-user |
AD 도메인 관리자의 사용자 이름 |
사전 요구 사항
- AD(Active Directory) 서버는 Linux 시스템에서 DNS로 확인할 수 있습니다.
- NTP(Network Time Protocol)는 Linux 시스템에서 구성됩니다.
프로시저
- Ubuntu 데스크톱에서 samba 및 winbind 패키지를 설치합니다.
sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind
- 메시지가 표시되면 다음과 같이 Kerberos 인증 설정을 구성합니다.
- 기본 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
- 자동 생성된 resolv.conf 파일이 AD 도메인을 검색 도메인으로 참조하도록 하려면 시스템 연결에 대한 NetworkManager 설정을 편집합니다.
- NetworkManager 제어판을 열고 시스템 연결에 대한 IPv4 설정으로 이동합니다. 방법으로 자동(DHCP) 주소만을 선택합니다. DNS 서버 텍스트 상자에 DNS 이름 서버의 IP 주소(이 절차 전체의 예시에서 dns_IP_ADDRESS로 표시)를 입력합니다. 그런 후 저장을 클릭합니다.
- /etc/NetworkManager/system-connections에 있는 시스템 연결에 대한 구성 파일을 편집합니다. 다음 예시를 사용하십시오.
[ipv4]
dns=dns_IP_ADDRESS
dns-search=mydomain.com
ignore-auto-dns=true
method=auto
참고: 새 인스턴트 클론 가상 데스크톱이 생성될 때 새 가상 네트워크 어댑터가 추가됩니다. 인스턴트 클론 가상 데스크톱에 새 네트워크 어댑터가 추가되면 가상 데스크톱 템플릿에서 DNS 서버와 같은 네트워크 어댑터의 모든 설정이 손실됩니다. 복제된 가상 데스크톱에 새 네트워크 어댑터를 추가할 때 DNS 서버 설정이 손실되지 않도록 하려면 Linux 시스템에서 DNS 서버를 지정해야 합니다.
- 다음 예시에 표시된 것처럼 /etc/resolv.conf 구성 파일을 편집하여 DNS 서버를 지정합니다.
nameserver dns_IP_ADDRESS
search mydomain.com
- 시스템을 재부팅하고 다시 로그인합니다.
- 다음 예시에 표시된 것처럼 /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 데스크톱을 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
- getend passwd
- getend group
- 시스템을 재부팅하고 다시 로그인합니다.