[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 メーリングリストの案内