web-dev-qa-db-ja.com

Active Directory(NTLMまたはKerberos?)のプライマリ認証プロトコルを確認します。

クライアントマシン(グローバルグループ内)(ローカル管理者でもあります)から、ドメインコントローラーがNTLMまたはKerberosを使用してドメインへのログイン要求を認証しているかどうかを確認するにはどうすればよいですか?

私はKerberosがデフォルトで有効になっていることを知っていますが、ドメイン管理者は常に他のプロトコルでクライアントを認証させることができます。だから私は彼らが使っているプロトコルを確認したいだけだ。確認する方法はありますか?

どんな助けでもいただければ幸いです

5
Andrew Watson

グレッグの答えは大丈夫ですが、あなたの質問は、ドメインコントローラーからではなく、クライアントからこれを確認することを明確に述べています。だから私はそれで亀裂を取ります。

最初の方法では、クライアントでKerberosロギングを有効にします。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
    LogLevel DWORD 0x1

Kerberosロギングが有効になったら、ログインして、イベントログを監視します。 Kerberosを使用している場合は、イベントログにアクティビティが表示されます。資格情報を渡していて、イベントログにKerberosアクティビティが表示されない場合は、NTLMを使用しています。

2番目の方法では、klist.exeユーティリティを使用して、現在のKerberosチケットを確認できます。これは、サービスに初めて認証する場合に間違いなく役立ちます。新しいチケットを取得するためです...しかし、同じサービスに対するその後の認証では、同じチケットを再利用できるため、klist.exeで限られた用途で使用してください。

3番目の方法では、Wiresharkで認証が行われることを確認します。

6
Ryan Ries

1つの方法は、ドメインコントローラーのセキュリティイベントログでイベントID 4264(ログオン)イベントを確認することです。AuthenticationPackageNameはNTLMまたはKerberosです。また、ドメインコントローラで監査が有効になっていて、必要な監査イベントをキャプチャしていることを確認する必要があります。

これを簡単にするためにカスタムイベントビューアフィルタを作成し、ユーザ名やワークステーション名などの他のフィールドでフィルタリングできます。

<QueryList>  
  <Query Id="0" Path="Security">
    <Select Path="Security">*[EventData[Data[@Name="AuthenticationPackageName"] = "NTLM"] and System[(EventID=4624)]]</Select>
  </Query> 
</QueryList>  


<QueryList>  
  <Query Id="0" Path="Security">
    <Select Path="Security">*[EventData[Data[@Name="AuthenticationPackageName"] = "Kerberos"] and System[(EventID=4624)]]</Select>
  </Query> 
</QueryList> 

NTLM

Kerberos

4
Greg Askew