9.8. IdM クライアントでの GSSAPI 認証の有効化および sudo の Kerberos 認証インジケーターの有効化
pam_sss_gss.so
PAM モジュールを介して、sudo
コマンドおよび sudo -i
コマンドの IdM クライアントで、Generic Security Service Application Program Interface (GSSAPI) 認証を有効にします。また、スマートカードを使用してログインしたユーザーのみが Kerberos チケットでこれらのコマンドに対して認証されます。
この手順をテンプレートとして使用し、他の PAM 対応サービスに対して SSSD で GSSAPI 認証を設定して、さらに特定の認証インジケーターが Kerberos チケットにアタッチされているユーザーだけにアクセスを限定することができます。
前提条件
-
IdM ホストに適用する IdM ユーザーの
sudo
ルールを作成している。この例では、idmclient
ホストで/usr/sbin/reboot
コマンドを実行するパーミッションをidm_user
アカウントに付与するidm_user_reboot
sudo
ルールが作成済みです。 -
idmclient
ホストにスマートカード認証を設定している。 -
idmclient
ホストが RHEL 8.4 以降を実行している。 -
/etc/sssd/sssd.conf
ファイルと、/etc/pam.d/
ディレクトリーの PAM ファイルを変更するためのroot
特権がある。
手順
-
/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
RHEL 9.2 以降の場合:
sssd
authselect
プロファイルを選択したかどうかを確認します。# authselect current Profile ID: sssd
オプション:
sssd
authselect
プロファイルを選択します。# authselect select sssd
GSSAPI 認証を有効にします。
# authselect enable-feature with-gssapi
スマートカードを持つユーザーのみを認証するようにシステムを設定します。
# authselect with-smartcard-required
RHEL 9.1 以前の場合:
-
/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:44
idm_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
関連情報
- PAM サービスの GSSAPI 認証を制御する SSSD オプション
- IdM 用語 リストの GSSAPI エントリー
- スマートカード認証用の Identity Management の設定
- Kerberos 認証インジケーター
- IdM Web UI で IdM クライアントの IdM ユーザーへの sudo アクセスの許可
- CLI での IdM クライアントの IdM ユーザーへの sudo アクセス許可
-
システム上の
pam_sss_gss (8)
およびsssd.conf (5)
man ページ