保护客户端和服务器之间的流量

本章介绍 Tableau Server 如何与其他计算机通信,以及可执行哪些操作来确保该流量更加安全。

 

事先的一些学习曲线

Tableau Server:适用于每个人的安装指南 的前面几章可能感觉像在晴朗的日子里在空旷的公路上巡航,而本章可能会更像朝着山口前行。虽然确切地说这不是一条单车道便道,但却是一条需要注意力稍微集中的道路。

本材料中的某些内容甚至可能会让 IT 专业人员感到棘手,知道这一点可能会有所帮助。但是当我们谈论敏感数据的安全性时,您会轻易相信某种方法吗?

如果您到目前为止一直在使用本指南独自努力学习,那么现在是时候请本地 IT 专业人员了。如果没有内部 IT 专业人员,请考虑请求 Tableau 专业服务部门帮助。

即使有了 IT 人员的帮助,我们认为管理 Tableau Server 的任何人都应该了解保护环境背后的原则和程序,这一点很重要。另外,我们不想替您决定您喜欢了解哪方面的内容,或者自己可能甚至想要成为哪方面的专家。所以我们会在此尽力告知做好准备工作所需的一切。除此之外,您可以联机以及在 Tableau 自己的帮助和知识库文章中找到大量信息。

HTTP 和客户端-服务器通信概述

默认情况下,与许多服务器应用程序一样,Tableau Server 使用标准 Web 协议(即 HTTP)与客户端进行通信。在 HTTP 中,当浏览器向服务器发送请求时,以及在服务器响应时,均以明文形式来回发送信息。这意味着窥探该通信的任何人都可以阅读通信内容。

您的用户和服务器来回发送的一些信息可能是敏感信息。例如,用户可能会通过 Web 浏览器访问 Tableau Server,并发送用户名和密码以登录到该服务器。或者,用户可能会请求使用敏感数据创建的 Tableau 视图。如果某人能看到此流量(窥探 HTTP 对于经验丰富的 IT 人员并不难),他们可能会看到他们不应该看到的信息。

您的安全目标:隐私和信任

对于保护 Tableau Server 与其客户端之间的通信安全而言,您需要隐私和信任。为了达到隐私的目的,您可以使任何可能进行窥探的人员无法读取 HTTP 内容。您可以通过对流量进行加密来执行此操作。

但是,您还需要服务器与客户端之间的信任关系。这意味着,当服务器发送信息时,客户端可能会相信信息来自它认为将与之进行通信的服务器。系统通过身份验证建立信任,这种方法类似于当您提供用户名和密码以登录到您的计算机时对您的用户身份进行验证。身份验证可以帮助防止客户端被欺骗与恶意站点通信。

使用 SSL 对 Tableau Server 通信进行加密

SSL(安全套接字层)是类似于 HTTP 的协议,不同的是它允许计算机在网络(如 Web)中发送加密的信息。(我们使用 SSL 一词作为本协议的通用名称;您可能还会看到它被称为 TLS)。SSL 通过我们刚才提到的加密和身份验证来实现前面提到的两个目标,即隐私和信任。为 Tableau Server 启用 SSL 后,用户可以使用 https:// 来代替 http://,以请求服务器中的内容。

启用 SSL 可以显著提高客户端-服务器流量的安全性。如果 Internet 中(而不是仅在内部网络上)接受您的 Tableau Server 实例,则必需配置该服务器的 SSL。在公共网络上提供服务器而不采用 SSL 是一个严重的安全问题。即使您的服务器不是可公开访问的服务器,为本地网络上的客户端-服务器通信启用 SSL 也是一个好的做法。

以下部分提供了有关 SSL 的工作原理的一些背景。我们还描述了将 SSL 与 Tableau Server 配合使用的要求,以及您是否需要帮助保护 Internet 或本地网络上的流量的安全。它描述了如何启用 SSL,并将您指向外部资源以获取其他信息。如何在您的本地网络上启用 SSL 取决于您的环境中的许多因素。您的 IT 朋友将知道如何为您的特定服务器安装对其进行最佳处理。

SSL 和 VPN

您的某些 Tableau Server 用户可能会使用您的网络 VPN(虚拟专用网络)连接从异地访问您的服务器。在这种情况下,虽然用户在异地,但是 VPN 连接本身会提供隐私和信任。虽然启用 SSL 仍然是一个好的做法,但是如果您的用户通过 VPN 访问 Tableau Server,那么不必这么做。

SSL 证书

为了支持 SSL,服务器需要一个数字证书。您可以从称为证书颁发机构或 CA 的公开受信任的第三方实体获取数字证书。受信任的 CA 会验证您的组织身份,然后颁发您的组织所特有的签名证书。例如,受信任的 CA 包括 Symantec (VeriSign)、thawte 和 GlobalSign。还有许多其他受信任的 CA。

"公开受信任”意味着所有操作系统、Tableau 支持的浏览器和其他客户端本来就信任来自这些 CA 根证书。他们满足推荐加密的 Web 行业标准,您只需要进行极少量的工作便可配置客户端-服务器的信任关系。

在完成获得证书的步骤之后,CA 会向您发送一组文件,这就是您的证书。当您收到证书文件后,您需要在您的服务器上安装它们。然后,当客户端尝试访问该服务器时,客户端从服务器证书中获取的信息允许客户端对服务器进行身份验证。这包含您的信任目标。证书还包括一个公钥,从而使客户端能够与服务器之间建立加密的通信。这包含您的隐私目标。

为了在较高级别描述此审查过程,当客户端要启动与服务器之间的加密会话时,客户端会请求服务器证书。(顺便提一下,当用户在 URL 开头输入 https:// 时,这一切都是自动发生的。)服务器使用其证书进行回复。服务器证书通常指向颁发者的证书,而后者可能会指向其他颁发者的证书,最后一直指向该 CA - 实际上,通常会有一个完整的证书链。客户端会检查该证书或链中的所有证书,并将证书中的 CA 信息与客户端已经具有的 CA 信息进行比较。(浏览器和其它客户端会维护已知的 CA 存储)。如果客户端确定证书有效并且受信任,则客户端和服务器可以开始加密的会话并交换信息。

相互(双向)SSL

只是在此提一下,如果服务器和客户端都具有证书,则可以配置相互 SSL(有时被称为双向 SSL)。如果您的用户将从公共位置访问服务器,尤其是通过公共 WiFi 访问,则相互 SSL 特别有用,因为它有助于确保只允许预配置的客户端访问服务器。

相互 SSL 的客户端证书通常由组织内部的 IT 人员生成。客户端证书包含用于确保无法伪造该证书的用户名和信息。当客户端使用相互 SSL 启动与服务器的会话时,客户端会像往常一样请求并检查服务器的证书。然后,服务器会请求并检查客户端的证书以确定其有效性。

本指南中将不详细讨论相互 SSL,但是在本章的后面,我们会提供更多信息的链接,以防相互 SSL 看起来像是您想要为您的 Tableau Server 安装启用的功能。

自签名证书

您的组织可以生成其自己的证书,而不需要完成 CA 提供的审查过程。这将创建自签名证书。自签名证书允许客户端和服务器建立加密的会话。然而,它不允许客户端验证服务器的身份(对服务器进行身份验证)。当用户连接到服务器时,他们会看到类似于以下内容的一条消息“此证书不受信任”。确切的文本取决于浏览器或其他客户端。

默认情况下,很多 Tableau 客户端(包括 Tableau Mobile)将不在 Tableau Server 上使用自签名证书。对于一些客户端(像 iOS 设备),您可以将设备配置为信任自签名证书。如果您对此感到好奇,请看一看关于将 Tableau Mobile 与 SSL 服务器配合使用的知识库文章,本章末尾的附加资源部分中列出了这些文章。

我们建议不要尝试处理“证书不受信任”浏览器警告,也不要将设备配置为使用自签名证书(结果可能不可靠),而是要从已知的 CA 获取公开受信任的证书。

适用于组织内部的客户端-服务器流量的 SSL

从受信任 CA 获取的证书可以帮助保护您的服务器与在组织外部计算机上工作的用户之间的流量安全 - 此证书适用于来自 Internet 的流量。对于这种情况,客户端使用服务器的完全限定的(公共)域名,如 https://www.example.com/。(请注意 https:// 末尾的 s

您也可以对本地网络内部的流量启用 SSL 加密。当您的同事使用内部主机名(如 https://tableauserver)访问服务器时,这么做可以保护流量。

以下各节描述了为内部通信启用 SSL 的一些选项。在这些说明之后,我们给出了建议。与您的 IT 合作伙伴一起确定最适合您的环境的选项,然后让其帮助您配置它。

使用组织现有的内部 CA 和自签名根证书

如果您的组织拥有 IT 团队,询问他们是否有其自己的内部证书颁发机构。如果有,请他们为您创建证书。通常,Tableau 用户的计算机将自动信任这些证书,所以您不需要执行将每个客户端配置为信任证书这一过程。

如果没有内部 CA,则替代方法就是使用 OpenSSL 这个 Tableau Server 附带的开源工具创建一个内部 CA。然后将每个客户端设置为信任内部 CA。当您需要更新证书时,可以通过所使用的组策略等系统管理工具将证书向外推送至客户端。

虽然在 Tableau Server 帮助中以及在外部的 Web 上记录了执行此操作的步骤,但是这些步骤要求在计算机系统级别协调许多移动部件。在没有经验丰富的 IT 合作伙伴的情况下,我们不鼓励这么做。

为您的服务器创建自签名证书,并将客户端配置为支持该证书

是的,我们真的要说一说与刚才在关于对公共流量使用自签名证书的部分中所说内容完全相反的内容。但是,为什么可以这样讲呢,原因如下:对于在组织专用网络内部孤立的客户端-服务器流量而言,您不需要使用 CA 颁发的证书获得公共级别的信任。

甚至对于您的内部流量,您也得在每个用户的计算机、iOS 设备和其他客户端上将浏览器配置为支持自签名证书。否则,必须告诉用户如何处理尝试连接时浏览器中出现的“站点不受信任”警告。另一点需要说明的是,即使您配置了客户端,那么当证书过期以及需要重新颁发证书时,您也需要重新配置一次。

如何确定要使用的选项

在谈到为 Tableau Server 的内部流量启用 SSL 时,以下是我们首选项顺序。如果首选选项对于您的组织不切实际(例如,您没有内部 CA),请尝试下一个选项。

  1. 如果您的组织具有内部 CA,请使用它。这样,您可以在内部启用 SSL,同时不让您的用户看到烦人的“证书不受信任”浏览器消息。

  2. 使用自签名证书并将客户端配置为信任该证书,或者向用户说明可以为 Tableau Server 破一次例,并且可以忽略“站点不受信任”浏览器消息。

  3. 从公开受信任的 CA 获取证书。

  4. 如果前三个选项没有一个可用,请求您的 IT 部门帮助您完成所描述的创建内部 CA 的过程。

获取和安装 Tableau Server 的公共证书

获取证书的过程因每个 CA 而异,成本也因 CA 和您获得的证书的级别而异。如果您的组织没有 IT 部门,开始的最好方法就是使用像“获取 ssl 证书”这样的短语搜索 Web,并浏览不同 CA 的服务。

如果您的组织的确拥有 IT 部门,询问他们是否与公共证书颁发机构有关系,以及是否可以简化获取过程。

您的 IT 专业人员将需要知道安装在 Tableau Server 上的证书的以下要求。(首字母缩写词代表不同的加密算法。从目前的任务来说,除了满足您可能具有的任何好奇心之外,不需要详细了解它们。)

  • 服务器证书必须 PEM 编码 x509 证书。

    其他格式也是有可能的,所以请确保获得 PEM 编码证书,或者使用 OpenSSL 之类的工具将证书保存为 PEM 格式。

  • 证书 .key 文件包含 RSA 或 DSA 格式的密钥和嵌入式密码,并且文件本身不受密码保护。

  • 如果服务器证书并非直接由根 CA 颁发,则颁发人应该提供一个链文件。

    此链文件必须同样是 PEM 格式,并且必须包含服务器证书与根证书之间的所有中间证书。可以选择包括根证书(或者“信任作者”)。如果您希望 Mac 上的 Tableau Mobile 或 Tableau Desktop 用户连接到服务器,则需要此链文件。

启用 SSL

  1. 在浏览器中打开 TSM:

    https://<tsm-computer-name>:8850。有关详细信息,请参见“登录 Tableau 服务管理器 Web UI”(Link opens in a new window)

  2. “配置”选项卡上,选择“安全”>“外部 SSL”

  3. “外部 Web 服务器 SSL”下,选择“服务器服务器通信启用 SSL”

  4. 上载证书和密钥文件,并在环境需要的情况下上载链文件并输入密码密钥:

    Configure  SSL screenshot

  5. 单击“保存未完成的更改”

  6. 单击页面顶部的“待定更改”

  7. 单击“应用更改并重新启动”

查看证书

安装文件之后,您可以在浏览器中导航到您的站点并查看证书。我们将在 Google Chrome 上使用 Tableau Online 以向您显示其工作方式。

  1. 打开浏览器并转到 online.tableau.com

  2. 单击地址栏中出现的绿色挂锁。

  3. 单击“详细信息”链接。此时会显示站点安全概述。

    显示屏将显示 Chrome 已经确定该站点使用的是有效且受信任的证书。在安全概述周围单击时,您也可以看到颁发证书的 CA 和信任链。单击此处的“查看证书”以查看更具体的信息(但是别担心,它没有多大的意义)。

    您可以在不同的浏览器中试试此方法,以了解每个浏览器显示证书信息或您登录到的不同站点(如网上银行帐户)的方式。

将来对自己好一点

当您获得证书文件时,请记下其到期日,并立即设置一个计划以在证书到期之前更新证书。在您的日历上设置提醒,以在到期日三个月之前进行提醒。记录获取证书的联系人,包括采购订单、收据和票证号码。

也要对下次可能会做这项工作的其他人好一点,请在您的系统文档中纳入此信息。

转到配置与 Internet 的通信继续。

其他资源

感谢您的反馈!