5.11 对PKI和SSO的集成进行故障排错
CCNP安全VPN 642-648认证考试指南(第2版)
和许多验证方案一样,发生问题总是不可避免的。尽管绝大部分的问题是由于用户或者服务器的错误或者配置错误导致的,但是某些问题可能源自ASA的配置错误。尽管对客户端的证书验证进行故障排查可能也需要对外部的证书和PKI的组件进行排查,但是在这里我们只集中探讨因为ASA的内部CA的配置错误所导致的问题。
因为你正在配置和管理CA,因此你将负责向客户端颁发证书、吊销证书、核实证书的有效性和整体的部署工作。拥有或者管理内部CA的一个好处就是你能够直接在设备上对任何证书的问题作故障排查而无需协同第三方共同工作来解决证书问题。
有5个常见的要点可用于对客户端的证书验证作故障排查,图5-20中已经总结出来这些要点,它们可以帮助用户判断出任何特定问题的产生根源在什么地方。
关键步骤1首先检查是否已经在客户端上正确地安装了证书。总之,如果证书未被安装的话,客户端会在页面上收到一个“没有发现证书”的错误并给用户提供一个到相关页面的链接以提醒用户去下载一个证书。
步骤2当你确认客户端的机器已成功地安装证书后,那么检查所安装证书的有效性。如果证书被报告为无效的,那么去检查证书的有效时间,同时也要确保客户端和ASA的时钟是同步的。
步骤3确认证书未被吊销。如果它已经被吊销了(与具体原因有关),你可能需要从ASDM的证书管理窗口中取消吊销,可以在Configuration > Remote Access VPN > Certificate Management > Local Certificate Authority > Manage User Certificates中执行它(也可以在CLI的特权EXEC模式下输入命令crypto ca server unrevoked serial number完成取消证书吊销的工作)。
步骤4如果用户收到了一个不正确的连接配置文件,这可能是由于配置了不正确的证书到连接配置文件的映射。通过Configure > Remote Access VPN >Advanced > Certificate to SSL VPN Connection Profile Maps检查所配置的证书映射规则。
步骤5检查服务器上的AAA配置来判断是否配置了正确的基于证书的验证参数或者这些参数能否配合AAA验证一起工作。
绝大部分与证书有关的错误都可以通过客户端的错误消息或者日志条目所显示的信息来解释错误发生的原因,你也可以察看实时的监控日志(Monitor > Logging > Real-Time Log Viewer)来解释错误原因。你还可以使用debug crypto ca server level命令启动调试功能。debug命令的可选级别可以为1~255的任何一个数值,配置哪个级别与你想收到的信息量有关。例如,对于低级调试,输入255;如想接收少量的详细信息,输入1。
当进行故障排查时,选择默认的debug级别是非常常见的,这是因为它会给用户提供关于一个设备的尽可能多的信息。不过,要记住的重要的一点就是在生产环境中启动debug可能会对所有连接到这个设备的或者穿过这个设备的用户的性能造成影响。
图5-21显示了一个不能正常地访问SSL VPN设备连接时我们收集的一个调试结果。从所示的debug的输出中我们可以看到证书被认为无效的原因是证书已经过了有效期。如果在检查证书文件后发现它的日期依旧是有效的,那么你需要检查ASA设备的日期和时间的设置是否正确。
与证书的方式类似,用户的错误或者服务器的配置或者ASA的配置错误都可能导致SSO发生错误。因为我们现在正在讨论ASA和服务器之间的验证过程,不考虑用户的话,我们可以排除大部分的用户错误(如果用户已成功地登录了SSL VPN)进而对ASA设备或者服务器进行故障排查以查找故障的根源。
产生SSO错误的最常见的一个原因是公司内部使用不同的验证机制。正如之前讨论的,当ASA代表用户被服务器成功地验证后,服务器返回一个验证的cookie,它会被ASA保存作为将来向服务器发出的验证请求。不过,如果这个用户使用一个不同的用户名和口令或者使用一个与ASA上被配置的SSO配置文件不同的验证协议的话,服务器对用户的验证就会失败。不会再对用户提示输入登录凭证。
如果没有将服务器配置为对访问它的资源的用户进行验证的话,同样的事情也会发生。ASA会继续等待验证请求,导致客户端不能够访问它所请求的资源。
为了从CLI对用户的验证问题进行故障排查,有下面这些选项可供选择。
debug webvpn / debug aaa common(针对一般验证)。
debug radius(针对RADIUS验证)。
debug ntdomain(针对域验证)。
debug ldap(针对LDAP验证)。
debug sdi(针对RSA验证)。
debug kerberos(针对Kerberos验证)。
在ASDM的Monitor > Logging > Real-Time Log Viewer窗口内或者在命令行下执行show logging命令,可以找到需要的大量信息来解决问题。除此之外,对用户进行验证而验证结果为失败的服务器通常也含有宝贵的日志信息,利用这些日志信息可以很好地帮助你进行故障排查。
备考任务
在“本书内容结构”中已经提到,对于备考方式你可以进行灵活选择:阅读第22章、阅读附录C(在本书的配套光盘中),以及练习光盘中的考试模拟试题。