상호 운용성을 위해 Ubuntu 클라이언트를 Windows Server 2012 Active Directory 도메인의 구성원으로 만들려면 어떻게 해야 합니까?

상호 운용성을 위해 Ubuntu 클라이언트를 Windows Server 2012 Active Directory 도메인의 구성원으로 만들려면 어떻게 해야 합니까?

내 Windows 도메인에 Windows 2012 R2 Active Directory가 포함된 Ubuntu 18.04 LTS 클라이언트가 있습니다. 이 우분투 클라이언트를 Windows 도메인 및 Active Directory의 구성원으로 만들고 싶습니다. 이를 수행하기 위한 명확한 해결책이나 루틴이 있습니까?

답변1

현재 최신 Linux를 AD에 통합하기 위해 권장되는 솔루션은 일반적으로 sssd.

이것은 공식 Ubuntu 18.04 문서에서 가져온 것입니다.

필요한 패키지가 설치되어 있는지 확인하십시오.

sudo apt install krb5-user samba sssd chrony

설치 시 krb5-user다음 세 가지 메시지가 표시되며 공통 Kerberos 이름이 사용됩니다.

  • 도메인 이름: AD를 다룰 때 대문자로 표시된 AD 도메인 이름입니다.
  • KDC 서버 이름: AD 도메인 컨트롤러의 작업 중 하나입니다.
  • Kerberos 관리 서버의 이름: AD 도메인 컨트롤러이기도 합니다.

Active Directory 인증은 Kerberos를 기반으로 하기 때문에 시스템 시계가 AD 서버의 시계와 합리적으로 동기화되어야 합니다. 일반적으로 AD 서버는 이러한 목적으로 NTP 서비스를 제공합니다. 시간 동기화를 사용하는 경우 chrony(가장 가까운) AD 도메인 컨트롤러의 이름을 다음에 추가하세요 /etc/chrony/chrony.conf.

server my.ad.domain.controller.example

Linux 디렉터리를 Windows 시스템과 공유하지 않더라도 일부 AD 인증 관련 서비스를 수행하려면 Samba가 필요합니다. 다음 [global]섹션 에 추가하세요 /etc/samba/smb.conf.

[global]

workgroup = SHORT_NAME_OF_AD_DOMAIN
client signing = yes
client use spnego = yes
kerberos method = secrets and keytab
realm = AD.DOMAIN.FULL.NAME
security = ads

적절하게 교체하십시오 SHORT_NAME_OF_AD_DOMAIN.AD.DOMAIN.FULL.NAME

SSSD 구성 파일 만들기 /etc/sssd/sssd.conf:

[sssd]
services = nss, pam
config_file_version = 2
domains = AD.DOMAIN.FULL.NAME

[domain/AD.DOMAIN.FULL.NAME]
id_provider = ad
access_provider = ad

# Use this if users are being logged in at /.
# This example specifies /home/DOMAIN-FQDN/user as $HOME.  Use with pam_mkhomedir.so
override_homedir = /home/%d/%u

# Uncomment if the client machine hostname doesn't match the computer object on the DC.
# ad_hostname = mymachine.ad.domain.full.name
# Uncomment if DNS SRV resolution is not working
# ad_server = dc.ad.domain.full.name

# Uncomment if the AD domain is named differently than the Samba domain
# ad_domain = AD.DOMAIN.FULL.NAME

# Enumeration is discouraged for performance reasons.
# enumerate = true

이 파일은 루트만 접근할 수 있도록 보호되어야 합니다. 그렇지 않으면 sssd부팅이 거부됩니다:

sudo chown root:root /etc/sssd/sssd.conf
sudo chmod 600 /etc/sssd/sssd.conf

시스템이 항상 정규화된 DNS 도메인 이름을 알고 있는지 확인하십시오. 필요한 경우 이를 /etc/hosts.

그런 다음 수정된 구성으로 서비스를 다시 시작합니다.

sudo systemctl restart chrony.service
sudo systemctl restart smbd.service nmbd.service 
sudo systemctl start sssd.service

kinit이제 AD를 사용하여 초기 Kerberos 인증을 수행 할 수 있습니다 . 도메인에 새 시스템을 추가하는 데 필요한 권한이 있는 AD 사용자 계정을 사용하여 루트로 이 작업을 수행합니다.

sudo kinit Administrator

실제로 Kerberos 인증 티켓을 얻었는지 확인하세요.

sudo klist

이제 다음 명령을 사용하여 실제로 AD 도메인에 가입할 수 있습니다.

sudo net ads join -k

이 명령이 성공적으로 완료되면 이제 Linux 명령을 사용하여 AD 사용자의 사용자 계정 정보를 쿼리할 수 있습니다.

getent passwd some-AD-username

새 사용자는 언제든지 AD에 추가될 수 있으므로 로그인 시 모든 AD 사용자에 대한 홈 디렉터리가 아직 존재하지 않는 경우 자동으로 생성하는 메커니즘을 설정해야 합니다. 이 줄을 에 추가하세요 /etc/pam.d/common-session.session required pam_unix.so ...줄 바로 뒤에:

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

override_homedirsssd.conf다음 줄은 AD 사용자 홈 디렉터리의 경로 이름을 결정합니다 .

관련 정보