以前構築したSamba4とSSSDのActive Directory環境で、「ユーザ操作でパスワード変更ができない」不具合が発生しましたので対処方法を解説します。
不具合が発生したサーバはドメインコントローラ全てです。メンバーサーバでは発生していません。
実際に発生したエラーはこちらです。test01ユーザ自身でパスワード変更を試みたところ、
$ passwd
ユーザー test01 のパスワードを変更。
現在のパスワード:
システムがオフラインです、パスワード変更ができません
passwd: 認証トークン操作エラー
と表示されパスワードが変更できませんでした。
ログファイルを確認すると
# tail -f /var/log/messages
sssd_be: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Client not found in Kerberos database)
とエラーが出力されていました。
念のためホストプリンシパルがkeytabに格納されているか確認しましたが
# klist -ke
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
1 dc01$@TESTDOMAIN.LOCAL (arcfour-hmac)
1 dc01$@TESTDOMAIN.LOCAL (aes256-cts-hmac-sha1-96)
1 dc01$@TESTDOMAIN.LOCAL (aes128-cts-hmac-sha1-96)
1 dc01$@TESTDOMAIN.LOCAL (des-cbc-md5)
1 dc01$@TESTDOMAIN.LOCAL (des-cbc-crc)
1 host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 (arcfour-hmac)
1 host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 (aes256-cts-hmac-sha1-96)
1 host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 (aes128-cts-hmac-sha1-96)
1 host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 (des-cbc-md5)
1 host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 (des-cbc-crc)
正常に登録されていました。
と言うことは、SSSD がホストプリンシパルを認識していないようなので設定ファイルを修正しました。
# vi /etc/sssd/sssd.conf
<略>
[domain/testdomain.local]
ldap_sasl_authid = host/このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 # 追記しました。
<略>
# systemctl restart sssd
SSSD 再起動後はログファイルにエラーが出力されなくなりましたので再度ユーザ操作でパスワード変更ができるか確認します。
$ passwd
ユーザー test01 のパスワードを変更。
現在のパスワード:
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
正常にパスワードが変更できました。
[ 前回記事 ] ※記事の内容は修正済です。
Samba4とSSSDでLinux/Windowsの認証統合環境を構築(ActiveDirectory+NIS)
Samba4とSSSDでLinux/Windowsの認証統合環境を構築(ActiveDirectory+NIS) 冗長化編
Samba4とSSSDでLinux/Windowsの認証統合環境を構築(ActiveDirectory+NIS) メンバーサーバ編
SSHでKerberosを使ったシングルサインオン(GSSAPI)
お疲れ様でした。