次の方法で共有


ソース:kerberos イベントID 4 ファイルサーバーへのアクセスが拒否される

質問

2009年11月5日木曜日 7:34

Windows2003Server(SP1)でドメインコントローラー構築済み。
Windows2000Server(SP4)のファイルサーバーをOSから再セットアップした以降からクライアントでイベントが発生している。
クライアント WindowsXP(SPはバラバラ)

クライアントがファイルサーバーへアクセスをしようとするとアクセス出来る時とアクセス出来ない時がある。
アクセス出来ない時に、イベント発生。(特にスクリーンロックを解除した時の発生が多い)
クライアント再起動で回避は出来る。

ソース:kerberos
イベントID 4
The kerberos client received a KRB_AP_ERR_MODIFIED error from the server (サーバー名)
This indicates that the password used to encrypt the kerberos service ticket is different than that on the target server. Commonly, this is due to identically named  machine accounts in the target realm (ドメイン名), and the client realm.   Please contact your system administrator.

原因 及び 対処方法が分かる方お見えでしたら教えてください。

すべての返信 (13)

2009年11月6日金曜日 3:21 ✅回答済み | 1 票

チャブーンです。

Kerberos ID 4 エラーは、ごく簡単に言うと「コンピュータアカウントのパスワードを使ってKerberosチケットを正しく復号できない」というものです。サーバ上のサービス(共有フォルダ等)に使うKerborosチケットが利用できないと、共有フォルダにアクセスができません。

まず、次の点を確かめてみてはどうでしょう?

・Windows 2000 Server (ファイルサーバ) の TCP/IP プロパティの「優先DNSサーバー」「代替DNSサーバー」の欄に、ドメインコントローラのIPアドレス「だけ」がはいっているか?(代替DNSサーバー欄は空欄で構いません)。ISP(プロバイダ)や(インターネットアクセス用)ルータのDNSサーバがセットされていませんか?

・Windows 2000 Server (ファイルサーバ) で「セキュリティチャネル」はきちんと確立できるか?nltest /SC_VERIFY:(ドメイン名) というコマンドを使って確認します。Windows サポートツールをインストールすると、nltestコマンドが使えます。

もし、うえがおかしい、ということであれば、優先DNSサーバを正しく設定したあと、ファイルサーバを「再度ドメインに参加」させてみてください。


2009年11月11日水曜日 4:00 ✅回答済み | 1 票

チャブーンです。

#SHIMSOFT さんもありがとうございます

なるほど。Windows 2000 CD-ROM にはいっているサポートツールでは、実装されていないオプションだったのですね。

私が使ったサポートツールですが、更新されて /SC_Verify オプションがある版、だったようです。したからダウンロードできます。これをファイルサーバにインストールしてもらって、試していただくと結果がわかると思います。

Windows 2000 Service Pack 4 Support Tools

ついでですので、三沢さんへの内容についても、少し触れておきます。

> "CIFS/fileServer*" については、「エントリーがありませんでした」という結果でした。

cifs/fileServer という SPN は、事実上 HOST/fileServer と同一です(外部から CIFS でアクセスするとこのサービス名になります)。なので、「ない」ということで正解です。

> ちなみに、変更前のコンピューター名でも実施してみましたが、上記と同じ結果でした。

dn: CN=※※※,CN=Computers,DC=▲▲▲,DC=■■■
<ほかのSPN等は略>
servicePrincipalName: HOST/※※※.▲▲▲.■■■
servicePrincipalName: HOST/※※※

dn: CN=※※※2,CN=Computers,DC=▲▲▲,DC=■■■
<ほかのSPN等は略>
servicePrincipalName: HOST/※※※2.▲▲▲.■■■
servicePrincipalName: HOST/※※※2

うえのように抽出された(コンピュータ名とSPNがあっている)のであれば、SPN としては正常です。念のため、古いコンピュータオブジェクトを削除しておくといいでしょう。

dn: CN=※※※,CN=Computers,DC=▲▲▲,DC=■■■
<ほかのSPN等は略>
servicePrincipalName: HOST/※※※2.▲▲▲.■■■
servicePrincipalName: HOST/※※※2

dn: CN=※※※2,CN=Computers,DC=▲▲▲,DC=■■■
<ほかのSPN等は略>
servicePrincipalName: HOST/※※※2.▲▲▲.■■■
servicePrincipalName: HOST/※※※2

うえのように抽出された(コンピュータ名とSPNがあっていなくて、異なるオブジェクトに同じSPNが登録されている)のであれば、SPNを正しいものに直す必要があります。

SPN を直すには、setspn.exe を使ってください。Windows Server 2003 ドメインコントローラ上にサポートツールをインストールすると、使えます。

うえの例で、※※※コンピュータ名の、servicePrincipalName: HOST/※※※2.▲▲▲.■■■をservicePrincipalName: HOST/※※※.▲▲▲.■■■にしたい場合、このように実行します。

setspn -d HOST/※※※2.▲▲▲.■■■ ※※※
setspn -a HOST/※※※.▲▲▲.■■■ ※※※

setspn -l ※※※ とすると、SPN一覧が表示されます。うえの例とは違って、※※※2(現状のコンピュータ名)でのSPNがあっていない場合、例を読み替えて使ってください。

作業に不安な点があるなら、MSFT 三沢さんのコメントを待っていただいてもいいでしょう。


2009年11月6日金曜日 5:08

チャブーンさん 書き込みありがとうございます。

・DNSの設定は、優先・代替にドメインコントローラー1・2がそれぞれ入っているので問題無いと思われます。

・nltest のコマンドを実行してみましたが、オプション設定が間違っているようで以下のような結果となりました。
   Usage: nltest [/OPTIONS]
    以下 オプションの詳細が羅列

何が悪いのでしょうか?


2009年11月6日金曜日 7:20 | 1 票

こんにちは、フォーラムオペレーターの三沢健二です。

チャブーン さん、アドバイスありがとうございます!

ご投稿されたエラーについて、私の方で簡単に補足させていただきますね。
めいこ さんの環境では出来たり出来なかったりするとの事ですので、SPN(serviceprincipalname)が重複しているか、DNS のレコードに問題があるような気がします。

以下の技術情報を参考にしていただき、 "HOST/ファイルサーバーのコンピュータ名" といった SPN が、ファイルサーバー以外のコンピュータアカウントの SPN に登録されていないかを確認してください。
もし、SPN に問題がありましたら、ADSIEDIT などを使用して、正しい SPN を登録するか、不必要な SPN を削除して下さい。

- 参考情報
ドメイン コントローラーのシステム ログにイベント ID 11
http://support.microsoft.com/kb/321044

同様に、DNS サーバーの管理ツールを使用して、ファイルサーバーのホスト名で誤った A レコードが登録されていないかを確認してください。
DNS のレコードに問題がありましたら、正しいレコードを登録するか、不必要なレコードを削除して下さい。

それでは、こちらの情報がお役に立てる事を願っています。

______________________________________
マイクロソフト株式会社 フォーラム オペレーター 三沢健二


2009年11月9日月曜日 1:06

三沢さん アドバイスありがとうございます。
1点質問させてください。

>SPN が、ファイルサーバー以外のコンピュータアカウントの SPN に登録されていないかを確認してください。
 どうやって確認することが出来ますか?
 参考情報(microsoft サポート)は、何度も読んだのですが理解出来ませんでしたxxxスミマセン

DNSに関してですが、OSを再セットアップした時、IPは同じでコンピューター名を変更していました。
従いまして、前のコンピューター名をDNSから削除しました。

とりあえず 先週金曜日にDNSの方のみ作業を実施して現在様子を見ているところです。
SPNの方も もう少し詳しく教えて頂けたらと思います。

よろしくお願いします。


2009年11月9日月曜日 6:05

めいこ さん、こんにちは。

SPN の検索方法ですが、日本語の KB は機械翻訳で言葉がおかしい場合がありますので、英語の情報を見ていただいた方が分かりやすいかもしれません。(すみません、、、)

http://support.microsoft.com/kb/321044/en-us

ファイルサーバーのコンピューター名が "fileServer" だった場合には、ドメインコントローラー上で以下のようなコマンドを実行して下さい。

ldifde -f ファイル名.txt -t 3268 -d "" -l servicePrincipalName -r "(servicePrincipalName=HOST/fileServer*)" -p subtree

作成された ファイル名.txt を開いて、"fileServer" 以外のコンピューターアカウントの SPN に、"HOST/fileServer" もしくは "HOST/fileServer.domain.com" が登録されていないかを確認してください。
(念のため、"CIFS/fileServer*" といった SPN についても検索してください)

- 参考情報
ldifdeコマンド
http://itpro.nikkeibp.co.jp/article/COLUMN/20071212/289421/?ST=nettech

他には "ldp.exe" を使用した検索方法もあります。
SPN を編集する場合は "ADSIEDIT.msc" などを使用して下さい。(サポートツールに含まれています)

______________________________________
マイクロソフト株式会社 フォーラム オペレーター 三沢健二


2009年11月9日月曜日 8:52

チャブーンです。

コメントが遅くなってすみません。

MSFT 三沢さんからでていた、「SPNの重複をチェックする」簡単な方法ですが、adfindというツールを使うと簡単ですよ。

http://www.joeware.net/freetools/tools/adfind/index.htm

うえのツールをダウンロードして展開(解凍)したうえ、次のコマンドを実行するといいでしょう (example.com で HOST/FileServerNameというSPNを探すなら)。

cd (adfindコマンドを展開したフォルダのパス)
adfind -b DC=example,DC=com -f "servicePrincipalName=HOST/FileServerName*" servicePrincipalName

うえのコマンドを実行すると、HOST/FileServe とか HOST/FileServe.example.com などの SPN が含まれるオブジェクトを書き出してくれます。コンピュータ名を変えたということですので、古いコンピュータオブジェクトがあれば、いっぺん削除した方がいいかもしれませんね。

あと、"nltest のコマンドを実行してみましたが、オプション設定が間違っているようで以下のような結果となりました。" ですが、内容から、nltest の構文を間違えている、としかいえません。たとえば example.com ドメインなら nltest /SC_VERIFY:example.com と入力する必要があります。一応試していただくことをお奨めします。(問題がない場合、"Trust Verification Status = 0 0x0 NERR_Success" という結果がかえってくるはずです)。


2009年11月11日水曜日 0:01

三沢さん アドバイスありがとうございます。

コマンド実行してみました。
結果は以下の通りです。

dn: CN=コンピューター名,CN=Computers,DC=▲▲▲,DC=■■■
changetype: add
servicePrincipalName: SMTPSVC/コンピューター名.▲▲▲.■■■
servicePrincipalName: HOST/コンピューター名.▲▲▲.■■■
servicePrincipalName: HOST/コンピューター名
servicePrincipalName: SMTPSVC/コンピューター名

"CIFS/fileServer*" については、「エントリーがありませんでした」という結果でした。

ちなみに、変更前のコンピューター名でも実施してみましたが、上記と同じ結果でした。

【質問1】この結果は正常なのでしょうか?
【質問2】変更前のSPNは削除すべきなのでしょうか?
       (変更前コンピューター名:※※※   変更後コンピューター名:※※※2 と紛らわしい名前にしてしまいました) 
【質問3】変更前SPNを削除する場合、どのようなコマンドを実行すればよいのでしょうか?

この辺り、どが付くほど素人ですみません。
アドバイスよろしくお願いします。


2009年11月11日水曜日 0:16

チャブーンさん ありがとうございます。

nltest コマンドの件ですが、何度やっても結果は同じでした。
 Usage: nltest [/OPTIONS]
  以下 オプションの詳細が羅列

ちなみに「オプションの詳細が羅列」の中には、「/SC_VERIFY」という説明は無かったです。

もしかしてWindows サポートツールからのインストールに何か足りないものがあるのでしょうか?
Microsoftのサポート情報を参考に Windows 2000 CD-ROM の Support\Tools フォルダの Setup.exe プログラムを実行しただけです。

アドバイスありましたらよろしくお願いします。


2009年11月11日水曜日 1:53

nltest.exe は Windows 2000 Server の Support Toolsでは 確かに /SC_VERIFY は無さげですね。
Windows XPの Support Tools、 Windows Server 2003の Support Toolsにはある模様。

ちなみに XP用の nltest.exe を 2000 Serverにコピーしてみましたが、
そのままでは動かない様子です。

必要なDLLに必要な機能が含まれていないというエラーが出て対処できませんでした。


2009年11月11日水曜日 5:40

SHIMSOFTさん,チャブーンさん ありがとうございます。

>抽出された(コンピュータ名とSPNがあっている)のであれば、SPN としては正常です。念のため、古いコンピュータオブジェクトを削除しておくといいでしょう。
結果は、チャブーンさんが記述してくださった上段側に当てはまりますので、正常なようですね。
ちなみに、古いコンピュータオブジェクトを削除するにはどのようなコマンドを実行すればよいのでしょうか?

nltest コマンドの件ですが、上記のものをダウンロードして試してみました。
今度は出来ました!
"Trust Verification Status = 0 0x0 NERR_Success" という結果がかえってきました。
問題なしということですね、安心しました。

SPNも問題なし,DNSも問題なし,セキュリティチャネルも問題無し・・・・という結果で話が振り出しに戻ってしまいました。
では なぜ イベントがあがるのでしょうか??


2009年11月11日水曜日 6:22

皆様、こんにちは。

チャブーン さん、ご丁寧なフォロー誠にありがとうございます。

SPN の検索結果についてと、編集方法については、チャブーン さんに案内いただきました内容を参考にしていただければと思います。

SPN の編集は、コマンドだと "setspn.exe" が簡単ですね。
AD を管理されるのであれば、GUI で編集可能な "ADSIEDIT.msc" の使用方法も覚えておかれると便利ですよ。(簡単に使えるので操作を間違えると危険ですが、、、)

ちなみに、SPN の重複だと誤ったサービスチケットを入手した可能性があり、DNS のレコードの重複だとサービスチケットの提示先を誤っている可能性があります。

- 参考情報
http://www.microsoft.com/japan/windowsserver2003/technologies/directory/activedirectory/guide/advantages01.mspx

もし、SPN や DNS のレコードに問題なければ、Kerberos 4 (KRB_AP_ERR_MODIFIED) のエラーは様々な要因で発生しますので、最初にチャブーン さんにご案内いただいた、ファイルサーバーのドメイン再参加などもお試しいただければと思います。

また、ネットワークトレースを使用して、アクセス出来ない時の動作を確認してみると何かヒントが見つかるかもしれません。
(どうしても解決出来ない場合は、弊社有償サポートへご相談いただければと)

蛇足ですが、、、IP アドレスで共有フォルダにアクセスすると必ず Kerberos 認証に失敗しますが、これは "HOST/IP アドレス" といった SPN が登録されていないためです。

______________________________________
マイクロソフト株式会社 フォーラム オペレーター 三沢健二

 


2009年11月11日水曜日 7:19

みなさん 色々とアドバイスありがとうございます!

11月9日にDNSから旧コンピューター名を削除し、原因を探りながらクライアントの様子を見ていました。
時間とともに 除々に不具合報告も減りつつあったのですが・・・一応 不具合の出ていた端末を確認し、以降 kerberosのイベントが1件も上がっていないことを確認してきました。
何が原因なのかは定かではありませんが、暫く様子を見ていきたいと思います。
(念のため、ドメインへの再参加は、明日実施しておきます)

今回、皆様のアドバイスで私自身のスキルアップが出来ました。
本当に感謝です。
一旦 ここで閉めさせていただき、更なる不具合が発生したときは別で質問させて頂きます。
ありがとうございました。