常见问题解答

本部分列出了在部署和运行软件代理期间可能会遇到的一些问题。

常见问题解答

日志文件:

日志文件存储在 <install-location>/logs 或 <install-location>/log 文件夹。日志文件通过 Cisco Secure Workload 服务进行监控和轮换。

Agent 部署

Linux

:当命令无法安装代理并显示以下错误时,
rpm -Uvh tet-sensor-1.101.2-1.el6-dev.x86_64.rpm
我该怎么办:

   error: cannot create transaction lock on /var/lib/rpm/.rpm.lock (Permission denied).

:如果您没有安装代理的适当权限,请切换到根权限或使用 sudo 来安装代理。

:运行“sudo rpm -Uvh tet-sensor-1.0.0-121.1b1bb546.el6-dev.x86_64.rpm”并遇到以下错误时,会发生什么情况:


   Preparing...              ########################################### [100%]
   which: no lsb_release in (/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin)
   error: %pre(tet-sensor-site-1.0.0-121.1b1bb546.x86_64) scriptlet failed, exit status 1
   error:   install: %pre scriptlet failed (2), skipping tet-sensor-site-1.0.0-121.1b1bb546

:系统不符合安装代理的要求。在这种特定情况下,未安装 lsb_release 工具。

有关详细信息,请参阅软件代理部署标签部分,并安装所需的依赖关系。

:运行“sudo rpm -Uvh tet-sensor-1.0.0-121.1b1bb546.el6-dev.x86_64.rpm”并遇到以下错误时,会发生什么情况:


  Unsupported OS openSUSE project
  error: %pre(tet-sensor-1.101.1-1.x86_64) scriptlet failed, exit status 1
  error: tet-sensor-1.101.1-1.x86_64: install failed
  warning: %post(tet-sensor-site-1.101.1-1.x86_64) scriptlet failed, exit status 1

:您的操作系统不支持运行软件代理(在此特定情况下,“openSUSE 项目”是不支持的平台)。

有关详细信息,请参阅“软件代理部署标签”部分。

:在我安装了所有依赖关系并以适当权限运行安装程序后,没有出现任何错误。如何知道代理已安装成功?

:要在安装代理后验证是否安装成功,请运行以下命令:


$ ps -ef | grep -e csw-agent -e tet-
root     14158     1  0 Apr03 ?        00:00:00 csw-agent
root     14160 14158  0 Apr03 ?        00:00:00 csw-agent watch_files
root     14161 14158  0 Apr03 ?        00:00:03 csw-agent check_conf
root     14162 14158  0 Apr03 ?        00:01:03 tet-sensor -f conf/.sensor_config
root     14163 14158  0 Apr03 ?        00:02:38 tet-main --sensoridfile=./sensor_id
root     14164 14158  0 Apr03 ?        00:00:22 tet-enforcer --logtostderr
tet-sen+ 14173 14164  0 Apr03 ?        00:00:21 tet-enforcer --logtostderr
tet-sen+ 14192 14162  0 Apr03 ?        00:07:23 tet-sensor -f conf/.sensor_config

您必须看到 csw-agent 的三个条目,以及 tet-sensor 的至少两个条目。如果服务未运行,请确保以下目录可用,否则表明安装失败。

  • /usr/local/tet(适用于大多数 Linux 发行版)

  • /opt/cisco/tetration(适用于 AIX、Ubuntu)

  • /opt/cisco/secure-workload(适用于 Solaris、Debian)

Windows 的 ISE 安全评估代理

:运行 PowerShell 代理安装程序脚本时,我收到以下错误之一:

  1. 基础连接已关闭:接收时发生意外错误。

  2. 客户端和服务器无法通信,因为它们没有共同的算法

:这很可能是因为主机和服务器配置的 SSL/TLS 协议不匹配所致。可以使用以下命令检查 SSL/TLS 版本:

[Net.ServicePointManager]::SecurityProtocol
要设置与服务器匹配的 SSL/TLS,可以使用以下命令(请注意,这并非永久性更改,只是当前 PowerShell 会话的临时更改):

[Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]’Ssl3,Tls,Tls11,Tls12’
:从下载的捆绑包运行 MSI 安装程序时,收到以下错误:

This installation package could not be opened. Verify that the package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer package.
:确保 C:\Windows\Installer 路径存在。如果是从命令行运行 MSI 安装程序,请确保在指向 MSI 文件时不包含相对路径。正确语法示例:

msiexec /i “TetrationAgentInstaller.msi” /l*v “msi_install.log” /norestart

:我发现如果底层 NIC 是 Nutanix VirtIO 网络驱动程序,则 Windows 传感器软件无法升级。

:在启用了接收分段合并的情况下,Npcap 0.9990 与 Nutanix VirtIO 网络驱动程序 1.1.3 之前的版本之间存在不兼容问题。

此问题的解决方法是将 Nutanix VirtIO 网络驱动程序升级到版本 1.1.3 或更高版本。

:我安装了 Windows 传感器。传感器似乎未注册,并且 sensor_id 文件包含以下内容:uuid-invalid-platform

:对于 Windows,PATH 变量中可能没有 system32。检查 PATH 中是否有 system32,如果没有,则运行以下命令:

set PATH=%PATH%;C:\Windows\System32\

:在 Windows 节点上,我没有收到来自 Kubernetes Pod 的网络流。

:要验证所需的会话是否正在运行,以便从 Windows 节点上的 Kubernetes Pod 捕获流,请执行以下操作:

  1. 使用管理权限运行 cmd.exe

  2. 运行以下命令:logman query -ets

    确保以下会话正在运行:

    • CSW_MonNet:捕获网络流

    • CSW_MonHCS:监控 Pod 的创建

    • CSW_MonNat:监控 NAT 的流

Kubernetes

如果在 Kubernetes 守护进程集安装期间安装程序脚本失败,可能有很多原因。

:是否可以从节点访问 Docker 注册表服务映像?

:调试从思科 Cisco Secure Workload 集群提取映像的集群的直接或 HTTPS 代理问题

:容器运行时是否会报告 SSL/TLS 不安全错误?

:验证所有 Kubernetes 节点上是否已在容器运行时的适当位置安装了 Cisco Secure Workload HTTPS CA 证书。

:映像下载失败的 Docker 注册表身份验证和授权?

:在每个节点上,尝试使用 Helm 图表创建的密钥中的 Docker 拉取密钥手动从守护进程集规范中的注册表 URL 提取映像。如果手动映像提取也失败,则需要从 Cisco Secure Workload 集群注册表身份验证服务提取日志,以进一步调试问题。

:在 Cisco Secure Workload 设备内部托管的 Kubernetes 集群是否正常?

:检查集群的服务状态页面,确保所有相关服务均正常运行。从探索页面运行 dstool 快照并检索生成的日志。

:Docker 映像生成器后台守护程序是否正在运行?

:从 dstool 日志验证构建后台守护程序是否正在运行。

:构建 Docker 映像的作业是否会失败?

:从 dstool 日志验证是否未构建映像。Docker 构建 Pod 日志可用于调试构建工具包构建过程中的错误。执行协调器日志还可用于进一步调试构建失败。

:创建 Helm 图表的作业是否失败?

:从 dstool 日志验证是否未构建 Helm 图表。执行协调器日志将包含 Helm 构建作业的输出,可用于调试 Helm 图表构建作业失败的确切原因。

:安装 bash 脚本已损坏?

:尝试再次下载安装 bash 脚本。bash 脚本包含其附加的二进制文件数据。如果使用文本编辑器以任何方式编辑 bash 脚本或将其保存为文本文件,二进制文件数据中的特殊字符可能会被文本编辑器混淆或修改。

:Kubernetes 集群配置 - 变体和风格过多,我们支持经典 K8。

:如果客户运行的是 Kubernetes 的变体,则在部署的不同阶段可能存在许多故障模式。对故障阶段进行分类 - kubectl 命令运行失败、Helm 命令运行失败、Pod 映像下载失败、Pod 特权模式选项被拒绝、Pod 映像信任内容签名失败、Pod 映像安全扫描失败、Pod 二进制文件无法运行(架构不匹配)、Pod运行,但 Cisco Secure Workload 服务无法启动,Cisco Secure Workload 服务由于异常的操作环境而启动,但出现运行时错误。

:Kubernetes RBAC 凭证是否失效?

:为了运行特权守护进程集,我们需要 K8s 集群的管理员权限。验证 kubectl 配置文件的默认情景是否指向目标集群和该集群的管理员等效用户。

:Busybox 映像是否可从所有集群节点获取或下载?

:修复连接问题,并手动测试是否可以下载 Busybox 映像。Pod 规范中使用的 busybox 版本必须在所有集群节点上可用(预先设定种子)或可下载。

:安装过程中出现 API 服务器和 etcd 错误或一般超时?

:由于 Kubernetes 集群中所有节点上的守护进程集 Pod 实例化,集群上的 CPU/磁盘/网络负载可能会突然激增。这在很大程度上取决于客户的特定安装详细信息。由于过载,安装过程(在所有节点上提取并写入磁盘的映像)可能需要太长时间,或者 Kubernetes API 服务器或 Cisco Secure Workload Docker 注册表终端或(如已配置)代理服务器临时过载。短暂等待所有节点上的镜像提取完成,Kubernetes 集群节点上的 CPU/磁盘/网络负载减少后,再次重试安装脚本。来自 Kubernetes 控制平面的 API Server 和 etcd 错误表明,Kubernetes 控制平面节点可能配置不足,或受到活动突然激增的影响。

Cisco Secure Workload 代理在运行时遇到运行时问题?

:如果 Pod 已正确部署且代理已开始运行但遇到运行时问题,请参阅“Linux 代理故障排除”部分。Kubernetes 部署成功安装并启动 Pod 后,故障排除步骤相同。

异常类型

以下是使用和管理 Cisco Secure Workload 代理时工作流程中最常见的问题。

代理不活动

代理已停止检查集群服务。出现这种情况有多种原因:

  • 主机可能已关闭

  • 网络连接已被防火墙规则中断或阻止

  • 该代理服务已停止

在所有平台上验证以下内容:

  • 验证主机是否处于活动状态且运行正常

  • 验证代理服务已启动且正在运行

  • 验证与集群的网络连接是否正常

升级失败

代理升级失败。这可能由少数情况触发,例如:

  • 签入脚本尝试下载软件包时找不到软件包 - 无法解压升级软件包或无法验证软件包中的安装程序。

  • 安装过程因操作系统问题或依赖关系而失败。

Windows

  • 缺少 CA 根证书:证书问题

  • 如果代理最初是使用 MSI 安装软件包手动安装的,请检查 Windows 版本是否与用户指南中支持的平台列表匹配:检查当前是否支持平台

  • 检查以确保已为 Windows Installer 操作正确配置操作系统:Windows Installer Issues

  • 确保主机上有足够的可用磁盘空间

Linux

  • 如果自上次安装代理以来已升级主机操作系统,请验证当前版本是否与用户指南中支持的平台列表匹配:检查当前是否支持平台

  • 确保自上次安装以来所需的依赖关系未发生任何更改。您可以使用 –no-install 选项来运行代理安装程序脚本,以重新验证这些依赖关系。

  • 确保主机上有足够的可用磁盘空间

AIX

  • 确保自上次安装以来所需的依赖关系未发生任何更改。您可以使用 –no-install 选项来运行代理安装程序脚本,以重新验证这些依赖关系。

  • 确保主机上有足够的可用磁盘空间

转换失败

当前代理类型与所需的代理类型不匹配,并且转换尝试已超时。当代理执行 check_in 下载软件包或 wss 服务未能向代理推送 convert_commnad 时,可能就会出现通信问题。

在所有平台上,验证当前版本和代理类型是否与用户指南中支持的平台列表匹配:检查平台当前是否受支持

转换功能

并非所有代理都支持将代理从一种类型(例如深度可视性)转换为另一种类型(例如执行)。如果无法执行转换的代理需要转换,则会报告异常。

策略未同步

代理上次报告的当前策略 (NPC) 版本与集群上生成的当前版本不一致。造成这种情况的原因可能是代理和集群之间的通信错误、代理未能通过本地防火墙执行策略或代理执行服务未运行。

Windows

  • 如果执行模式为 WAF,请验证主机上不存在会阻止防火墙启用的 GPO,从而添加规则(关闭“保留规则”)或设置默认操作:GPO 配置

  • 验证主机和集群之间是否存在连接:SSL 故障排除

  • 验证生成的规则计数是否小于 2000

  • 验证 WindowsAgentEngine 服务是否正在运行:sc query windowsagentengine

  • 验证是否有可用的系统资源

Linux

  • 使用 iptablesipset 命令来验证 iptables 和 ipset 是否存在

  • 验证主机和集群之间是否存在连接:SSL 故障排除

  • 验证 tet-enforcer 进程是否正在运行:ps -ef | grep tet-enforcer

AIX

  • 使用 ipf -V 命令验证 ipfilter 是否已安装并正在运行

  • 验证主机和集群之间是否存在连接:SSL 故障排除

  • 验证 tet-enforcer 进程是否正在运行:ps -ef | grep tet-enforcer

流量导出

数据包捕获开启

如果 Cisco Secure Workload 代理无法打开 pcap 设备来捕获流,则您会在代理日志中看到错误。成功打开 Pcap 设备将报告如下:

Windows 日志:C:\Program Files\Cisco Tetration\Logs\TetSen.exe.log
I0609 15:25:52.354 24248 Started capture thread for device <device_name>
I0609 15:25:52.354 71912 Opening device {<device_id>}
Linux 日志:/usr/local/tet/logs/tet-sensor.log
I0610 03:24:22.354 16614 Opening device <device_name>
[2020/06/10 03:24:23:3524] NOTICE: lws_client_connect_2: <device_id>: address 172.29.
˓→136.139

HTTPS 连接

代理与集群之间的连接在外部被阻止,因此无法传送流和其他系统信息。这是由于网络防火墙、SSL 解密服务或主机上的第三方安全代理存在一个或多个配置问题造成的。

  • 如果代理和集群之间存在已知的防火墙或 SSL 解密安全设备,请确保允许与所有 Cisco Secure Workload 收集器和 VIP IP 地址的通信。对于本地集群,收集器列表将在 Cisco Secure Workload Web 界面左侧导航栏中的故障排除 (Troubleshoot) > 虚拟机 (Virtual Machines) 下列出。查找 collectorDatamover-*。对于 Cisco Secure Workload 云,您的门户中将列出所有需要允许的 IP 地址。

  • 为了帮助确定是否存在 SSL 解密,可使用 openssl s_client 来建立连接并显示返回的证书。添加到证书链中的任何其他证书都将被代理的本地 CA 拒绝。SSL 故障排除



    通常,用于更新“流量导出异常状态”的服务每 5 分钟运行一次。由于代理的状态更新是以 5000 次为一小批量执行的,因此持续时间可能会有所不同。因此,当集群中的代理较少时,更新速度会更快。当代理数量较多时,更新时间最长可达 70 分钟。

    在对数据库中的代理记录进行初步排序后,集群和代理就会变得稳定,最终,更新间隔会越来越小,一致性也会越来越好。


Windows 证书问题

MSI 安装程序的证书问题

MSI 安装程序使用代码签名证书进行签名:

对于 MSI 安装程序,版本 3.6.x 及更高版本和 3.5.1.31 及更高版本

  • 分支证书:Cisco Systems, Inc

  • 中间证书:DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1

  • 根证书:DigiCert Trusted Root G4

对于 MSI 安装程序,早期版本

  • 分支证书:Cisco Systems, Inc

  • 中间证书:Symantec Class 3 SHA256 Code Signing CA

  • 根证书:VeriSign Class 3 Public Primary Certification Authority - G5

它使用时间戳证书:

对于 MSI 安装程序,版本 3.6.x 及更高版本和 3.5.1.31 及更高版本

  • 分支证书:Symantec SHA256 TimeStamping Signer - G3

  • 中间证书:Symantec SHA256 TimeStamping CA

  • 根证书:VeriSign Universal Root Certification Authority

对于 MSI 安装程序,早期版本

  • 分支证书:Symantec SHA256 Timestamping Signer - G2

  • 中间证书:Symantec SHA256 Timestamping CA

  • 根证书:VeriSign Universal Root Certification Authority

如果 MSI 安装程序的数字签名无效,则 Windows 传感器安装或升级将失败。以下情况时数字签名无效:

  • MSI 安装程序签名根证书或 MSI 安装程序时间戳根证书不在“受信任的根证书颁发机构”存储区内

  • MSI 安装程序签名根证书或 MSI 安装程序时间戳根证书过期或被撤销。

问题

解决方法

代理安装可能会失败,TetUpdate.exe.log 中会出现以下错误:“Msi signature is not trusted. 0x800b0109"

  • 从命令提示符运行命令 certmgr

  • 检查 MSI 安装程序签名根证书或 MSI 安装程序时间戳根证书是否在不受信任的证书 (Untrusted Certificates) 存储区中。

  • 将其移至受信任的根证书颁发机构 (Trusted Root Certification Authority) 存储区。

Windows 传感器升级失败,TetUpdate.exe.log 中出现以下错误:“Msi signature is not trusted. 0x800B010C"

证书已被其颁发者明确撤销。

  • 从命令提示符运行命令 certmgr

  • 检查 MSI 安装程序签名根证书或 MSI 安装程序时间戳根证书是否在不受信任的证书 (Untrusted Certificates) 存储区中。

  • 将其复制到受信任的根证书颁发机构 (Trusted Root Certification Authority) 存储区。

Windows 传感器升级失败,TetUpdate.exe.log 中出现以下内容:“Msi signature is not trusted. 0x80096005"

  • 从命令提示符运行命令 certmgr

  • 检查 MSI 安装程序签名根证书或 MSI 安装程序时间戳根证书是否在“受信任的根证书颁发机构”存储区内

如果证书缺失,请从其他计算机导入证书。

要导入证书,请执行以下步骤:

首先从其中一个工作服务器导出 VeriSign 通用根证书颁发机构的证书。请按照以下步骤操作:

  • 从命令提示符运行命令 certmgr

  • 右键点击“受信任的根证书颁发机构”(Trusted Root Certification Authorities) 下的“VeriSign 通用根证书颁发机构”(VeriSign Universal Root Certification Authority) 证书,然后转到“所有任务导出”(All tasksExport)。

  • 将导出的证书复制到非工作服务器,然后导入证书。

要导入证书,请执行以下步骤:

首先从其中一个工作服务器导出 VeriSign 通用根证书颁发机构的证书。请按照以下步骤操作:

  • 从命令提示符运行命令 certmgr

  • 右键点击“受信任的根证书颁发机构”(Trusted Root Certification Authorities) 下的证书选项卡,然后转到“所有任务导入”(All tasksImport)。

  • 选择复制的根证书并将其添加到存储库中。

适用于 Windows 2012、Windows 2012 R2、Windows 8、Windows 8.1

问题 1

Windows 代理安装可能会失败,msi_installer.log 中会出现以下错误
CheckServiceStatus : Exception System.InvalidOperationException: Service npcap was not found on computer 
‘.’. —> System.ComponentModel.Win32Exception: The specified service does not exist as an installed service

解决方法

  • 从命令提示符运行命令 certmgr

  • 选中“受信任的根证书颁发机构”(Trusted Root Certification Authority) 存储区中的“DigiCert High Assurance EV Root CA”。

  • 如果证书缺失,请从其他计算机导入证书。

要导入证书,请执行以下步骤:

首先从其中一个工作服务器导出证书“DigiCert High Assurance EV Root CA”。请按照以下步骤操作:

  • 从命令提示符运行命令 certmgr

  • 右键点击“受信任的根证书颁发机构”下的证书“DigiCert High Assurance EV Root CA”,然后转到所有任务导出。

  • 将导出的证书复制到非工作服务器,然后导入证书。

要导入证书,请执行以下步骤:

  • 从命令提示符运行命令 certmgr

  • 右键点击“受信任的根证书颁发机构”(Trusted Root Certification Authorities) 下的证书选项卡,然后转到“所有任务导入”(All tasksImport)。

  • 选择复制的根证书并将其添加到存储库中。

适用于 Windows 2008 R2 系统

问题 1

Windows 代理安装可能会失败,msi_installer.log 中会出现以下错误
CheckServiceStatus : Exception System.InvalidOperationException: Service npcap was not found on
computer ‘.’. —> System.ComponentModel.Win32Exception: The specified service does not exist as an
installed service

解决方法

  • 从命令提示符运行命令 certmgr

  • 选中受信任的根证书颁发机构 (Trusted Root Certification Authority) 存储区中的 DigiCert High Assurance EV Root CA

  • 如果证书缺失,请从其他计算机导入证书。

要导入证书,请执行以下步骤:

首先从其中一个工作服务器导出证书“DigiCert High Assurance EV Root CA”。请按照以下步骤操作:

  • 从命令提示符运行命令 certmgr

  • 右键点击“受信任的根证书颁发机构”下的证书“DigiCert High Assurance EV Root CA”,然后转到所有任务导出。

  • 将导出的证书复制到非工作服务器,然后导入证书。

要导入证书,请执行以下步骤:

  • 从命令提示符运行命令 certmgr

  • 右键点击“受信任的根证书颁发机构”(Trusted Root Certification Authorities) 下的证书选项卡,然后转到“所有任务导入”(All tasksImport)。

  • 选择复制的根证书并将其添加到存储库中。

Windows 主机重命名

场景 1:重命名 Windows 主机后无法查看 IP 地址和 VRF 信息,解决该问题的步骤如下:

  • 从 TaaS UI 中删除条目(使用缺少 IP 地址和 VRF 信息的新主机名)。

  • 从 Windows 主机卸载“Cisco Cisco Secure Workload Agent”,并删除“Cisco Tetration”目录(该目录的路径通常为:“C:Program FilesCisco Tetration”)。

  • 在 Windows 主机上安装“Cisco Cisco Secure Workload Agent”。

按照上述步骤,代理就能成功在 TaaS UI 上注册 IP 地址和 VRF 信息。

场景 2:计划中的 Windows 主机重命名(提前),要遵循的步骤:

  • 从 Windows 主机卸载“Cisco Cisco Secure Workload Agent”,并删除“Cisco Tetration”目录(该目录的路径通常为:“C:Program FilesCisco Tetration”)。

  • 重命名 Windows 主机并重启。

  • 在 Windows 主机上安装“Cisco Cisco Secure Workload Agent”(使用新主机名)。

按照上述步骤进行计划的主机重命名后,代理就会在 TaaS UI 上用新的主机名注册。

检查平台当前是否受支持

Windows 的 ISE 安全评估代理

Linux

AIX

  • 运行命令 uname -a

  • 注意:主要版本与次要版本是相反的

    p7-ops2> # uname -a
    AIX p7-ops2 1 7 00F8AF944C00
  • 在本例中,主机名后的第一个数字是次版本,第二个数字是主版本,即 AIX 7.1 版。将此版本与此处列出的版本进行比较:支持的平台和要求

Windows 安装程序问题

  • 确保存在 C:\Windows\Installer 目录。这不会显示在文件资源管理器中,最简单的验证方法是在 CMD 会话中并运行:dir C:\Windows\Installer

  • 检查 Windows Installer 服务是否未被禁用。它必须设置为手动 (Manual)

  • 检查 Windows Installer 是否未报告其他错误。检查 Windows 日志 (Windows Logs) > 应用 (Application) > 源 (Source) > MsiInstaller 下的 Windows 系统事件日志

必需的 Windows 服务

以下是在禁用时与代理安装问题相关联的服务列表。建议在深度可视性和执行代理的初始安装以及任何升级期间运行这些服务。

表 1. 必需的 Windows 服务

服务

安装目的

设备设置管理器

用于安装 Npcap 过滤器驱动程序的设备驱动程序管理。

设备安装服务

也用于安装 Npcap 过滤器驱动程序。

Windows 安装程序

安装代理 MSI 软件包时需要。

Windows Firewall

对于 WAF 执行模式,此字段为必填项。

应用体验

用于确定系统上的功能可执行文件。



应用体验服务仅适用于 Windows Server 2008、2008R2、2012、2012R2 和 Windows 7 版本。如果禁用,Npcap 安装过程中可能会出现文件锁,从而导致安装失败。


故障排除

Npcap 无法升级(手动升级或通过代理升级)

  • 如果进程当前正在使用 Npcap 库,则 Npcap 有时会无法正确卸载。要对此进行检查,请运行以下命令:

    PS C:\Program Files\Npcap> .\NPFInstall.exe -check_dll
    WindowsSensor.exe, Wireshark.exe, dumpcap.exe
    

如果您看到列出的进程,则必须先将其停止,然后才能继续 Npcap 升级。如果没有进程在使用 Npcap,上述命令将仅显示 <NULL>

Npcap 不会安装

验证 Npcap 是否已完全安装

  1. 检查控制面板 (Control Panel) > 程序 (Programs)功能 (Features),以查看 Npcap 是否列为已安装的应用。

  2. 确保 Npcap 数据包驱动程序已绑定到相关 NIC(存在复选标记)。

  3. 检查是否安装了网络驱动程序。

    C:\Windows\system32>pnputil -e | findstr Nmap
    Driver package provider : Nmap Project
    
  4. 检查驱动程序服务是否已安装并正在运行

    C:\Windows\system32>sc query npcap
    SERVICE_NAME: npcap
             TYPE : 1 KERNEL_DRIVER
             STATE : 4 RUNNING
    
  5. 检查注册表项是否存在(由代理用于验证 Npcap 是否已存在)

    C:\Windows\system32>reg query HKLM\software\wow6432node\npcap
    HKEY_LOCAL_MACHINE\software\wow6432node\npcap
              AdminOnly REG_DWORD 0x1
              WinPcapCompatible REG_DWORD 0x0
             (Default) REG_SZ C:\Program Files\Npcap
  6. 检查已安装的 Npcap 程序文件是否齐全

    C:\Windows\system32>dir "c:\program files\npcap"
     Directory of c:\program files\npcap
    04/29/2020 02:42 PM <DIR> .
    04/29/2020 02:42 PM <DIR> ..
    01/22/2019 08:16 AM 868 CheckStatus.bat
    11/29/2016 03:43 PM 1,034 DiagReport.bat
    12/04/2018 11:12 PM 8,908 DiagReport.ps1
    01/09/2019 09:22 PM 2,959 FixInstall.bat
    04/29/2020 02:42 PM 134,240 install.log
    01/11/2019 08:52 AM 9,920 LICENSE
    03/14/2019 08:59 PM 10,434 npcap.cat
    03/14/2019 08:57 PM 8,657 npcap.inf
    03/14/2019 09:00 PM 74,040 npcap.sys
    03/14/2019 08:57 PM 2,404 npcap_wfp.inf
    03/14/2019 09:00 PM 270,648 NPFInstall.exe
    04/29/2020 02:42 PM 107,783 NPFInstall.log
    03/14/2019 09:01 PM 175,024 Uninstall.exe
             13 File(s) 806,919 bytes
              2 Dir(s) 264,417,628,160 bytes free
  7. 检查 .sys 驱动程序文件是否位于 Windows 驱动程序文件夹中

    C:\Windows\system32>dir "C:\Windows\System32\Drivers\npcap.sys"
    Directory of C:\Windows\System32\Drivers
    03/14/2019 09:00 PM 74,040 npcap.sys
                      1 File(s) 74,040 bytes
    

NPCAP 安装或升级期间的网络连接问题

仅适用于 Windows 2016

如果您在设置中具有第三方 LWF(轻量级过滤器)驱动程序(例如 netmon)或配置了组合适配器,并且在代理部署期间安装了 NPCAP,您可能会遇到

RDP 已重新连接

NetBIOS 服务已重启

类似网络连接问题

这是由 Windows 2016 操作系统中的 BUG 导致的

NIC 组合与 NPCAP 的兼容性问题

组合 NIC 功能基于底层物理 NIC(Intel、Broadcom、Realtek、MS 虚拟适配器等)和组合驱动程序配置(基于交换机、负载均衡或确保您的策略能解决不常见或不经常发生的活动和情况,如故障转移、从备份恢故障转移、在多个 NIC 之间分发数据包的算法)。

某些 NPCAP 版本存在与组合 NIC 的兼容性问题,尤其是在绑定到下面的组合 NIC 期间。

当前使用的 Cisco Secure Workload 传感器软件已使用 Microsoft 支持的 NIC 组合进行测试。
NIC type : Intel(R) 82574L Gigabit Network Connection
Teaming Mode : Switch Independent
Load Balancing Mode: Address Hash
OS : Windows 2012 , Windows 2012 R2, Windows 2016, Windows 2019
NPCAP version: 1.55


Windows 2008R2 不支持 Microsoft 支持的 NIC 组合。


VDI 实例虚拟机不报告网络流

当 NPCAP 服务运行时,TetSensor 服务有时不会捕获克隆虚拟机上的网络流。如果使用 MSI 安装程序安装代理时没有 nostart 标志,或使用 PowerShell 安装程序在虚拟机模板或黄金镜像上安装代理时没有 goldImage 标志,就会出现这种情况。

在这种情况下,Cisco Secure Workload 代理服务将开始在 VM 模板上运行。已安装 NPCAP 并将其绑定到虚拟机模板上的网络堆栈。从虚拟机模板克隆新虚拟机时,NPCAP 未正确绑定到新克隆虚拟机上的网络堆栈。因此,NPCAP 无法捕获网络流。

使用 NPCAP 时的网络性能

据观察,当 Windows TetSensor 服务运行时,网络性能会受到影响。Windows Tet- 传感器服务 (tetsen.exe) 使用 NPCAP 捕获网络流。实施 NPCAP 以捕获网络流以及流向 tetsen.exe 的网络流会影响网络性能。

在安装 tetsensor 后比较网络性能,客户端:Windows 2016

NPCAP 1.55

TetSensor 配置:具有执行模式 WFP 的对话模式

服务器:Windows 2016

NPCAP 1.55

TetSensor 配置:具有执行模式 WFP 的对话模式

运行 cmd : iperf3.exe -c <server_ip> -t 40

表 2. 121071:使用 NPCAP 155 时的网络性能

设置

网络性能

未安装 TetSensor

无 NPCAP

[ ID] 间隔传输带宽

[ 4] 0.00-40.00 秒 18.2 GB 3.90 Gbit/秒发送方

[ 4] 0.00-40.00 秒 18.2 GB 3.90 Gbits/秒接收方

已安装 TetSensor

已安装 NPCAP

[ ID] 间隔传输带宽

[ 4] 0.00-40.00 秒 17.3 GBytes 3.72 Gbits/秒发送方

[ 4] 0.00-40.00 秒 17.3 GB 3.72 Gbits/秒接收方

使用 NPCAP 0.9990 时的网络性能

在安装 tetsensor 后比较网络性能,客户端:Windows 2016

NPCAP 0.9990

TetSensor 配置:具有执行模式 WFP 的对话模式

服务器:Windows 2016

NPCAP 0.9990

TetSensor 配置:具有执行模式 WFP 的对话模式

运行 cmd : iperf3.exe -c <server_ip> -t 40 .. table:: 使用 NPCAP 0.9990 时的网络性能

class 长表

设置

网络性能

已安装 TetSensor

已安装 NPCAP

[ ID] 间隔传输带宽

[ 4] 0.00-40.00 秒 16.3 GB 3.50 Gbit/秒发送方

[ 4] 0.00-40.00 秒 16.3 GBytes 3.50 Gbits/秒接收方



性能可能因安装的 Windows NPCAP 版本、Windows 操作系统和网络配置而异。


操作系统性能和/或稳定性问题

如果 Cisco Secure Workload 软件不支持安装的 NPCAP 版本或 NPCAP 配置,操作系统可能会遇到未知的性能或稳定性问题。

支持的 NPCAP 版本:0.991 和 1.55

GPO 配置

执行策略的代理仅需要使用本地设置或 GPO 启用防火墙。不应设置所有其他 GPO 设置,并将其保留为“未配置”(Not Configured)。

  • 要检查 GPO 设置是否阻止执行,您可以检查 C:\Program Files\Cisco Tetration\Logs\TetEnf.exe.log 日志并搜索以下错误示例:

  • 与“Preserve Rules = No”设置冲突的规则: “组策略中设置了防火墙规则。Cisco Secure Workload 代理无权删除这些”(There are firewall rules set in the Group Policy. Secure Workload agent does not have permission to remove these)

  • 防火墙设置为关闭:“GPO 已为 DomainProfile 禁用防火墙”(GPO has disabled firewall for DomainProfile)

  • 已设置默认操作:“组策略与 DomainProfile 的默认入站操作冲突”(Group Policy has conflicting default inbound action for DomainProfile)

  • 要检查向主机应用了哪些 GPO 策略,请运行 gpresult.exe /H gpreport.html 并打开生成的 HTML 报告。在下面的示例中,如果“保留规则”(Preserve Rules) 设置为“否”(No),则 Cisco Secure Workload 代理防火墙会应用将与执行冲突的入站规则。

代理到集群的通信

Cisco Secure Workload 代理通过多个信道来维护与集群的连接。根据代理的类型,连接数会有所不同。

连接类型

  • WSS:通过端口 443 与集群建立持久性套接字连接

  • 签入:每 15-20 分钟对集群进行一次 HTTPS 调用,以检查当前配置、检查更新以及将代理的活动状态更新到集群。这也会报告升级失败。

  • 流导出:通过端口 443 (TaaS) 或 5640(内部部署)建立持久性 SSL 连接,以将流元数据发送到集群

  • 执行:通过端口 443 (Taas) 或 5660(内部部署)建立持久性 SSL 连接,以获取执行策略并报告执行状态

检查连接状态

迭代 UI 将报告代理处于非活动状态(不再签入)、没有导出的流(在“代理工作负载配置文件”(Agent Workload Profile) 页面上的“统计信息”(Stats) 下))或执行失败。根据错误的情况,您可以检查工作负载上的不同日志,以帮助确定问题的根源。

非活动代理

Windows 日志:C:\Program Files\Cisco Tetration\Logs\TetUpdate.exe.log

Linux 日志:/usr/local/tet/logs/check_conf_update.log

预期 HTTP 响应代码为 304,表示没有配置更改。错误代码 = 2 也是预期值。任何其他 HTTP 响应代码都表示与 Cisco Secure Workload 集群上的 WSS 服务存在通信问题。

Tue 06/09/2020 17:25:25.08 check_conf_update: "curl did not return 200 code, it's 304,
˓→ exiting"
Tue 06/09/2020 17:25:25.08 check_conf_update: "error code after running check_conf_
˓→update = 2"
  • 304 预期值,无配置更改。签入成功

  • 401 注册不成功,缺少激活密钥 (TaaS)

  • 403 代理已注册到具有相同 UUID 的集群

  • 000 表示 SSL 连接存在问题。curl 无法访问 WSS 服务器,或者证书存在问题。请参阅 SSL 故障排除:SSL 故障排除

没有导出的流

Windows 日志:C:\Program Files\Cisco Tetration\Logs\TetSen.exe.log

Linux 日志:/usr/local/tet/logs/tet-sensor.log

以下信息表示已成功连接到 WSS

cfgserver.go:261] config server: StateConnected, wss://<config_server_ip>:443/wss/
˓→<sensor_id>/forensic, proxy:

以下信息表示已成功连接到收集器

collector.go:258] next collector: StateConnected, ssl://<collector_ip>>:5640

如果连接到 WSS 或收集器时出错,请检查防火墙配置或验证代理与 Cisco Secure Workload之间是否正在发生任何 SSL 解密。请参阅:SSL 故障排除

未能执行策略

Windows 日志:C:\Program Files\Cisco Tetration\Logs\TetEnf.exe.log

Linux 日志:/usr/local/tet/logs/tet-enforcer.log

ssl_client.cpp:341] Successfully connected to EFE server

如果连接到 EFE 服务器时出错,请检查防火墙配置或验证代理与 Cisco Secure Workload之间是否正在发生任何 SSL 解密。请参阅:SSL 故障排除

代理通信概述

Cisco Secure Workload 代理使用 TLS 来保护与 Cisco Secure Workload 云 SaaS 服务器的 TCP 连接。这些连接分为三个不同的通道。

  • 代理 -> 端口 TCP/443 (TLS) (sensorVIP) 上的思科 Cisco Secure Workload SaaS 控制通道

    这是一个低容量控制通道,允许代理向 Cisco Secure Workload 注册,并且还处理配置推送和软件升级通知。

  • 代理 -> 思科 Cisco Secure Workload TCP/443 (TLS) 上的 SaaS 流数据(收集器)

    流数据是提取的流元数据信息;数据将一次发送到一组 16 个 IP 地址。第二组 IP 地址用于备用设备。这大约是实际服务器流量的 1-5%。

  • 代理 -> Cisco Cisco Secure Workload TCP/443 (TLS) (efe) 上的 SaaS 执行数据

    执行数据通道是一个低容量控制通道,用于将策略推送到传感器,并收集执行统计信息。

传感器根据随代理安装的本地 CA 验证来自 Cisco Secure Workload 云控制、数据和执行服务器的 TLS 证书。由于不使用其他 CA,因此发送到代理的任何其他证书都将导致验证失败,并且代理将无法连接。这将导致代理无法注册、签入、发送流或接收执行策略。

配置代理通信的 IP 流量

大多数情况下,典型的配置是在代理(工作流程)和 Cisco Secure Workload SaaS 之间设置边界防火墙和可能的代理。

每个客户(租户)都会被分配到一个特定的 SaaS 集群。您可以在管理 (Manage) > 服务设置 (Service Settings) > IP 地址 (IP Addresses) > 服务 IP (Service IPs) 下找到该集群的 IP 地址。。

在配置防火墙或代理时,应允许以下 IP。

  • 允许通过 TLS/HTTPS 的出站端口 443。

  • 如果使用的是解密代理,请为这些 IP 配置代理绕行和 SSL/TLS 绕行。

  • 如果使用的是透明代理,则必须路由特定 SaaS IP 地址并配置绕行规则。代理无法执行自动 HTTPS 重定向。



确保出站防火墙规则允许流量流向目标元数据收集器 IP。




现在,您可以在用户界面上编辑出站网关 IP 地址。此功能可将允许的元数据流量从工作负载发送到目标。


大多数情况下,典型的配置是在代理(工作流程)和 Cisco Secure Workload TaaS 之间设置边界防火墙和可能的代理。



Cisco Secure Workload 会在载入期间收集网关/NAT IP 信息,并在创建租户时自动添加信息。如果您在门户中添加新的 IP 地址或更改 IP 地址,这些更改需要 Cisco Secure Workload 工作人员的审查和批准。


除了在 TaaS 门户网站上添加网关/NAT IP 地址外,可能还需要对网络进行更多改动,以允许流量出站且不进行修改:

  • 在边界防火墙上允许通过 TLS/HTTPS 出站端口 443。

  • 如果使用的是解密 Web 代理,请在 Web 代理上配置代理绕行和 SSL/TLS 绕行。

  • 如果在数据中心使用透明 Web 代理,则必须路由特定的 SaaS IP 地址并配置绕行规则。传感器是无法执行自动 HTTPS 重定向的连接。

与代理通信的 IP 列表可在 TaaS 门户网站上查看。要添加到防火墙出站配置和代理绕行的 IP 标记为 collector-n、efe-n(仅在部署执行时)和 sensorVIP。通常需要添加 17 到 33 个 IP 用于代理通信,但也可能更多或更少,具体取决于您的 TaaS 配置。

SSL/TLS 连接故障排除

如上一部分所述,配置显式或透明 Web 代理,以绕过 SSL/TLS 解密进行代理通信非常重要。如果没有配置绕行,这些代理可能会尝试解密

SSL/TLS 流量,向代理发送自己的证书。由于代理只使用本地 CA 验证证书,因此这些代理证书会导致连接失败。

症状包括代理无法注册到集群、代理未签入、代理未发送流和/或代理未接收执行配置(如果已启用执行)。



以下故障排除步骤假设使用了默认安装路径。Windows:C:Program FilesCisco Tetration Linux: /usr/local/tet。如果您将代理安装在其他位置,请在说明中替换该位置。


代理日志中会报告 SSL/TLS 连接问题。要验证日志中是否存在 SSL 错误,请针对观察到的相关问题运行以下命令。

注册、签入

Linux

grep "NSS error" /usr/local/tet/log/check_conf_update.log

Windows (PowerShell)

get-content "C:\Program Files\Cisco Tetration\logs\TetUpdate.exe.log" | select-
˓→string -pattern "curl failed SSL peer certificate"

大多数 SSL/TLS 连接问题都发生在初始连接和代理注册期间。发送流需要在尝试连接前完成注册。这里出现的 SSL/TLS 错误是由于允许使用 sensorVIP IP 但不允许使用收集器 IP 所致。

Linux

grep "SSL connect error" /usr/local/tet/log/tet-sensor.log

Windows (PowerShell)

get-content "C:\Program Files\Cisco Tetration\logs\WindowsSensor*.log" | select-
˓→string -pattern "Certificate verification error"

执行 (Enforcement)

Linux

grep "Unable to validate the signing cert" /usr/local/tet/log/tet-enforcer.log

Windows (PowerShell)

get-content "C:\Program Files\Cisco Tetration\logs\WindowsSensor*.log" | select-
˓→string -pattern "Handshake failed"

如果在上述日志检查中发现 SSL 错误,可以使用以下命令验证发送给代理的证书。

显式代理 - 其中代理在 user.cfg 中配置

Linux

curl -v -x http://<proxy_address>:<port> https://<sensorVIP>:443

Windows (PowerShell)

cd "C:\Program Files\Cisco Tetration"
.\curl.exe -kv -x http://<proxy_address>:<port> https://<sensorVIP>:443

透明代理 - 无需 user.cfg 代理配置。它是一个代理,在从代理到互联网的所有 HTTP(S) 流量之间配置。

Linux

openssl s_client -connect <sensorVIP from TaaS Portal>:443 -CAfile /usr/local/tet/
˓→cert/ca.cert

Windows (PowerShell)

cd C:\Program Files\Cisco Tetration
.\openssl.exe s_client -connect <sensorVIP from TaaS Portal>:443 -CAfile cert\ca.cert

您正在 openssl s_client 响应中查找以下内容

Verify return code: 0 (ok)

如果出现错误,请检查证书。证书(链)示例应仅包括以下证书(CN IP 为示例):

证书链

0 s:/C=US/ST=CA/L=San Jose/O=Cisco Systems, Inc./OU=Tetration, Insieme BU/CN=129.146.
˓→155.109
i:/C=US/ST=CA/L=San Jose/O=Cisco Systems, Inc./OU=Tetration Analytics/CN=Customer CA

如果您看到其他证书,则代理和 Cisco Secure Workload 之间可能存在 Web 解密代理。请联系您的安全或网络小组,确认是否已使用“为代理通信配置 IP 流量”部分中列出的 IP 配置了代理绕行。

Windows 2016 服务器上的 Windows 传感器安装脚本失败:可能出现的错误消息“The underlying connection was closed: An unexpected error occurred on a receive.”。可能的原因可能是 PowerShell 中设置的 SSL/TLS 版本。

要检查正在运行的 SSL/TLS 版本,请运行以下命令:

[Net.ServicePointManager]::SecurityProtocol

如果上述命令的输出为:

Ssl3, Tls

然后使用下面的命令更改允许的协议并重试安装:

[Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Ssl3,
˓→Tls,Tls11,Tls12'

代理操作

问:我已成功安装代理,但在“UI 传感器监控”(UI Sensor Monitoring) 页面上没有看到它。

答:代理需要先注册到在集群中运行的后端服务器,然后才能开始运行。如果 UI 页面上未显示代理,很可能是因为注册失败。我们可以从几个方面来了解注册失败的原因:

  • 检查代理与后台服务器之间的连接是否正常

  • 检查 curl 请求是否能正确发送到后端服务器

  • 检查 HAProxy 访问和后端服务器日志,以查看服务器是否收到注册请求

  • 检查日志文件中 curl 请求返回的错误消息

问:代理已安装,我可以在 UI 页面上找到。但是,“软件版本”(SW Ver) 列显示“正在初始化”(initializing),而不是版本字符串。

答:在后端服务器安装并注册初始代理后,该代理还需要 30 分钟来报告其版本。

问:代理已正确升级,但经过很长时间(比如几个小时)后,“软件版本”(SW Ver) 字段仍显示旧版本。

答:代理成功升级后,会尝试发送 curl 请求以报告其当前运行的版本,并在同一请求中检查新版本。由于以下几个原因,请求可能无法到达后端:

  • 请求超时,无法及时获得响应

  • 网络存在问题,代理无法连接到后端服务器

问:我有一个在 RHEL/CentOS-6.x 上运行的代理,它运行正常。我正打算将操作系统升级到 RHEL/CentOS-7.x。升级后,代理还能工作吗?

答:目前,我们不支持升级操作系统的场景,尤其是升级主要版本。要使代理在操作系统升级后正常工作,请执行以下步骤:

  • 卸载现有代理软件

  • 清理所有文件,包括证书

  • 转到 UI,删除代理条目

  • 将操作系统升级到所需版本

  • 在新操作系统上安装代理软件

问:我有一个在 RHEL/CentOS-6.x 上运行的代理,它运行正常。我打算为主机重命名。重命名/重启后,代理是否仍可工作?

答:代理身份是根据主机的唯一性(包括主机名和 BIOS-UUID)计算得出的。更改主机名会更改主机的标识。建议执行以下操作:

  • 卸载现有代理软件

  • 清理所有文件,包括证书

  • 转到 UI,删除旧代理条目

  • 重命名主机并重启

  • 再次安装代理软件

问:在 Windows 主机上,添加/删除/修改规则导致防火墙偏离。如何查找规则?

答: 在检测偏差时,代理会将最近 15 秒的防火墙事件记录到“C:\Windows\System32\config\systemprofile\AppData\Roaming\tet\firewall_events”。导致偏差的规则将在创建为 policy_dev_<policy id>_<timestamp>.txt 的最新文件中找到。

问:我已在 Windows 主机上成功安装代理。为什么我看不到传感器的任何报告流?

答:在 Windows 主机上收集流需要使用 Npcap。成功安装代理后 10 秒,它将安装 Npcap。如果传感器在几分钟后未报告流量,请检查代理和后端服务器是否已连接,以及 Npcap 是否已在 NPCAP 问题上正确安装。

问:我已在 Windows 主机 2008 R2 上成功安装代理。为什么 tetsensor 服务运行时系统时钟会漂移?

答:这是 Go 和 Windows 2008 R2 的已知问题。有关详细信息,请参阅 Golang 和 Win2008 R2

作为 tetsensor 服务一部分运行的进程 tet-main.exe,是使用 Go 1.15 版本构建的。这就是 tetsensor 服务运行时系统时钟漂移的原因。

当 Windows 2008 R2 工作负载配置为使用外部 NTP 服务器或域控制器作为 NTP 服务器时,就会出现此问题。

可能的解决方法:

  1. 定期强制 NTP 同步时钟:w32tm /resync /force

  2. 手动禁用 tet-main.exe。

    • 使用“管理员”权限运行 cmd.exe。

    • 运行 regedit.exe

    • 转到“HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\TetSensor”

    • 双击“ImagePath”

    • 编辑值,删除 tet-main.exe

      在“C:\Program Files\Cisco Tetration\TetSenEngine.exe” TetSensor TetSen.exe “-f sensor_config” tet-main.exe ” ” TetUpdate.exe 之前

      在“C:\Program Files\Cisco Tetration\TetSenEngine.exe”TetSensor TetSen.exe “-f sensor_config”TetUpdate.exe 之后

    • 重启 tetsensor 服务



      每次升级代理后,请禁用 tet-main.exe。


  3. 删除外部 NTP 服务器配置:

    • 运行命令:w32tm /config /update /manualpeerlist: /syncfromflags:manual /reliable:yes

    • 重启 Windows 时间服务 W32Time

要运行代理故障排除工具脚本,请按照以下步骤进行操作:

  1. 以管理员身份打开 Windows (PowerShell)。

  2. 导航至 CSW 安装目录(此目录的默认位置为:“C:\Program Files\Cisco Tetration”)。

  3. 使用以下命令运行脚本:

    .\AgentTroubleshootingTool.ps1 例如,检查代理健康状态,可携带-agentHealth 参数运行该脚本:.\AgentTroubleshootingTool.ps1 -agentHealth