简介
本文描述机器访问限制(MAR)遇到的问题,并提供问题的解决方案。
先决条件
随着个人自有设备的增长,系统管理员必须设法只允许公司拥有的资产访问网络的某些部分,这一点越来越重要。本文档中描述的问题涉及如何安全地识别这些关注区域并对它们进行身份验证,而不会中断用户连接。
要求
Cisco建议您具备802.1X知识,以便充分理解本文档。本文档假定读者熟悉用户802.1X身份验证,并重点介绍与使用MAR或更常见的计算机身份验证相关的问题和优势。
使用的组件
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
问题
MAR基本上尝试解决大多数当前和常见的可扩展身份验证协议(EAP)方法所固有的常见问题,即机器身份验证和用户身份验证是独立的、不相关的过程。
用户身份验证是大多数系统管理员熟悉的802.1x身份验证方法。其思想是为每个用户提供凭证(用户名/密码),并且该凭证集代表一个物理人员(它也可以在多人之间共享)。因此,用户可以使用这些凭证从网络中的任何位置登录。
计算机身份验证在技术上相同,但通常不会提示用户输入凭证(或证书);计算机或计算机会自行输入凭证(或证书)。这要求计算机已存储凭据。发送的用户名为host/<MyPCHostname>,前提是计算机将<MyPCHostname>设置为主机名。换句话说,它会发送host/,后跟主机名。
虽然与Microsoft Windows和Cisco Active Directory没有直接关系,但是当计算机加入到Active Directory时,由于计算机主机名已添加到域数据库,并且会协商凭证(默认情况下每30天更新一次)并存储在计算机上,因此可以更轻松地呈现此过程。这意味着可以从任何类型的设备执行计算机身份验证,但如果计算机已加入Active Directory,且凭证对用户保持隐藏,则进行身份验证会更加轻松和透明。
MAR即解决方案
可以说,解决方案是思科访问控制系统(ACS)或思科身份服务引擎(ISE)来完成MAR,但实施之前需要考虑其优缺点。如何实施这一点在ACS或ISE用户指南中描述得最清楚,因此本文档简单介绍了是否考虑该解决方案,以及一些可能的障碍。
优点
MAR的发明是因为用户和机器身份验证是完全分开的。因此,RADIUS服务器无法执行用户必须从公司拥有的设备登录的验证。通过MAR,RADIUS服务器(思科端的ACS或ISE)对给定的用户身份验证强制在X小时(通常为8小时,但可配置)内为同一终端执行有效的计算机身份验证。
因此,如果RADIUS服务器知道计算机凭证,则计算机身份验证成功,通常,如果计算机已加入域,并且RADIUS服务器通过连接到域来验证这一点。完全由网络管理员决定成功的计算机身份验证是否提供完全的网络访问权限,或仅提供受限访问权限;通常,这至少会打开客户端和Active Directory之间的连接,以便客户端可以执行诸如续订用户密码或下载组策略对象(GPO)之类的操作。
如果用户身份验证来自前几个小时未进行计算机身份验证的设备,则即使用户通常有效,用户也会被拒绝。
只有在身份验证有效且从过去几小时内进行了计算机身份验证的终端完成身份验证时,才向用户授予完全访问权限。
缺点
本节介绍使用MAR的缺点。
MAR和Microsoft Windows请求方
MAR的理念是,用户身份验证要成功,不仅必须拥有有效凭证,而且还必须从该客户端记录成功的计算机身份验证。如果出现任何问题,用户将无法进行身份验证。出现的问题是,此功能有时可能会无意中锁定合法客户端,从而强制客户端重新启动以重新获得对网络的访问权限。
Microsoft Windows仅在启动时(当出现登录屏幕时)执行计算机身份验证;用户输入用户凭证后,即执行用户身份验证。此外,如果用户注销(返回到登录屏幕),则会执行新的计算机身份验证。
以下示例场景展示了MAR有时导致问题的原因:
用户X使用通过无线连接连接的笔记本电脑工作了一整天。一天结束后,他只需关闭笔记本电脑并下班即可。这将使笔记本电脑进入休眠状态。第二天,他回到办公室,打开笔记本电脑。现在,他无法建立无线连接。
当Microsoft Windows休眠时,它会拍摄系统当前状态的快照,其中包括登录人员的上下文。用户笔记本电脑的MAR缓存条目在一夜之间过期并被清除。但是,当笔记本电脑通电时,它不会执行计算机身份验证。相反,它会直接进入用户身份验证,因为这是休眠记录的内容。解决此问题的唯一方法是注销用户或重新启动其计算机。
虽然MAR是一个不错的功能,但它有可能会造成网络中断。在您了解MAR的工作方式之前,很难排除这些中断;当您实施MAR时,必须教导最终用户如何正确关闭计算机,并在每天结束时从每台计算机注销。
MAR和各种RADIUS服务器
网络中通常有多台RADIUS服务器用于负载均衡和冗余目的。但是,并非所有RADIUS服务器都支持共享MAR会话缓存。仅ACS 5.4及更高版本以及ISE 2.3及更高版本支持节点之间的MAR缓存同步。在这些版本之前,不可能对一台ACS/ISE服务器执行计算机身份验证,也不能对另一台服务器执行用户身份验证,因为它们彼此之间并不对应。
MAR和有线-无线交换
许多RADIUS服务器的MAR缓存依赖于MAC地址。它只是一个表,其中包含笔记本电脑的MAC地址及其上次成功计算机身份验证的时间戳。这样,服务器就可以知道客户端在过去X小时内是否通过计算机身份验证。
但是,如果您使用有线连接启动笔记本电脑(从而从有线MAC执行计算机身份验证),然后在白天切换至无线连接,会发生什么情况?RADIUS服务器无法关联您的无线MAC地址与您的有线MAC地址,也无法知道您在过去X个小时内已通过计算机身份验证。唯一的方法是注销并让Microsoft Windows通过无线执行其他计算机身份验证。
解决方案
Cisco AnyConnect具有预配置配置配置文件的优势,这些配置文件可触发机器和用户身份验证。但是,会遇到与Microsoft Windows请求方相同的限制,有关计算机身份验证的限制仅发生在注销或重新启动时。
此外,使用AnyConnect版本3.1及更高版本时,可以对EAP-chaining执行EAP-FAST。这基本上是一次身份验证,您同时发送两对凭证,即计算机用户名/密码和用户用户名/密码。因此,ISE可以更轻松地检查两者是否均成功。由于不使用缓存,也不需要检索以前的会话,因此可靠性更高。
当PC启动时,AnyConnect仅发送计算机身份验证,因为无可用的用户信息。但是,用户登录时,AnyConnect会同时发送计算机和用户凭证。 此外,如果断开连接或拔下/更换电缆,计算机和用户凭证再次以单个EAP-FAST身份验证发送,这与不带EAP链的AnyConnect早期版本不同。
EAP-TEAP是长期最佳解决方案,因为它专门用于支持这些类型的身份验证,但截至目前许多OS的本地请求方仍不支持EAP-TEAP