网络安全
- 版本 :2022.1 及更高版本
网络安全
Tableau Server 中有三个主要网络接口:
客户端到 Tableau Server:客户端可以是 Web 浏览器、Tableau Mobile、Tableau Desktop 或 tabcmd 实用工具。
Tableau Server 到数据库:为了刷新数据提取或处理实时数据库连接,Tableau Server 需要与数据库进行通信。
服务器组件通信:这仅适用于分布式部署。
在大多数组织中,Tableau Server 还配置为与 Internet 和 SMTP 服务器通信。
客户端到 Tableau Server
Tableau Server 客户端可以是 Web 浏览器、运行 Tableau Mobile、Tableau Desktop 或 tabcmd 命令的设备。Tableau Server 与其客户端之间的通信使用标准 HTTP 请求和响应。我们建议将 Tableau Server 配置为使用 HTTPS 进行所有通信。当针对 SSL 配置 Tableau Server 时,将会使用 SSL 加密客户端之间的所有内容和通信,并会将 HTTPS 协议用于请求和响应。
默认情况下,将使用 1024 位的公钥/私钥加密将来自浏览器和 tabcmd 的密码传送到 Tableau Server。此级别的加密被认为是进行安全通信时不足够可靠。此外,这种方法以明文形式向收件人发送公钥并且无网络层身份验证,因此易受到中间人攻击。
若要充分确保从客户端到 Tableau Server 的网络通信的安全,就必须使用受信任的证书颁发机构颁发的证书来配置 SSL。
请参见针对与来往 Tableau Server 的外部 HTTP 流量配置 SSL。
Internet 客户端访问
建议使用网关代理服务器以启用从 Internet 到 Tableau Server 的安全客户端访问。我们不建议在 DMZ 中或在其他受保护的内部网络之外运行 Tableau Server。
配置反向代理服务器并启用 SSL,以处理来自 Internet 的所有入站通信。在此情况下,反向代理是 Tableau Server 将与其通信的唯一外部 IP 地址(或地址范围,如果多个反向代理将要对入站请求进行负载平衡)。反向代理对发出请求的客户端透明,从而对 Tableau Server 网络信息进行模糊处理,简化了客户端配置。
有关配置信息,请参见针对 Tableau Server 配置代理。
单击劫持保护
默认情况下,Tableau Server 已启用单击劫持保护。此可帮助防止特定类型的攻击,在这些攻击中,攻击者会将一个透明的页面覆盖在一个看起来无害的页面上,以便诱骗用户单击链接或输入信息。在启用单击劫持保护的情况下,Tableau Server 会对嵌入视图进行一些限制。有关详细信息,请参见单击劫持保护。
Tableau Server 到数据库
Tableau Server 动态连接到数据库以处理结果集并刷新数据提取。每当可能时,它都会使用本机驱动程序连接到数据库,并在没有本机驱动程序时依赖于一个通用 ODBC 适配器。与数据库的所有通信都通过这些驱动程序来路由。这样,本机驱动程序安装过程将包括配置驱动程序以在非标准端口上通信或提供传输加密。这种配置类型对 Tableau 是透明的。
当用户在 Tableau Server 上存储外部数据源的凭据时,这些凭据以加密形式存储在 Tableau Server 的内部数据库中。如果进程使用这些凭据来查询外部数据源,进程会从此内部数据库检索加密的凭据,然后在进程中将它们解密。
Tableau Server 至 Internet
在某些情况下,用户连接到了外部数据源,如 Tableau 地图服务器,则 Tableau Server 将需要连接到 Internet。建议您在受保护的网络内运行 Tableau 的所有组件。因此,Internet 连接可能要求您将 Tableau Server 配置为使用转发代理。
Tableau Server 至 SMTP 服务器
您可以配置 Tableau Server 以便向管理员和用户发送电子邮件通知。自版本 2019.4 起,Tableau Server 支持为 SMTP 连接使用 TLS。请参见配置 SMTP 设置。
与存储库的通信
可以将 Tableau Server 配置为对在 Postgres 存储库和其他服务器组件之间交换的所有流量使用安全套接字层 (SSL) 进行加密通信。默认情况下,已为服务器组件和存储库之间的通信禁用了 SSL。
有关详细信息,请参见针对内部 Postgres 通信配置 SSL。
有关详细信息,请参见tsm security repository-ssl enable
群集中的服务器组件通信
分布式服务器安装中的 Tableau Server 组件间通信有两个方面:信任和传输。Tableau 群集中的每个服务器都使用一个严格信任模型来确保其接收来自群集中其他服务器的有效请求。群集中运行网关进程的计算机可接受第三方(客户端)的请求,除非它们前面有负载平衡器,在这种情况下负载平衡器将接收请求。未运行网关进程的服务器仅接受来自群集的其他受信任成员的请求。信任是通过 IP 地址、端口和协议的允许列表建立的。如果任何一部分无效,请求就会被忽略。群集的所有成员都可以互相通信。
当用户在 Tableau Server 上存储外部数据源的凭据时,这些凭据以加密形式存储在 Tableau Server 的内部数据库中。如果进程使用这些凭据来查询外部数据源,进程会从此内部数据库检索加密的凭据,然后在进程中将它们解密。
此部分中的其他文章
Tableau Server 具备单击劫持攻击保护功能。单击劫持是一种针对网页的攻击,在这种攻击中,攻击者会试图在一个不相关页面上的透明层中显示攻击页面,从而诱骗用户单击或输入内容。在 Tableau Server 的上下文中,攻击者可能会试图使用单击劫持攻击来捕获用户凭据,或让授权用户在您的服务器上更改设置。有关单击劫持攻击的详细信息,请参见开放式 Web 应用程序安全项目网站上的单击劫持
注意: Tableau Server 的以前版本中提供了单击劫持保护功能,但默认情况下处于禁用状态。新安装的 Tableau Server 9.1 及更高版本将始终打开单击劫持保护功能,除非您显式地将其禁用。
单击劫持保护的效果
如果在 Tableau Server 中启用了单击劫持保护,从 Tableau Server 加载的页面的行为将在以下方面发生变化:
Tableau Server 会向服务器发出的特定响应中添加
X-Frame-Options: SAMEORIGIN
标头。在大多数浏览器的最新版本中,此标头将防止内容加载到 元素中,从而帮助抵御单击劫持攻击。Tableau Server 中的顶级页面无法加载到 元素中。其中包括登录页面。产生的一种影响是:您无法在所创建的应用程序中承载 Tableau Server 页面。
只能嵌入视图。
如果嵌入的视图需要数据源凭据,则会在 元素中显示一条带有链接的消息,以便在用户可安全输入凭据的安全窗口中打开视图。用户在输入凭据之前应始终验证打开的窗口的地址。
只有当视图在查询字符串中包括
:embed=y
参数时,才能加载视图,如此示例中所示:http://
注意:启用了单击劫持保护后,使用从浏览器地址栏中复制的 URL 的嵌入式视图可能无法加载。如果在 Tableau Server 上启用了单击劫持保护,服务器名称后面包含井号 (
#
) 的这些视图 URL(例如,http://myserver/#/views/Sales/CommissionModel?:embed=y
)将被阻止。
禁用单击劫持保护
除非单击劫持保护对用户使用 Tableau Server 的方式产生影响,否则您应始终启用单击劫持保护。如果想要禁用单击劫持保护,请使用以下 tsm
命令:
tsm configuration set -k wgserver.clickjack_defense.enabled -v false
tsm pending-changes apply
如果待定更改需要重新启动服务器,
pending-changes apply
命令将显示一个提示,告知您将进行重新启动。即使服务器已停止,此提示也会显示,但在这种情况下不会重新启动。您可以使用--ignore-prompt
选项隐藏提示,但这样做不会改变重新启动行为。如果更改不需要重新启动,则会在不提示的情况下应用更改。有关详细信息,请参阅tsm pending-changes apply。
Tableau Server 支持 OWASP Secure Headers Project
本主题介绍如何为 Tableau Server 配置以下响应标头:
HTTP 严格传输安全性 (HSTS)
Referrer-Policy
X-Content-Type-Options
X-XSS-Protection
Tableau Server 还支持内容安全策略 (CSP) 标准。本主题未讨论 CSP 配置。请参见内容安全策略。
配置响应标头
所有响应标头都是使用 tsm configuration set 命令配置的。
配置完响应标头后,运行 tsm pending-changes apply。
如果待定更改需要重新启动服务器,pending-changes apply
命令将显示一个提示,告知您将进行重新启动。即使服务器已停止,此提示也会显示,但在这种情况下不会重新启动。您可以使用 --ignore-prompt
选项隐藏提示,但这样做不会改变重新启动行为。如果更改不需要重新启动,则会在不提示的情况下应用更改。有关详细信息,请参阅tsm pending-changes apply。
HTTP 严格传输安全性 (HSTS)
HSTS 强制连接到 Tableau Server 的客户端使用 HTTPS 进行连接。有关详细信息,请参见 OWASP 条目 HTTP 严格传输安全性 (HSTS)。
选项
gateway.http.hsts
默认值:
false
HTTP 严格传输安全性 (HSTS) 头强制浏览器在启用它的域上使用 HTTPS。
gateway.http.hsts_options
默认值:
"max-age=31536000"
默认情况下,会为一年(31536000 秒)期间设置 HSTS 策略。此时间段指定浏览器将通过 HTTPS 访问服务器的时间量。
默认值:
true
若要从 Tableau Server 发送的响应中排除 Referrer-Policy 标头,请将此值设置为
false
。默认值:
no-referrer-when-downgrade
此选项定义 Tableau Server 的引用页策略。您可以指定 OWASP 网页上的 Referrer-Policy 表中列出的任何策略值字符串。
gateway.http.x_content_type_nosniff
默认值:
true
默认情况下,系统使用此选项将 X-Content-Type-Options HTTP 头设置为“nosniff”。
gateway.http.x_xss_protection
默认值:
true
默认情况下,系统使用此选项启用了 X-XSS-Protection 响应头。
Referrer-Policy
从 2019.2 开始,Tableau Server 包括配置 Referrer-Policy HTTP 标头行为的功能。此策略启用时的默认行为是将包括所有“secure as”连接的来源 URL(策略 no-referrer-when-downgrade
)。在以前的版本中,Tableau Server 发送的响应中未包括 Referrer-Policy 标头。有关 Referrer-Policy 支持的各种策略选项的详细信息,请参见 OWASP 条目 Referrer-Policy。
选项
gateway.http.referrer_policy_enabled
gateway.http.referrer_policy
X-Content-Type-Options
X-Content-Type-Options 响应 HTTP 头指定 Content-Type 头中的 MIME 类型不应由浏览器更改。在某些情况下,如果未指定 MIME 类型,则浏览器可能会通过评估有效负载的特征来尝试确定 MIME 类型。然后浏览器将相应地显示内容。这个过程被称为“嗅探”。误解 MIME 类型可能会导致安全漏洞。
有关详细信息,请参见 OWASP 条目 X-Content-Type-Options。
选项
X-XSS-Protection
HTTP X-XSS-Protection 响应头会发送到浏览器以启用跨站点脚本 (XSS) 保护。在用户在浏览器中禁用 XSS 保护的情况下,X-XSS-Protection 响应头会覆盖配置。
有关详细信息,请参见 OWASP 条目 X-XSS-Protection。
选项
SSL(安全套接字层)是一种标准安全技术,用于在 Web 服务器和客户端之间建立加密的链接。若要使用 SSL,您需要在 Tableau Server 上安装 SSL 证书。
可以将 Tableau Server 配置为按以下方法使用 SSL:
将 SSL 用于外部 HTTP 流量。
在客户端(Tableau Desktop、Web 浏览器和 tabcmd.exe)与 Tableau Server 之间使用相互(双向)SSL。
将 SSL 用于内部服务器组件与存储库之间的所有 HTTP 流量。
如果使用相互 SSL,则每个客户端还需要一个证书。
注意: Tableau Server 为用户身份验证使用 SSL。不使用 SSL 来处理 Tableau Server 上承载的内容(数据源和工作簿)的权限和授权。
配置为连接到外部 LDAP 身份存储的 Tableau Server 必须查询 LDAP 目录并建立会话。建立会话的过程称为绑定。有多种绑定方式。Tableau Server 支持两种绑定到 LDAP 目录的方法:
简单绑定:通过使用用户名和密码进行身份验证来建立会话。默认情况下,使用简单绑定的 LDAP 未加密。如果使用简单绑定来配置 LDAP,我们强烈建议您启用 LDAP over SSL/TLS。
GSSAPI 绑定:GSSAPI 使用 Kerberos 进行身份验证。当使用密钥表文件配置时,在 GSSAPI 绑定期间身份验证是安全的。但是,不会对进入 LDAP 服务器的后续流量进行加密。我们建议配置 LDAP over SSL/TLS。
如果在已加入 Active Directory 域的计算机上运行 Windows 版 Tableau Server,则您无需配置 GSAPI。Tableau Server GUI 设置将检测和配置使用 Kerberos 的 Active Directory 连接。请参见配置初始节点设置。对于 Active Directory 通信,请不要使用简单绑定运行 LDAP。
本主题介绍了如何为 Tableau Server 和 LDAP 目录服务器之间的通信加密简单的 LDAP 绑定通道。
证书要求
您必须具有可用于加密的有效 SSL/TLS 证书。证书必须安装在运行 Tableau Server 的计算机上。
您安装的证书必须在用于 SSL/TLS 的密钥用法字段中包括 Key Encipherment
。Tableau Server 将仅使用此证书来加密到 LDAP 服务器的通道。不会验证过期、信任、CRL 和其他属性。
注意:如果在分布式部署中运行 Tableau Server,则必须将 SSL 证书手动复制到群集中的每个节点。仅将证书复制到配置了 Tableau Server 应用程序服务器进程的那些节点。与群集环境中的其他共享文件不同,客户端文件服务不会自动分发用于 LDAP 的 SSL 证书。
将证书导入 Tableau 密钥存储
如果您的计算机上还没有针对 LDAP 服务器配置的证书,则您必须获取适用于 LDAP 服务器的 SSL 证书,并将其导入默认系统密钥存储。
使用“keytool”Java 工具来导入证书。在默认安装中,此工具随 Tableau Server 一起安装,位于 C:\Program Files\Tableau\Tableau Server\packages\repository.
。
以管理员身份运行以下命令以导入证书(您必须针对您的环境替换 ):
"C:\Program Files\Tableau\Tableau Server\packages\repository.
Java 密钥存储的密码为 changeit
。(不要更改 Java 密钥存储的密码)。
LDAPS 加密方法
Tableau Server 支持使用 LDAPS 对简单绑定 LDAP 通道进行加密。
安全 LDAP(或 LDAPS)是需要配置的标准加密通道。具体而言,除了 Tableau Server 上的 TLS 证书外,还必须为目标 LDAP 服务器设置主机名和安全 LDAP 端口。
为简单绑定配置加密通道
如果您的组织使用 Active Directory 以外的 LDAP 目录,请按照此处的过程为 LDAP 简单绑定配置加密通道。
本节介绍如何将 Tableau Server 配置为对 LDAP 简单绑定使用加密通道。
何时配置
您必须将 Tableau Server 配置为在 Tableau Server 初始化之前或作为配置初始节点的一部分使用 LDAP 简单绑定的加密通道,如配置初始节点设置中的“使用 TSM CLI”选项卡中所述。
对于 Tableau Server 的新安装
如果您的组织使用 Active Directory 以外的 LDAP 目录,则无法使用 TSM GUI 安装程序将身份存储配置为 Tableau Server 安装的一部分。相反,您必须使用 JSON 实体文件来配置 LDAP 身份存储。请参见identityStore 实体。
在配置 identityStore 实体之前,请将有效的 SSL/TLS 证书导入 Tableau 密钥存储,如本主题前面所述。
配置 LDAPS 需要在 identityStore JSON 文件中设置 hostname 和 sslPort 选项。