这是我看过最清楚的文章,登陆过程写得非常详细.
用处:
公司的笔记本加入域后,外出怎么样办,用缓存登陆呀.
有人发现公司的电脑,在DC坏掉后,还可以登陆,非常奇怪,那就是缓存登陆的原因,你可以在域控制器里设置是否允许缓存登陆及缓存的个数(只用登陆过才能缓存哟)
默认是关闭的
您可以在“域安全策略”-〉“安全设置”-〉“本地策略”-〉“安全选项”-〉在右边找到“交互式登录:可被缓存的前次登录个数(在域控制器不可用的情况下)”后双击,设置为X即可(X代表你缓存的数量)
这些缓存存放的位置,它们是存放在注册表中的,具体路径如下:
HKEY_LOCAL_MACHINE\Security\Cache,但是这个键值连管理员默认都没有权限查看,所以请您在Security上右击一下,点权限,然后给管理员“读”权限。之后您就能够在下面看见N1$,N2$,N3$,N4$,N5$,N6$,N7$,N8$,N9$,N10$这些键值,这就是10个缓存的凭证,您可以手动删除它们。
您可以在“域安全策略”-〉“安全设置”-〉“本地策略”-〉“安全选项”-〉在右边找到“交互式登录:可被缓存的前次登录个数(在域控制器不可用的情况下)”后双击,设置为X即可(X代表你缓存的数量)
这些缓存存放的位置,它们是存放在注册表中的,具体路径如下:
HKEY_LOCAL_MACHINE\Security\Cache,但是这个键值连管理员默认都没有权限查看,所以请您在Security上右击一下,点权限,然后给管理员“读”权限。之后您就能够在下面看见N1$,N2$,N3$,N4$,N5$,N6$,N7$,N8$,N9$,N10$这些键值,这就是10个缓存的凭证,您可以手动删除它们。
下面是转的文章,也不知道是谁写的.
在AD的日常管理中,有两个概念容易弄错,这里提一下:
一)关于域控制器不可用时,使用本地缓存登陆的问题。
在 "本地计算机"策略--计算机配置--Windows 设置--安全设置---本地策略--安全选项中,存在如下设置项:
Interactive logon: Number of previous logons to cache (in case domain controller is not available) : 10 logons
这里所指的10次,是10个用户登陆。而不是一个用户登陆的最大有效次数,一个用户可登陆的次数理论上是无限的。如果要禁止此项设定,您可以把这个值设为0。
Interactive logon: Number of previous logons to cache (in case domain controller is not available) : 10 logons
这里所指的10次,是10个用户登陆。而不是一个用户登陆的最大有效次数,一个用户可登陆的次数理论上是无限的。如果要禁止此项设定,您可以把这个值设为0。
这些信息存在 HKEY_LOCAL_MACHINE\SECURITY\Cache 里。其下设定10个子键,名称从 NL$1-NL$10,每当一个帐户登陆此计算机,其Profile被创建在 %HOMEDRIVE%\Documents and Settings 下,相应的帐户信息和安全性描述被缓存下来,并在此键值中作出记录。该键值中记录已经登陆帐户的名称及其相关标识。
(注:默认情况下,管理员组对于 HKEY_LOCAL_MACHINE\SECURITY 子键没有读写权限,您可以执行 regedt32.exe <windows 2000> 或者 regedit.exe <windowsXP> 添加对于该子键的读权限。关于注册表的描述和操作,请参考
Microsoft Windows 注册表说明 )
值得注意的是,这里所说的 10 个用户帐户,是指已经在本地登陆过的,也就是已经 cache 到本地了的帐户,而不是任意的帐户。如果没有登陆过帐户,由于在登陆的时候,需要查询域控制器,那么在交互式登陆下,系统立刻会提示当前域不可用。在加入域的计算机中,此策略的有效设定,最终取决于域策略的设定。
由于windows中此项机制的运作,此键值可以作为***检测的项目之一。
关于此设定描述,请参考 825805 "Interactive Logon: Number of Previous Logons to Cache" Help Topic
有趣的是,即便在Windows 2003 的随机文档中,关于此项的描述也是错误的,或许这个设定从字面上来理解,太容易让人误解了
BTW:也是在 HKEY_LOCAL_MACHINE\SECURITY\ 下,存在 SAM 的子键,不由让人想起前段时间,网络上很流行的 000001F4 000001F5 克隆 那个 F的方法
关于此设定描述,请参考 825805 "Interactive Logon: Number of Previous Logons to Cache" Help Topic
有趣的是,即便在Windows 2003 的随机文档中,关于此项的描述也是错误的,或许这个设定从字面上来理解,太容易让人误解了
BTW:也是在 HKEY_LOCAL_MACHINE\SECURITY\ 下,存在 SAM 的子键,不由让人想起前段时间,网络上很流行的 000001F4 000001F5 克隆 那个 F的方法
二)关于域帐户将计算机加入域的问题
通过编辑default domain policy,计算机安全设定中,关于用户权利指派的策略项目中,我们可以指定什么用户可以在网域中添加工作站。默认状态下,在域控制器上经过身份验证的用户,有权限将计算机添加到域,这个动作可以使得该验证帐户域中最多可创建 10 个计算机帐户。
此动作在域中添加计算机帐户,允许计算机加入基于 Active Directory 的网络。例如,在域中添加工作站后,该工作站能够识别 Active Directory 中已有的帐户和组。
这个10次的设置是可以更改的。以域管理员身份执行 adsiedit.msc (此工具存在于windows安装光盘 Support\Tools 下的 support tools 中),展开 Domain NC 节点。选择 "DC=" 的对象,右键点击选择属性。在其属性下拉列表中选择 ms-DS-MachineAccountQuota 进行编辑,此设置项的数值决定了域验证帐户有权限加入计算机的数目。相关信息请参考: 251335 Domain Users Cannot Join Workstation or Server to a Domain
但对于在 Active Directory Computers容器上有“创建计算机对象”权限的用户,则不受此创建 10 个计算机帐户的限制。在授权OU管理员管理计算机帐户的时候,我们就可以这样作,一方面在OU下作出委派的授权动作,同时可以在Computers容器上添加该帐户创建计算机对象的权限,这样此帐户便可以自行添加计算机了 。
此动作在域中添加计算机帐户,允许计算机加入基于 Active Directory 的网络。例如,在域中添加工作站后,该工作站能够识别 Active Directory 中已有的帐户和组。
这个10次的设置是可以更改的。以域管理员身份执行 adsiedit.msc (此工具存在于windows安装光盘 Support\Tools 下的 support tools 中),展开 Domain NC 节点。选择 "DC=" 的对象,右键点击选择属性。在其属性下拉列表中选择 ms-DS-MachineAccountQuota 进行编辑,此设置项的数值决定了域验证帐户有权限加入计算机的数目。相关信息请参考: 251335 Domain Users Cannot Join Workstation or Server to a Domain
但对于在 Active Directory Computers容器上有“创建计算机对象”权限的用户,则不受此创建 10 个计算机帐户的限制。在授权OU管理员管理计算机帐户的时候,我们就可以这样作,一方面在OU下作出委派的授权动作,同时可以在Computers容器上添加该帐户创建计算机对象的权限,这样此帐户便可以自行添加计算机了 。
另外,通过“域中添加工作站”的方式创建的计算机帐户将“域管理员”看作该计算机帐户所有者,而通过计算机容器权限方式创建的计算机帐户则将创建者看作计算机帐户的所有者。如果用户既有容器的权限,又有“将工作站添加到域”的用户权利,则将基于计算机容器权限而非用户权利添加计算机。
登录到本机的过程
1、用户首先按Ctrl+Alt+Del组合键。
2、winlogon检测到用户按下SAS键,就调用GINA,由GINA显示登录对话框,以便用户输入帐号和密码。
3、用户输入帐号和密码,确定后,GINA把信息发送给LSA进行验证。
4、在用户登录到本机的情况下,LSA会调用msv1_0.dll这个验证程序包,将用户信息处理后生成密钥,同SAM数据库中存储的密钥进行对比。
5、如果对比后发现用户有效,SAM会将用户的SID(Security Identifier——安全标识),用户所属用户组的SID,和其他一些相关信息发送给LSA。
6、LSA将收到的SID信息创建安全访问令牌,然后将令牌的句柄和登录信息发送给winlogon.exe。
7、winlogon.exe对用户登录稍作处理后,完成了整个登录过程。
登录到域的过程
登录到域的验证过程,对于不同的验证协议也有不同的验证方法。如果域控制器是Windows NT 4.0,那么使用的是NTLM验证协议,其验证过程和前面的“登录到本机的过程”差不多,区别就在于验证帐号的工作不是在本地SAM数据库中进行,而是在域控制器中进行;而对于Windows2000和Windows2003域控制器来说,使用的一般为更安全可*的Kerberos v5协议。通过这种协议登录到域,要向域控制器证明自己的域帐号有效,用户需先申请允许请求该域的TGS(Ticket-Granting Service——票据授予服务)。获准之后,用户就会为所要登录的计算机申请一个会话票据,最后还需申请允许进入那台计算机的本地系统服务。
其过程如下:
1、用户首先按Ctrl+Alt+Del组合键。
2、winlogon检测到用户按下SAS键,就调用GINA,由GINA显示登录对话框,以便用户输入帐号和密码。
3、用户选择所要登录的域和填写帐号与密码,确定后,GINA将用户输入的信息发送给LSA进行验证。
4、在用户登录到本机的情况下,LSA将请求发送给Kerberos验证程序包。通过散列算法,根据用户信息生成一个密钥,并将密钥存储在证书缓存区中。
5、Kerberos验证程序向KDC(Key Distribution Center——密钥分配中心)发送一个包含用户身份信息和验证预处理数据的验证服务请求,其中包含用户证书和散列算法加密时间的标记。
关于本地缓存登陆 和 域用户将计算机加入域的问题及登录过程- -
6、KDC接收到数据后,利用自己的密钥对请求中的时间标记进行解密,通过解密的时间标记是否正确,就可以判断用户是否有效。
7、如果用户有效,KDC将向用户发送一个TGT(Ticket-Granting Ticket——票据授予票据)。该TGT(AS_REP)将用户的密钥进行解密,其中包含会话密钥、该会话密钥指向的用户名称、该票据的最大生命期以及其他一些可能需要的数据和设置等。用户所申请的票据在KDC的密钥中被加密,并附着在AS_REP中。在TGT的授权数据部分包含用户帐号的SID以及该用户所属的全局组和通用组的SID。注意,返回到LSA的SID包含用户的访问令牌。票据的最大生命期是由域策略决定的。如果票据在活动的会话中超过期限,用户就必须申请新的票据。
8、当用户试图访问资源时,客户系统使用TGT从域控制器上的Kerberos TGS请求服务票据(TGS_REQ)。然后TGS将服务票据(TGS_REP)发送给客户。该服务票据是使用服务器的密钥进行加密的。同时,SID被Kerberos服务从TGT复制到所有的Kerberos服务包含的子序列服务票据中。
9、客户将票据直接提交到需要访问的网络服务上,通过服务票据就能证明用户的标识和针对该服务的权限,以及服务对应用户的标识。
1、用户首先按Ctrl+Alt+Del组合键。
2、winlogon检测到用户按下SAS键,就调用GINA,由GINA显示登录对话框,以便用户输入帐号和密码。
3、用户输入帐号和密码,确定后,GINA把信息发送给LSA进行验证。
4、在用户登录到本机的情况下,LSA会调用msv1_0.dll这个验证程序包,将用户信息处理后生成密钥,同SAM数据库中存储的密钥进行对比。
5、如果对比后发现用户有效,SAM会将用户的SID(Security Identifier——安全标识),用户所属用户组的SID,和其他一些相关信息发送给LSA。
6、LSA将收到的SID信息创建安全访问令牌,然后将令牌的句柄和登录信息发送给winlogon.exe。
7、winlogon.exe对用户登录稍作处理后,完成了整个登录过程。
登录到域的过程
登录到域的验证过程,对于不同的验证协议也有不同的验证方法。如果域控制器是Windows NT 4.0,那么使用的是NTLM验证协议,其验证过程和前面的“登录到本机的过程”差不多,区别就在于验证帐号的工作不是在本地SAM数据库中进行,而是在域控制器中进行;而对于Windows2000和Windows2003域控制器来说,使用的一般为更安全可*的Kerberos v5协议。通过这种协议登录到域,要向域控制器证明自己的域帐号有效,用户需先申请允许请求该域的TGS(Ticket-Granting Service——票据授予服务)。获准之后,用户就会为所要登录的计算机申请一个会话票据,最后还需申请允许进入那台计算机的本地系统服务。
其过程如下:
1、用户首先按Ctrl+Alt+Del组合键。
2、winlogon检测到用户按下SAS键,就调用GINA,由GINA显示登录对话框,以便用户输入帐号和密码。
3、用户选择所要登录的域和填写帐号与密码,确定后,GINA将用户输入的信息发送给LSA进行验证。
4、在用户登录到本机的情况下,LSA将请求发送给Kerberos验证程序包。通过散列算法,根据用户信息生成一个密钥,并将密钥存储在证书缓存区中。
5、Kerberos验证程序向KDC(Key Distribution Center——密钥分配中心)发送一个包含用户身份信息和验证预处理数据的验证服务请求,其中包含用户证书和散列算法加密时间的标记。
关于本地缓存登陆 和 域用户将计算机加入域的问题及登录过程- -
6、KDC接收到数据后,利用自己的密钥对请求中的时间标记进行解密,通过解密的时间标记是否正确,就可以判断用户是否有效。
7、如果用户有效,KDC将向用户发送一个TGT(Ticket-Granting Ticket——票据授予票据)。该TGT(AS_REP)将用户的密钥进行解密,其中包含会话密钥、该会话密钥指向的用户名称、该票据的最大生命期以及其他一些可能需要的数据和设置等。用户所申请的票据在KDC的密钥中被加密,并附着在AS_REP中。在TGT的授权数据部分包含用户帐号的SID以及该用户所属的全局组和通用组的SID。注意,返回到LSA的SID包含用户的访问令牌。票据的最大生命期是由域策略决定的。如果票据在活动的会话中超过期限,用户就必须申请新的票据。
8、当用户试图访问资源时,客户系统使用TGT从域控制器上的Kerberos TGS请求服务票据(TGS_REQ)。然后TGS将服务票据(TGS_REP)发送给客户。该服务票据是使用服务器的密钥进行加密的。同时,SID被Kerberos服务从TGT复制到所有的Kerberos服务包含的子序列服务票据中。
9、客户将票据直接提交到需要访问的网络服务上,通过服务票据就能证明用户的标识和针对该服务的权限,以及服务对应用户的标识。
转载于:https://blog.51cto.com/bluepig/108639