9.8. IdM クライアントでの GSSAPI 認証の有効化および sudo の Kerberos 認証インジケーターの有効化
Identity Management (IdM) クライアントで、PAM モジュールの pam_sss_gss.so を介して、sudo や sudo -i などの PAM 対応サービスに対して Generic Security Service Application Program Interface (GSSAPI) 認証を有効にできます。さらに、Kerberos チケットを使用してこれらのサービスに対して認証できるユーザーを、スマートカードを使用してログインしたユーザーに制限することもできます。
この手順をテンプレートとして使用し、他の PAM 対応サービスに対して SSSD で GSSAPI 認証を設定して、さらに特定の認証インジケーターが Kerberos チケットにアタッチされているユーザーだけにアクセスを限定することができます。
ただし、認証インジケーターを使用してアクセスを制限する場合、現時点で次の 2 つの制限があります。
- 認証インジケーターがサポートされるのは、MIT Kerberos に基づくデプロイメントだけです。このようなデプロイメントには、RHEL IdM、Fedora の FreeIPA、Fedora の Samba AD DC などがあります。
- 認証インジケーターは、レルム境界で Kerberos チケットから削除されます。
したがって、たとえば、pam_gssapi_indicators_map = sudo:pkinit を使用して sudo アクセスを制限する場合、この制限は IdM LDAP に保存されているユーザーにのみ適用できます。Active Directory に保存されているチケットなど、他の場所に保存されているユーザーに発行されたチケットは、現在、pam_gssapi_indicators_map = sudo:pkinit 条件を満たすことができません。
前提条件
-
IdM ホストに適用する IdM ユーザーの
sudoルールを作成している。この例では、idmclientホストで/usr/sbin/rebootコマンドを実行するパーミッションをidm_userアカウントに付与するidm_user_rebootsudoルールが作成済みです。 -
idmclientホストにスマートカード認証を設定している。 -
idmclientホストが RHEL 8.4 以降を実行している。 -
/etc/sssd/sssd.confファイルと、/etc/pam.d/ディレクトリーの PAM ファイルを変更するためのroot特権がある。
手順
-
/etc/sssd/sssd.conf設定ファイルを開きます。 [domain/<idm_domain_name>]セクションに次のエントリーを追加します。[domain/<idm_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 sssdRHEL 8.8 以降の場合:
sssdauthselectプロファイルを選択したかどうかを確認します。# authselect current Profile ID: sssdオプション:
sssdauthselectプロファイルを選択します。# authselect select sssdGSSAPI 認証を有効にします。
# authselect enable-feature with-gssapiスマートカードを持つユーザーのみを認証するようにシステムを設定します。
# authselect with-smartcard-required
RHEL 8.7 以前の場合:
-
/etc/pam.d/sudoの PAM 設定ファイルを開きます。 以下のエントリーを、
/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-iの PAM 設定ファイルを開きます。 以下のエントリーを、
/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スマートカードユーザーを使用して Ticket-Granting Ticket があることを確認します。
[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