20.10. sudo の GSSAPI 認証のトラブルシューティング
IdM から Kerberos チケットを使用して sudo
サービスに対する認証できない場合は、以下のシナリオを使用して設定のトラブルシューティングを行います。
前提条件
-
sudo
サービスの GSSAPI 認証が有効化されている。IdM クライアントでの sudo の GSSAPI 認証の有効化 を参照してください。 -
/etc/sssd/sssd.conf
ファイルと、/etc/pam.d/
ディレクトリーの PAM ファイルを変更するためのroot
特権がある。
手順
以下のエラーが表示された場合、Kerberos サービスはホスト名をもとに、サービスチケットに合わせて正しいレルムを解決できない可能性があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Server not found in Kerberos database
Server not found in Kerberos database
このような場合は、
/etc/krb5.conf
の Kerberos 設定ファイルの[domain_realm]
セクションにホスト名を直接追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat /etc/krb5.conf ... [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM server.example.com = EXAMPLE.COM
[idm-user@idm-client ~]$ cat /etc/krb5.conf ... [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM server.example.com = EXAMPLE.COM
以下のエラーが表示される場合には、Kerberos 認証情報がありません。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow No Kerberos credentials available
No Kerberos credentials available
このような場合は、
kinit
ユーティリティーを使用して Kerberos 認証情報を取得するか、SSSD で認証します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow kinit idm-user@IDM.EXAMPLE.COM
[idm-user@idm-client ~]$ kinit idm-user@IDM.EXAMPLE.COM Password for idm-user@idm.example.com:
/var/log/sssd/sssd_pam.log
ログファイルに以下のエラーのいずれかが表示される場合には、Kerberos 認証情報と、現在ログインしたユーザーのユーザー名とが一致しません。Copy to Clipboard Copied! Toggle word wrap Toggle overflow User with UPN [<UPN>] was not found. UPN [<UPN>] does not match target user [<username>].
User with UPN [<UPN>] was not found. UPN [<UPN>] does not match target user [<username>].
このような場合は、SSSD で認証されたことを確認するか、
/etc/sssd/sssd.conf
ファイルでpam_gssapi_check_upn
オプションを無効にすることを検討してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat /etc/sssd/sssd.conf ... pam_gssapi_check_upn = false
[idm-user@idm-client ~]$ cat /etc/sssd/sssd.conf ... pam_gssapi_check_upn = false
他のトラブルシューティングを行う場合は、PAM モジュール
pam_sss_gss.so
のデバッグ出力を有効してください。/etc/pam.d/sudo
や/etc/pam.d/sudo-i
など、PAM ファイルにpam_sss_gss.so
の全エントリーの最後にdebug
オプションを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat /etc/pam.d/sudo #%PAM-1.0 auth sufficient pam_sss_gss.so debug auth include system-auth account include system-auth password include system-auth session include system-auth
[root@idm-client ~]# cat /etc/pam.d/sudo #%PAM-1.0 auth sufficient pam_sss_gss.so debug auth include system-auth account include system-auth password include system-auth session include system-auth
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat /etc/pam.d/sudo-i #%PAM-1.0 auth sufficient pam_sss_gss.so debug auth include sudo account include sudo password include sudo session optional pam_keyinit.so force revoke session include sudo
[root@idm-client ~]# cat /etc/pam.d/sudo-i #%PAM-1.0 auth sufficient pam_sss_gss.so debug auth include sudo account include sudo password include sudo session optional pam_keyinit.so force revoke session include sudo
pam_sss_gss.so
モジュールで認証を試み、コンソールの出力を確認します。この例では、ユーザーには Kerberos 認証情報がありません。Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo ls -l /etc/sssd/sssd.conf
[idm-user@idm-client ~]$ sudo ls -l /etc/sssd/sssd.conf pam_sss_gss: Initializing GSSAPI authentication with SSSD pam_sss_gss: Switching euid from 0 to 1366201107 pam_sss_gss: Trying to establish security context pam_sss_gss: SSSD User name: idm-user@idm.example.com pam_sss_gss: User domain: idm.example.com pam_sss_gss: User principal: pam_sss_gss: Target name: host@idm.example.com pam_sss_gss: Using ccache: KCM: pam_sss_gss: Acquiring credentials, principal name will be derived pam_sss_gss: Unable to read credentials from [KCM:] [maj:0xd0000, min:0x96c73ac3] pam_sss_gss: GSSAPI: Unspecified GSS failure. Minor code may provide more information pam_sss_gss: GSSAPI: No credentials cache found pam_sss_gss: Switching euid from 1366200907 to 0 pam_sss_gss: System error [5]: Input/output error