55.8. GSSAPI 인증 활성화 및 IdM 클라이언트에서 sudo에 대한 Kerberos 인증 표시기 적용
다음 절차에서는 sudo 및 IdM 클라이언트에서 GSSAPI(Generic Security Service Application Program Interface) 인증 활성화를 설명합니다. 또한 스마트 카드로 로그인한 사용자만 Kerberos 티켓을 사용하여 해당 명령에 인증됩니다.
pam_sss_gss.so PAM 모듈을 통해
이 절차를 템플릿으로 사용하여 다른 PAM 인식 서비스에 대해 SSSD를 사용하여 GSSAPI 인증을 구성하고, Kerberos 티켓에 특정 인증 표시기가 연결된 사용자에게만 액세스를 제한할 수 있습니다.
사전 요구 사항
-
IdM 호스트에 적용되는 IdM 사용자에 대한
sudo규칙을 생성했습니다. 이 예제에서는idm_user 계정에 idm_sbin/reboot명령을 실행할 수 있는 권한을 부여하는idm_user_rebootsudo규칙을 생성했습니다. -
idmclient호스트에 대해 스마트 카드 인증을 구성했습니다. -
idmclient호스트는 RHEL 8.4 이상을 실행하고 있습니다. -
/etc/
pam.d파일과 PAM 파일을 수정하려면/ 디렉토리에서/etc/sssd/sssd.confroot권한이 필요합니다.
절차
-
/etc/sssd/sssd.conf구성 파일을 엽니다. 다음 항목을
[domain/<domain_name>]섹션에 추가합니다.[domain/<domain_name>] pam_gssapi_services = sudo, sudo-i pam_gssapi_indicators_map = sudo:pkinit, sudo-i:pkinit-
/etc/sssd/sssd.conf파일을 저장하고 닫습니다. SSSD 서비스를 다시 시작하여 구성 변경 사항을 로드합니다.
[root@idmclient ~]# systemctl restart sssd-
/etc/pam.d/sudoPAM 구성 파일을 엽니다. 다음 항목을
/etc/pam.d/sudo파일에 있는auth섹션의 첫 번째 행으로 추가합니다.#%PAM-1.0 auth sufficient pam_sss_gss.so auth include system-auth account include system-auth password include system-auth session include system-auth-
/etc/pam.d/sudo파일을 저장하고 닫습니다. -
/etc/pam.d/sudo-iPAM 구성 파일을 엽니다. 다음 항목을
/etc/pam.d/sudo-i파일에 있는auth섹션의 첫 행으로 추가합니다.#%PAM-1.0 auth sufficient pam_sss_gss.so auth include sudo account include sudo password include sudo session optional pam_keyinit.so force revoke session include sudo-
/etc/pam.d/sudo-i파일을 저장하고 닫습니다.
검증 단계
idm_user계정으로 호스트에 로그인하고 스마트 카드로 인증합니다.[root@idmclient ~]# ssh -l idm_user@idm.example.com localhost PIN for smart_card스마트 카드 사용자로 티켓이 제공된지 확인합니다.
[idm_user@idmclient ~]$ klist Ticket cache: KEYRING:persistent:1358900015:krb_cache_TObtNMd Default principal: idm_user@IDM.EXAMPLE.COM Valid starting Expires Service principal 02/15/2021 16:29:48 02/16/2021 02:29:48 krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM renew until 02/22/2021 16:29:44idm_user계정이 수행할 수 있는sudo규칙을 표시합니다.[idm_user@idmclient ~]$ sudo -l Matching Defaults entries for idmuser on idmclient: !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY KRB5CCNAME", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin User idm_user may run the following commands on idmclient: (root) /usr/sbin/reboot암호를 지정하지 않고
sudo를 사용하여 시스템을 재부팅합니다.[idm_user@idmclient ~]$ sudo /usr/sbin/reboot