8장. 인증 공급자로 AD를 사용하도록 RHEL 호스트 구성
시스템 관리자는 호스트를 AD에 연결하지 않고 RHEL(Red Hat Enterprise Linux) 호스트의 인증 공급자로 AD(Active Directory)를 사용할 수 있습니다.
예를 들면 다음과 같은 경우 이 작업을 수행할 수 있습니다.
- AD 관리자에게 호스트 활성화 및 비활성화에 대한 제어 권한을 부여하지는 않습니다.
- 회사 PC가 될 수 있는 호스트는 회사의 한 명의 사용자만 사용해야 합니다.
이 접근 방식이 선호되는 드물지만 이 절차를 구현하십시오.
시스템을 AD 또는 Red Hat IdM(Identity Management)에 완전히 참여시키는 것이 좋습니다. RHEL 호스트를 도메인에 연결하면 설정을 쉽게 관리할 수 있습니다. 클라이언트를 AD에 직접 연결하는 것과 관련된 클라이언트 액세스 라이센스에 관심이 있는 경우 AD와의 신뢰 계약에 있는 IdM 서버를 활용하는 것이 좋습니다. IdM-AD 신뢰에 대한 자세한 내용은 IdM과 AD 간의 교차 포리스트 신뢰 계획 및 IdM과 AD 간의 신뢰 설치를 참조하십시오.
이 절차를 통해 AD_user 라는 사용자가 example.com 도메인의 AD(Active Directory) 사용자 데이터베이스에 설정된 암호를 사용하여 rhel_host 시스템에 로그인할 수 있습니다. 이 예제에서 EXAMPLE.COM Kerberos 영역은 example.com 도메인에 해당합니다.
사전 요구 사항
- rhel_host 에 대한 루트 액세스 권한이 있습니다.
- AD_user 사용자 계정은 example.com 도메인에 있습니다.
- Kerberos 영역은 EXAMPLE.COM 입니다.
-
rhel_host 가
realm join
명령을 사용하여 AD에 가입되지 않았습니다. sssd-proxy
패키지가 설치되어 있습니다.$ dnf install sssd-proxy
절차
암호를 할당하지 않고 AD_user 사용자 계정을 로컬로 생성합니다.
# useradd AD_user
편집을 위해
/etc/nsswitch.conf
파일을 열고 다음 행을 포함하는지 확인합니다.passwd: sss files systemd group: sss files systemd shadow: files sss
편집을 위해
/etc/krb5.conf
파일을 열고 다음 섹션 및 항목이 포함되어 있는지 확인합니다.# To opt out of the system crypto-policies configuration of krb5, remove the # symlink at /etc/krb5.conf.d/crypto-policies which will not be recreated. includedir /etc/krb5.conf.d/ [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] dns_lookup_realm = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt spake_preauth_groups = edwards25519 default_realm = EXAMPLE.COM default_ccache_name = KEYRING:persistent:%{uid} [realms] EXAMPLE.COM = { kdc = ad.example.com admin_server = ad.example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM
/etc/sssd/sssd.conf
파일을 생성하고 여기에 다음 섹션과 행을 삽입합니다.[sssd] services = nss, pam domains = EXAMPLE.COM [domain/EXAMPLE.COM] id_provider = proxy proxy_lib_name = files auth_provider = krb5 krb5_realm = EXAMPLE.COM krb5_server = ad.example.com
/etc/sssd/sssd.conf 파일에 대한 권한을 변경합니다.
# chmod 600 /etc/sssd/sssd.conf
SSSD(보안 시스템 서비스 데몬)를 시작합니다.
# systemctl start sssd
SSSD를 활성화합니다.
# systemctl enable sssd
/etc/pam.d/system-auth
파일을 열고 다음 섹션과 행을 포함하도록 수정합니다.# Generated by authselect on Wed May 8 08:55:04 2019 # Do not modify this file manually. auth required pam_env.so auth required pam_faildelay.so delay=2000000 auth [default=1 ignore=ignore success=ok] pam_succeed_if.so uid >= 1000 quiet auth [default=1 ignore=ignore success=ok] pam_localuser.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth sufficient pam_sss.so forward_pass auth required pam_deny.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet account [default=bad success=ok user_unknown=ignore] pam_sss.so account required pam_permit.so password requisite pam_pwquality.so try_first_pass local_users_only password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password sufficient pam_sss.so use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so -session optional pam_systemd.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session optional pam_sss.so
/etc/pam.d/system-auth
파일의 콘텐츠를/etc/pam.d/password-auth
파일에 복사합니다. yes 를 입력하여 파일의 현재 내용을 덮어쓰는 것을 확인합니다.# cp /etc/pam.d/system-auth /etc/pam.d/password-auth cp: overwrite '/etc/pam.d/password-auth'? yes
검증
AD_user 의 Kerberos TGT(Tross-granting 티켓) 요청. 요청한 대로 AD_user 의 암호를 입력합니다.
# kinit AD_user Password for AD_user@EXAMPLE.COM:
가져온 TGT를 표시합니다.
# klist Ticket cache: KEYRING:persistent:0:0 Default principal: AD_user@EXAMPLE.COM Valid starting Expires Service principal 11/02/20 04:16:38 11/02/20 14:16:38 krbtgt/EXAMPLE.COM@EXAMPLE.COM renew until 18/02/20 04:16:34
AD_user 가 EXAMPLE.COM Kerberos 도메인의 자격 증명을 사용하여 rhel_host 에 성공적으로 로그인했습니다.