使用 TeamViewer 策略,可以自动将远程控制会话记录上传到自托管或云托管的 SFTP 存储。存储记录以供以后审查对于质量评估、培训和审计非常有用。本文介绍了如何设置所需的 TeamViewer 策略规则来实现这一点。要了解有关如何启动远程控制会话记录的更多信息,您可以阅读本文。
本文适用于使用 Windows 和 Linux 的 TeamViewer Tensor 许可证持有者。
要配置自动远程控制会话录制上传设置,您必须创建新的或更新现有的 TeamViewer 策略并添加以下策略规则。您可以在策略中组合多个策略规则以实现您的特定目标。将策略应用于所需设备后,配置将生效。在此处了解如何将策略应用于您的设备。
以下指南主要关注将会话录制上传到自定义存储策略规则的设置,该规则提供将录制上传到 SFTP 服务器的功能。还有另外两条规则需要评估,因为它们进一步增强了对录制开始和停止时间的控制。
强制自动录制远程控制会话,一旦应用了策略的设备建立传出连接,它将自动开始录制。如果您想阻止设备前的用户在远程控制会话结束之前停止或暂停录制,您还可以添加禁用停止和暂停会话录制策略规则。无需进一步设置即可添加和启用这两条规则。
当您将“将会话录制上传到自定义存储”规则添加到策略时,需要配置一些必填字段和可选字段,以下段落将更详细地解释这些字段。
必填字段
目前,只有 SFTP 服务器(可托管在本地数据中心或基于云的环境(如 Azure 或 Amazon Web Services)中)才支持作为服务类型。
有两种可用的身份验证类型:
选择您喜欢的选项并验证您的 SFTP 服务器或服务是否支持它。您应该在继续之前配置新帐户及其身份验证,因为接下来的段落需要密码或私钥。
输入应该用于向您的服务器进行身份验证并上传录制的帐户的用户名。指定您的目标 URL,该 URL 必须是针对您的服务器的 SFTP URL,包括应该上传远程控制会话录制的文件夹的路径。建议您将所选帐户的权限最小化,仅授予指定用于上传录音的特定文件夹的写访问权限。
加密密码或加密私钥字段
只有您和上传设备可以安全地访问 SFTP 帐户的凭据,并且需要使用用户定义的证书对密码或私钥进行加密,以安全地传递 SFTP 帐户的凭据。
然后,加密凭据将作为加密密码或加密私钥添加到策略规则中。您需要证书进行加密的原因是,稍后会将其推广到多个设备进行解密。您的 SFTP 服务器不会处理加密凭据,因为 TeamViewer 应用程序会事先对其进行解密。建议在此设置中在您的系统上安装 OpenSSL。
生成证书的方法有很多种,取决于操作系统和所使用的工具。如果正确指定了 x509 证书所需的重要参数,则所有这些都应可行:
如果您想使用自签名证书,则可以使用 openssl req 命令(请在此处查找其文档),将 <CertificateAndKeyName> 替换为您选择的名称:
openssl req -x509 \
-newkey rsa:2048 \
-keyout <CertificateAndKeyName>.pem \
-out <CertificateAndKeyName>.crt \
-addext keyUsage='keyEncipherment, dataEncipherment, keyAgreement' \
-addext extendedKeyUsage='1.3.6.1.4.1.311.80.1'
此命令将生成证书 CRT 和私钥 PEM 文件,它们能够加密和解密数据。这些文件必须转换为 PFX 才能推广到 Windows 设备,这将在后面的段落中解释。
获得证书文件后,您可以通过运行以下命令来验证其密钥参数,将 <CertificateAndKeyName> 替换为您的真实证书,以检查它是否兼容。如果您想验证是否可以使用现有证书或第三方证书,这一点尤其重要:
openssl x509 -text -in <CertificateAndKeyName>.crt
如果密钥生成成功,您可以在终端的输出中看到以下几行。如果它们不存在,则您的凭据的加密和解密将失败。
X509v3 Key Usage: critical
Key Encipherment, Data Encipherment, Key Agreement
X509v3 Extended Key Usage:
1.3.6.1.4.1.311.80.1
您选择的凭据必须使用您的证书加密为加密消息语法 (CMS,您可以在 中阅读更多相关信息)。这可以通过运行 openssl cms 命令来完成(请在找到其文档)。对于以下命令,您还可以指定 以将终端的输出重定向到文件中。
您选择的凭据必须使用您的证书加密为加密消息语法 (CMS,您可以在 RFC 5652 中阅读更多相关信息)。这可以通过运行 openssl cms 命令来完成(请在此处找到其文档)。对于以下命令,您还可以指定 -out <FileName> 以将终端的输出重定向到文件中。
要生成加密密码,您需要将 <Password> 替换为您的 SFTP 服务器帐户的密码,并将 <CertificateAndKeyName> 替换为您的证书文件的名称。请在 Linux 上使用 echo -n 以避免在密码末尾添加换行符:
echo "<Password>" | openssl cms -encrypt -outform PEM <CertificateAndKeyName>.crt
如果您想使用加密私钥,则需要将 <PathToPrivateKey> 替换为 SFTP 服务器帐户私钥的相对或绝对路径。
openssl cms -encrypt -in <PathToPrivateKey> -outform PEM <CertificateAndKeyName>.crt
成功加密凭证后,生成的输出将类似于以下示例:
-----BEGIN CMS-----
MIIBwgYJKoZIhvcNAQcDoIIBszCCAa8CAQAxggFqMIIBZgIBADBOMDoxCzAJBgNVBAYTAkRFMSsw
(...)
hvcNAQcBMB0GCWCGSAFlAwQBKgQQddXx6ufF4KafytY5RKIZqYAQtpGNqX/eU+Oz+lxUnYUTJQ==
-----END CMS-----
获取所选命令的相应输出并将其复制到规则字段中,包括表示消息开始和结束的输出的页眉和页脚。
使用此证书的策略规则的准备工作已完成,但在将证书推广到设备时仍需要生成的 PEM 和 CRT 文件。策略规则中还有其他可选字段,将在以下段落中进行说明。
下载前缀 URL 是一个可选字段,可以指定它以直接从您的服务器下载录音。然后可以通过我们的 Web API(在此处阅读更多相关信息)或与 Salesforce 和 ServiceNow 的集成来获取此信息。该字段需要一个包含路径的 Web URL,其中包含您的录音。由于 TeamViewer 无法访问您的存储,因此录音需要保留其上传时的原始名称,以使路径保持有效。
虽然 TeamViewer 在第一次连接时会缓存您的 SFTP 服务器的公共主机密钥以检查服务器的身份并防止中间人攻击,但您也可以使用可选的 SSH 公共主机密钥设置明确指定它,然后使用它来验证服务器身份。当您需要在某个时候替换 SFTP 服务器的主机密钥并告诉设备期望与它们最初缓存的不同的主机密钥时,这尤其有用。
在大多数情况下,您可以在设置 SFTP 服务器时指定公共主机密钥,也可以在配置文件或 SFTP 服务器的仪表板中查找它。如果您无法访问这些值,也可以从当前设备中获取它们。 如果您在使用 ssh 之前已连接到服务器,则可以从 .ssh 文件夹中的 known_hosts 文件中获取它。或者,您可以使用以下命令,将 <SftpServerDomain> 替换为您的服务器:
ssh-keyscan <SftpServerDomain>
将主机密钥复制到设置字段时,请确保仅复制主机密钥指纹,而不是服务器的名称、IP 地址、密钥类型或注释。
这结束了策略设置的设置。您可以使用更多设置扩展策略或立即保存它。
为了使 TeamViewer 应用程序能够将远程控制会话记录上传到 SFTP 服务器,它需要能够解密凭据。为此,必须将创建的证书转换为接收设备操作系统的格式,然后才能推出。如果底层密钥相同,则可以将相同的策略部署到 Windows 和 Linux 计算机。
如果您要将其推出到 Windows 设备,则需要使用以下命令将 PEM 和 CRT 文件转换为 PFX 格式,将 <CertificateAndKeyName> 和 <CertificateName> 替换为相应的文件名:
openssl pkcs12 \
-inkey <CertificateAndKeyName>.pem
-in <CertificateAndKeyName>.crt \
-export \
-out <CertificateName>.pfx
可以使用您的端点管理解决方案将生成的 PFX 证书推出到目标设备的本地计算机证书存储 (cert:\LocalMachine\My)。为了最大限度地减少对私钥的访问,建议限制对 SYSTEM 帐户的访问。
测试 `backticks` 功能。
如果您要将其推出到 Linux 设备,则无需进行任何更改。您应该将私钥 PEM 放入 /etc/teamviewer/ssl/private,将公钥证书 CRT 放入 /etc/teamviewer/ssl/certs。确保公钥证书和相应的私钥具有相同的基本文件名,例如 <CertificateAndKeyName>.pem 和 <CertificateAndKeyName>.crt。请确保 root 是私钥文件的所有者。建议尽量减少对 root 本身的访问。
由于此功能的设置过程很复杂,因此应在将其完全推广到其他设备之前对此设置进行测试。可以通过在本地设备上安装证书并将策略应用于同一设备,然后启动远程控制会话,开始录制,并在录制停止后验证文件是否已成功上传到 SFTP 服务器来进行测试。这确认加密、解密和 SFTP 设置以及从上传设备到服务器的连接正常运行。
如果上传失败,上传将在短时间后重试,每次失败后重试时间都会增加,最长可达一小时。超时将减少对 SFTP 服务器的错误请求数量。特别是在测试期间,当配置仍在积极调整时,下一次重试可能不会在录制停止后立即进行。要立即尝试另一次上传,可以执行完整的 TeamViewer 重启(例如,通过重启计算机)。
测试成功后,首先使用您的端点管理解决方案将证书推广到所有目标设备,然后将策略应用于这些设备。一旦这些设备记录了任何远程控制会话,来自这些设备的所有录音都将自动上传到您的服务器。