使用 TeamViewer 策略,可以自动将远程控制会话记录上传到自托管或云托管的 SFTP 存储。存储记录以供以后审查对于质量评估、培训和审计非常有用。本文介绍了如何设置所需的 TeamViewer 策略规则来实现这一点。要了解有关如何启动远程控制会话记录的更多信息,您可以阅读本文。
本文适用于 TeamViewer Tensor 许可证持有者,其中 Windows 支持录制和上传传入及传出会话,而 Linux 仅支持传出会话录制。
TeamViewer 通过单独的策略规则支持录制和上传传入及传出远程控制会话。录制和上传功能会因会话方向和操作系统的不同而有所差异。
设置 TeamViewer 策略
要配置自动远程控制会话录制上传设置,您必须创建新的或更新现有的 TeamViewer 策略并添加以下策略规则。您可以在策略中组合多个策略规则以实现您的特定目标。将策略应用于所需设备后,配置将生效。
在此处了解如何将策略应用于您的设备,以及获取更多关于策略规则的详细信息。
TeamViewer 可以通过两个独立的策略规则录制并上传传入和传出会话,具体支持情况取决于操作系统。以下部分将解释每个策略规则的设置。在支持的情况下,这两个规则可以组合使用,以启用传入和传出录制的上传功能。
传出会话
用于录制传出会话的主要策略规则是 “上传传出会话录制到自定义存储”,它提供了将录制文件上传到您的 SFTP 服务器的功能。该策略规则的设置将在后续部分详细说明。除此之外,还有两个规则值得考虑,它们可以进一步增强对录制开始和停止的控制。
-
“强制自动录制远程控制会话”:在应用了该策略的设备发起传出连接时,会自动开始录制。
-
“禁止停止和暂停会话录制”:如果您希望防止用户在远程控制会话结束前停止或暂停录制,可以添加此规则。
这两个规则可以直接添加并启用,无需额外设置。
传入会话
如果您希望录制传入会话,需要启用 “自动录制传入远程控制会话” 策略规则,该规则会在设备建立传入连接时自动开始录制。
若要将这些录制文件上传到您的 SFTP 服务器,还必须添加 “上传传入会话录制到自定义存储” 策略规则。该规则的设置也将在后续部分详细说明。
如何设置自动录制上传策略规则
当您将“将会话录制上传到自定义存储”规则添加到策略时,需要配置一些必填字段和可选字段,以下段落将更详细地解释这些字段。
必填字段
目前,只有 SFTP 服务器(可托管在本地数据中心或基于云的环境(如 Azure 或 Amazon Web Services)中)才支持作为服务类型。
有两种可用的身份验证类型:
- 密码身份验证
- 公钥身份验证
选择您喜欢的选项并验证您的 SFTP 服务器或服务是否支持它。您应该在继续之前配置新帐户及其身份验证,因为接下来的段落需要密码或私钥。
输入应该用于向您的服务器进行身份验证并上传录制的帐户的用户名。指定您的目标 URL,该 URL 必须是针对您的服务器的 SFTP URL,包括应该上传远程控制会话录制的文件夹的路径。建议您将所选帐户的权限最小化,仅授予指定用于上传录音的特定文件夹的写访问权限。
加密密码或加密私钥字段
只有您和上传设备可以安全地访问 SFTP 帐户的凭据,并且需要使用用户定义的证书对密码或私钥进行加密,以安全地传递 SFTP 帐户的凭据。
然后,加密凭据将作为加密密码或加密私钥添加到策略规则中。您需要证书进行加密的原因是,稍后会将其推广到多个设备进行解密。您的 SFTP 服务器不会处理加密凭据,因为 TeamViewer 应用程序会事先对其进行解密。建议在此设置中在您的系统上安装 OpenSSL。
生成证书的方法有很多种,取决于操作系统和所使用的工具。如果正确指定了 x509 证书所需的重要参数,则所有这些都应可行:
- 密钥用法:KeyEncipherment、DataEncipherment、KeyAgreement
- 类型/扩展密钥用法:DocumentEncryptionCert,也称为 1.3.6.1.4.1.311.80.1
如果您想使用自签名证书,则可以使用 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,您可以在 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 操作系统上使用。
推出证书
如果您要将其推出到 Windows 设备,则需要使用以下命令将 PEM 和 CRT 文件转换为 PFX 格式,将 <CertificateAndKeyName> 和 <CertificateName> 替换为相应的文件名:
openssl pkcs12 \
-inkey <CertificateAndKeyName>.pem \
-in <CertificateAndKeyName>.crt \
-export \
-out <CertificateName>.pfx
生成的 PFX 证书可以通过您的终端管理解决方案部署到目标设备的本地计算机证书存储中。部署完成后,该证书应出现在本地计算机的证书管理器中(搜索“管理计算机证书”),位于 个人/证书 文件夹内。
PowerShell 将此位置称为:
cert:\LocalMachine\My
为了尽量减少对私钥的访问,应将权限限制为 SYSTEM 账户以及必要的管理员账户。您可以在本地计算机的证书管理器中进行验证:右键点击证书,选择“所有任务”,然后点击“管理私钥…”,确认只有所需的账户拥有访问权限。
如果您要将证书部署到 Linux 设备,则无需进行任何更改。您应将私钥的 PEM 文件放置在 /etc/teamviewer/ssl/private 目录中,将公钥证书的 CRT 文件放置在 /etc/teamviewer/ssl/certs 目录中。请确保公钥证书和对应的私钥具有相同的基础文件名,例如 <CertificateAndKeyName>.pem 和 <CertificateAndKeyName>.crt。请确保私钥文件的所有者为 root,并建议尽量减少对 root 用户本身的访问权限。
测试和应用策略
由于该功能的设置过程较为复杂,在全面部署到其他设备之前,应先进行测试。测试方法是:在本地设备上安装证书,并将策略应用到同一设备。
要上传传出会话录制,请从该设备启动远程控制会话并开始录制。对于传入会话录制上传,请建立到该设备的连接,并检查录制是否自动开始。然后,在录制结束后验证文件是否成功上传到 SFTP 服务器。这将确认加密、解密、SFTP 设置以及上传设备与服务器的连接是否正常工作。
如果上传失败,系统会在短时间后重试,并在每次失败后逐渐延长重试间隔,最长可达一小时。此超时机制可减少对 SFTP 服务器的错误请求。尤其在测试阶段,当配置仍在不断调整时,下一次重试可能不会在录制结束后立即进行。若要立即尝试再次上传,可以执行完整的 TeamViewer 重启(例如,重启计算机)。
当测试成功,应首先通过终端管理解决方案将证书部署到所有设备,然后将策略应用到这些设备。这些设备录制任何远程控制会话,所有录制文件将自动上传到您的服务器。