[samba-jp:23058] KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN

Hiroo Ono (小野寛生) hiroo.ono+freebsd @ gmail.com
2020年 4月 29日 (水) 11:40:48 JST


小野と申します。

samba 4.11 を使って Active Directory を構成しています。
Active Directory の DC ははじめ samba 4.4 で provision して、
何回かバージョンアップして現在は 4.11 です。

https://lists.samba.org/archive/samba-technical/2013-April/091429.html

を参考に cyrus-imapd で GSSAPI で認証しようと思って設定しているのですが、
Active Directory の DC にしている samba が思った応答をしてくれなくて困っています。

2つのケースで何度か試しているのですが、

ケース1:
上記の samba-technical のメールの通り、

# samba-tool user create --random-password imap-nowhere
# samba-tool spn add imap/nowhere.oikumene.ukehi.net @ OIKUMENE.UKEHI.NET
imap-nowhere

でユーザーと Service Principal Name を登録しました。
# samba-tool spn list imap-nowhere
で設定した SPN が出てきます。

ケース2:
上記のユーザー imap-nowhere を削除し、member server の方から
# net ads setspn add imap/nowhere.oikumene.ukehi.net @ OIKUMENE.UKEHI.NET
NOWHERE
で SPN を登録しました。
# samba-tool spn list NOWHERE\$
で設定した SPN が出てきます。

どちらの場合も keytab の生成は imap のサーバーマシン上で
(こちらでは、domain member の samba を立ち上げています)
# KRB5_KTNAME=/var/imap/krb5.keytab net ads keytab add imap -U administrator
で行いました。これは samba wiki
https://wiki.samba.org/index.php/Generating_Keytabs
に載っている方法を参考にしました。

Kerberos のツールで
# ktutil -k /var/imap/krb5.keytab list
とすると、imap/nowhere.oikumene.ukehi.net @ OIKUMENE.UKEHI.NET は keytab に含まれています。

詳細は割愛しますが、imapd 側の設定はうまくいっているようで、keytab を読んで(keytab を読めないようにしたり読めるようにしたりして
log を見て確認しました)、
GSSAPI での認証を受け付けています。
しかし、実際に接続しようとすると認証で失敗します。

この時の Kerberos5 の通信を wireshark で見たところ、
member -> DC の TGS-REQ が、関係しそうな部分を抜き出すと
* req-body
      realm: OIKUMENE.UKEHI.NET
  * sname
      name-type: KRB5-NT-PRINCIPAL
     * sname-string
        SNameString: imap
        SNameString: nowhere.oikumene.ukehi.net

となっているのですが、DC からは
KRB Error: KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN
が返っています。
ここで正常な TGS-REP が返ってくれないといけないと思うのですが、実際はエラーになります。

ちょっとお手上げなのですが、どのへんをどうすればうまく応答してくれるようになるか、どなたかわかりますでしょうか。

よろしくおねがいします。


samba-jp メーリングリストの案内