AD域认证问题的日常定位方法.doc_第1页
AD域认证问题的日常定位方法.doc_第2页
AD域认证问题的日常定位方法.doc_第3页
AD域认证问题的日常定位方法.doc_第4页
AD域认证问题的日常定位方法.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AD域认证问题日常定位方法1 引子目前TSM的AD域认证过程中经常出现问题,由于AD系统庞大而且终端代理使用第三方库执行主要认证业务,所以AD域认证过程中的问题很难定位和解决。鉴于此,特将之前用于定位AD域认证问题的一些经验总结一下,方便今后开发和测试的同事在现场定位问题。2 AD域认证过程介绍TSM系统的AD域认证过程主要涉及到三个角色,分别是:TSM服务器、AD域控、终端代理。TSM和AD的联动认证是基于标准的Kerberos协议,标准的Kerberos认证流程如下:TSM在此基础上做了一些调整,主要是第5步和第6步的交互,其交互信息是通过SSL来加密的。具体交互流程图如下所示:从上面的交互流程图可以看出来,整个交互过程分为3个阶段分别是:AS(Authentication Service Exchange )、TGS(Ticket GrantingService Exchange )、AP(Client/Server Exchange )。在AS阶段,主要验证的是当前用于进行AD域认证的用户是当前AD域控上的合法用户。所以一般如果用户名或者密码错误时将会在这个阶段得到AD返回的错误信息。此外如果出现TSM服务器和AD上的时间偏差较大的时候也会在这个阶段出错。在TGS阶段,主要是终端代理获取其要请求的认证服务的票证的过程,如果这个时候请求的认证服务不存在,则在第4步返回的错误信息中指示KDC_ERR_S_PRINCIPAL_UNKNOWN,表明当前请求的服务不存在。之前在大足的AD域联动测试中就出现了这个问题。在AP阶段,服务器将会验证终端代理发送的TGS,来决定当前认证用户是否具有访问当前请求的认证服务的权限。3 基本问题定位方法3.1 验证网络是否可达在定位AD域认证相关的问题时,首先第一点是验证网络是否可达即,是否能够访问你当前AD域控。在这种情况下首先在系统的命令行提示下ping 目标主机(AD域控所在的机器)的IP地址,如果能够ping通目标主机则证明网络链路是可达的,如果ping不通此时请首先检查网络链路。在上面网络链路可达的基础上需要验证域名解析是否正确,此时在系统命令提示下ping AD域名,如果能够ping通则证明域名解析是没有问题的。相反如果无法ping通目标域名,此时首先请检查当前激活链接的网卡上的DNS配置确保其配置指向的是AD所对应的DNS服务器的地址,并且同时要检查一下当前系统的53端口是否被防火墙或者主动防御软件给禁止掉,确保53端口是开放的。对于上一步或者在终端上使用nslookup也可以达到相同作用。3.2 验证本地是否可以正确的和AD域控进行通信在网络可达的基础上,如果还是出现AD域认证不通过的问题时,需要验证终端系统能否和AD域控进行通信。首先验证一下本地的TCP/UDP的88端口是否是开放的,需要查看本地防火墙配置是否禁止了88端口,88端口是用于Kerberos认证的。在终端利用微软提供的工具ldp.exe来连接AD域控的389端口,如果连接失败请查看AD域控上的配置。3.3 检查认证报文在上面两步后如果还是出现AD认证不通过的问题后,此时需要进行抓包操作。通过报文来分析问题。抓包过程描述如下:1. 找一台未加入域的PC机作为测试机;2. 将这台测试机的DNS服务器设为本地的域控(除本地域控外,请不要设置其他的DNS服务器);3. 重启测试机(这一步用来清除LSA中缓存的kerberos ticket);4. 从下面的连接下载Network Monitor 3.1工具,并安装到测试机上:/downloads/details.aspx?FamilyID=18b1d59d-f4d8-4213-8d17-2f6dde7d7aac&DisplayLang=en5. 运行Netmon 3.1工具,并选择“File-New-Capture”;6. 如果该计算机上有多个网络连接,在”Select Networks”中,选择我们所关心的封包所流经的连接(比如Local Area Connection);7. 在菜单中,选择Tools-Options-Capture, 并将临时捕捉文件的大小调整为20Megabytes;8. 在菜单中,选择“Capture-Start”,开始抓包;9. 尝试进行AD域认证;10. 在Netmon工具界面中选择“Capture-Stop”停止抓包;11. 选择“File-Save as”, 将网络抓包保存为joindomain.cap文件;具体分析请参考上面的AD认证流程和下面的错误信息表:Kerberos Error Number Kerberos Error Code Description 0x3KDC_ERR_BAD_PVNORequested protocol version number not supported.0x6KDC_ERR_C_PRINCIPAL_UNKNOWNClient not found in Kerberos database.0x7KDC_ERR_S_PRINCIPAL_UNKNOWNServer not found in Kerberos database.0x8KDC_ERR_PRINCIPAL_NOT_UNIQUEMultiple principal entries in database.0xAKDC_ERR_CANNOT_POSTDATETicket not eligible for postdating.0xBKDC_ERR_NEVER_VALIDRequested start time is later than end time.0xCKDC_ERR_POLICY KDC policy rejects request.0xDKDC_ERR_BADOPTIONKDC cannot accommodate requested option.0xEKDC_ERR_ETYPE_NOSUPPKDC has no support for encryption type.0xFKDC_ERR_SUMTYPE_NOSUPPKDC has no support for checksum type.0x10KDC_ERR_PADATA_TYPE_NOSUPPKDC has no support for pre-authentication data type.0x12KDC_ERR_CLIENT_REVOKEDClients credentials have been revoked.0x17KDC_ERR_KEY_EXPIREDPassword has expired - change password to reset.0x18KDC_ERR_PREAUTH_FAILEDPre-authentication information was invalid.0x19KDC_ERR_PREAUTH_REQUIREDAdditional pre-authentication required.0x1BKDC_ERR_MUST_USE_USER2USERServer principal valid for user-to-user only.0x1CKDC_ERR_PATH_NOT_ACCPETEDKDC Policy rejects transited path.0x1DKDC_ERR_SVC_UNAVAILABLEA service is not available.0x1FKRB_AP_ERR_BAD_INTEGRITYIntegrity check on decrypted field failed.0x20KRB_AP_ERR_TKT_EXPIREDTicket expired.0x21KRB_AP_ERR_TKT_NYVTicket not yet valid.0x22KRB_AP_ERR_REPEATRequest is a replay.0x23KRB_AP_ERR_NOT_USThe ticket isnt for us.0x24KRB_AP_ERR_BADMATCHTicket and authenticator do not match.0x25KRB_AP_ERR_SKEW Clock skew too great.0x28KRB_AP_ERR_MSG_TYPEInvalid message type.0x29KRB_AP_ERR_MODIFIEDMessage stream modified.0x34KRB_ERR_RESPONSE_TOO_BIGResponse too big for UDP, retry with TCP.0x3CKRB_ERR_GENERICGeneric error (description in e-text).0x44KDC_ERR_WRONG_REALM User-to-user TGT issued different KDC.3.4 查看AD域控上的配置情况查看AD域控上的配置情况一般分为以下几个阶段1、 查看并收集测试帐号和SPN帐号的配置信息在AD域控所在的终端机器上运行如下两个命令:ldifde -f out1.txt -d dc=solo,dc=local -r (sAMAccountName=Stanley)ldifde -f out2.txt -d dc=solo,dc=local -r (userPrincipalName=seco/adserversolo.local)2、 在AD域控上运行Netdiag /vnetdiag.txt,并将运行结果保存下来3、 在AD域控上运行dcdiag /vdcdiag.txt,并将运行结果保存下来4、 收集AD域控所在机器的MPS Report信息l 从下面的连接,下载MPSRPT_DirSvc.EXE文件(文件大小702B):/downloads/details.aspx?FamilyID=cebf3c7c-7ca5-408f-88b7-f9c79b7306c0&displaylang=en l 在步骤1所使用的测试机上运行MPSRPT_DirSvc.EXE;根据计算机的性能及网络连接等情况,MPS Report工具可能运行5-15分钟。l 待MPSRPT_DirSvc.EXE运行完毕后,一个名为%COMPUTERNAME%_MPSReports_DirSvc.cab的.cab文件将被保存在路径:%systemroot%MPSReportsDirSvcLogsCab;在收集到以上信息之后请打包发回到研发出进行信息分析。3.5 查看在用户登录过程中是否出现异常在XXX局点出现部分采用域帐户登录系统过慢的现象,其登录过程大约持续了10分钟。一般处理这种登录问题的时候由于没有进入操作系统很难采用一般的工具来采集数据。此时需要依赖于操作系统的事件日志功能来查看在用户登录系统过程中发生了什么问题。通过查看一些异常日志信息来定位。此外在系统的事件日志中没有发现一些异常信息时,可以通过打开操作系统的登录日志开关来获取当前登录系统时的一些具体的执行操作。具体方法如下所示:在注册表HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon下建立一个DWORD键值UserEnvDebugLevel,将其值设为十六进制的30002(十进制为:196610)。而后重新启动操作系统,在登录到操作系统后,在当前的操作系统目录WINDOWSDebugUserMode下将会出现一个userenv.log文件,此文件将会记录所有在用户登录过程中的日志信息,通过查看此信息可以判断到底在登录过程中发生了那些问题。 3.6 后记一般而言,AD域认证失败的问题主要是从上面介绍的几方面来进行分析。尤其在配置SPN账户映射时需要格外注意以下两点:1、 在配置SPN账户时请确保在真实终端上进行配置,如果是在无法接触到真实终端,请采用控制台登录的方式来远程登录到目标主机,使用命令:mstsc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论