目录

问题

环境

症状

背景信息

问题

- 为什么计算机名或NULL用户名登录访问日志？

- 您如何使用工作站或NULL凭证识别请求，以便稍后进行身份验证免除？

环境

- 思科网络安全设备(WSA) — 所有版本

- 带IP代理的身份验证方案NTLMSSP

- Windows Vista和更新的桌面和移动Microsoft操作系统

症状

WSA会阻止某些用户的请求或意外地执行操作。

访问日志显示计算机名称或NULL用户名和域，而不是用户ID。

问题在以下情况下自行解决：

- 代理超时（代理超时的默认值为60分钟）

- 正在重新启动代理进程(CLI命令> diagnostic > proxy > kick)

- 刷新身份验证缓存(CLI命令> authcache > flushall)

背景信息

在Microsoft操作系统的最新版本中，实际用户不再需要登录，应用程序就可以向Internet发送请求。当WSA收到这些请求并请求进行身份验证时，客户端工作站将无法使用任何用户凭证进行身份验证，而客户端工作站可能会使用计算机的计算机名称来替代。

WSA将获取提供的计算机名称并将其转发到验证该名称的Active Directory(AD)。

使用有效身份验证时，WSA会创建IP代理，将计算机的工作站名称绑定到工作站的IP地址。来自同一IP的进一步请求将使用代理名称，从而使用工作站名称。

由于工作站名称不是任何AD组的成员，请求可能不会触发预期的访问策略，因此会被阻止。问题持续存在，直到代理超时且必须续订身份验证。此时，在实际用户登录且有效用户凭证可用的情况下，将使用此信息创建新的IP代理，并且进一步的请求将与预期的访问策略匹配。

出现的另一种情况是应用程序发送无效凭据（NULL用户名和NULL域）和无效计算机凭据。这被视为身份验证失败，将被阻止；如果启用访客策略，则失败的身份验证被视为“访客”。

工作站名称以$结尾，后跟@DOMAIN，通过在$@的访问日志上使用CLI命令grep ，可以轻松跟踪工作站名称。请参阅以下示例，了解说明。

> grep $@ accesslogs

1332164800.0000 9 10.20.30.40 TCP_DENIED/403 5608 GET http://www.someURL.com

"gb0000d01$@DOMAIN" NONE/- - BLOCK_WEBCAT_11-DefaultGroup-Internet-NONE-NONE-

NONE-NONE <-,-,"-","-",-,-,-,"-","-",-,-,"-",-,"-","-",-,"-","-","-","-","-","-",

0.00,0,-,"-","-"> -

上一行显示已为IP地址10.20.30.40和计算机名gb0000d01$创建的IP代理的示例。

要查找发送计算机名称的请求，必须确定特定IP地址的工作站名称的首次出现。以下CLI命令可实现此目的：

> grep 10.20.30.40 -p accesslogs

搜索工作站名称首次出现的结果。这三个第一个请求通常被识别为NTLM单次单机(NTLMSSP/NTLMSSP)握手，如此处所述，如以下示例所示：

1335248044.836 0 10.20.30.40 TCP_DENIED/407 1733 GET http://SomeOtherURL.com -

NONE/- - OTHER-NONE-DefaultGroup-NONE-NONE-NONE-NONE

<-,-,"-","-",-,-,-,"-","-",-,-,"-",-,"-","-",-,"-","-","-","-","-","-",

0.00,0,-,"-","-"> -

1335248044.839 0 10.20.30.40 TCP_DENIED/407 483 GET http://SomeOtherURL.com -

NONE/- - OTHER-NONE-DefaultGroup-NONE-NONE-NONE-NONE

<-,-,"-","-",-,-,-,"-","-",-,-,"-",-,"-","-",-,"-","-","-","-","-","-",

0.00,0,-,"-","-"> -

1335248044.845 10 10.20.30.40 TCP_DENIED/403 2357 GET http://SomeOtherURL.com

"gb0000d01$@DOMAIN" NONE/- - BLOCK_ADMIN_PROTOCOL_11-DefaultGroup-DefaultGroup-

DefaultGroup-NONE-NONE-NONE

<-,-,"-","-",-,-,-,"-","-",-,-,"-",-,"-","-",-,"-","-","-","-","-","-",

0.00,0,-,"-","-"> -

排除故障时，请确保这些请求针对同一URL，并且记录在非常短的时间间隔内，表明这是自动NTLMSSP握手。

在上例中，对于显式请求，使用HTTP响应代码407（需要代理身份验证）记录上述请求，而使用HTTP响应代码401（未经身份验证）记录透明请求。

AsyncOS 7.5.0及更高版本上提供了一项新功能，您可以在其中为计算机凭证定义不同的替代超时。可以使用以下命令进行配置：

> advancedproxyconfigChoose a parameter group:- AUTHENTICATION - Authentication

related parameters- CACHING - Proxy Caching related parameters- DNS - DNS related

parameters- EUN - EUN related parameters- NATIVEFTP - Native FTP related parameters-

FTPOVERHTTP - FTP Over HTTP related parameters- HTTPS - HTTPS related parameters-

SCANNING - Scanning related parameters- WCCP - WCCPv2 related parameters-

MISCELLANEOUS - Miscellaneous proxy relatedparameters[]> AUTHENTICATION...Enter the

surrogate timeout.[3600]>Enter the surrogate timeout for machine credentials.[10]>.

您可以使用相同步骤检测哪些请求获取发送的NULL凭证，并发现哪些URL或用户代理正在发送无效凭证并免除这些凭证的身份验证。

免除URL身份验证

为防止此请求导致创建虚假代理，必须免除URL身份验证。或者，您可能决定免除发送请求本身的应用程序进行身份验证，确保获得免除身份验证的应用程序请求。通过在WSA的访问日志订阅中的可选自定义字段中添加附加参数%u，可以添加要登录到访问日志的用户代理。在识别用户代理后，它必须免除身份验证。