配置本地防火墙
本主题说明如何在运行 Tableau Server 的计算机上配置防火墙。
应在操作系统上启用本地防火墙,以在单节点和多节点部署中保护 Tableau Server。在 Tableau Server 的分布式(多节点)安装中,节点之间的通信未使用安全通信。因此,您应该在托管 Tableau Server 的计算机上启用防火墙。
我们建议您配置防火墙,以便外部流量只能访问以下两个端口:gateway
端口和 tabadmincontroller
端口。默认情况下,这两个端口分别是 80 和 8850。此外,如果在分布式部署中运行,则您需要打开端口范围 27000-27009,以便许可能够跨节点通信。
gateway
端口用于 Tableau Server 的 HTTP 连接。我们建议您对 gateway
端口使用 SSL。如果将使用 SSL,则该端口必须为 443
,因为 Tableau Server 对 SSL 不支持其他端口。以下过程介绍如何针对 gateway
端口配置防火墙。将 Tableau Server 网关(配置初始节点设置)配置为与您在此处设置的端口匹配。
以下示例介绍如何在 RHEL/CentOS 发行版上运行的 Tableau Server 单节点和多节点部署上配置防火墙。这些示例使用 Firewalld,它是 CentOS 上的默认防火墙。
单节点配置
打开一个 bash shell 并运行以下 TSM 命令来检索
tabadmincontroller
端口的端口号:tsm topology list-ports
记下
tabadmincontroller
端口。默认情况下,此端口为8850
。启动 firewalld:
sudo systemctl start firewalld
验证默认区域是否是高安全性区域,如
public
。如果不是,建议将其更改为高安全性区域。sudo firewall-cmd --get-default-zone
sudo firewall-cmd --set-default-zone=public
针对
gateway
端口和tabadmincontroller
端口添加端口。在以下示例中,我们使用默认端口(80
和8850
)。sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=8850/tcp
重新加载防火墙并验证设置。
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
单节点群集配置
除了启用端口之外,在多节点群集上配置防火墙还需要执行其他步骤来确保节点能够相互通信。
开始之前
您将需要群集中每个节点的 IP 地址。此处的示例将 <node1IP>
用作初始节点 IP 地址的占位符,将 <node2IP>
和 <node3IP>
用作两个其他节点的 IP 地址的占位符。
步骤 1:配置初始节点。
打开一个 bash shell 并运行以下 TSM 命令来检索
tabadmincontroller
端口的端口号:tsm topology list-ports
记下
tabadmincontroller
端口。默认情况下,此端口为8850
。运行以下命令来确定 TSM 可以动态选择的端口号的范围。您将在本过程的后面指定此范围。记下此端口范围。
tsm configuration get -k ports.range.min
tsm configuration get -k ports.range.max
典型的范围为
8000
至9000
。启动 firewalld:
sudo systemctl start firewalld
验证默认区域是否是高安全性区域,如
public
。如果不是,建议将其更改为高安全性区域。firewall-cmd --get-default-zone
sudo firewall-cmd --set-default-zone=public
针对
gateway
端口和tabadmincontroller
端口添加端口。在以下示例中,我们使用默认端口(80
和8850
)。您还必须添加端口范围 (27000-27010
),使许可能够在节点之间通信。sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=8850/tcp
sudo firewall-cmd --permanent --add-port=27000-27010/tcp
将防火墙配置为允许群集中其他节点的所有流量。对于端口选项,请指定在步骤 2 中记下的范围。为群集中的每个附加节点运行此命令。例如:
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=<node2IP>/32 port port=8000-9000 protocol=tcp accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=<node3IP>/32 port port=8000-9000 protocol=tcp accept'
重新加载防火墙并验证设置。
sudo firewall-cmd --reload
firewall-cmd --list-all
步骤 2:配置其他节点
群集中的每个节点都必须能够与初始节点和其他节点进行通信。
在群集中的每个其他节点上运行此过程。在本示例中,IP 地址为 <node2IP>
的节点与 IP 地址为 <node1IP>
的初始节点和 IP 地址为 <node3IP>
的第三个节点进行通信。
启动 firewalld:
sudo systemctl start firewalld
验证默认区域是否是高安全性区域,如
public
。如果不是,建议将其更改为高安全性区域。firewall-cmd --get-default-zone
sudo firewall-cmd --set-default-zone=public
将防火墙配置为允许从群集中的其他节点访问
gateway
和tabadmincontroller
。例如:sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=<node1IP>/32 port port=80 protocol=tcp accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=<node1IP>/32 port port=8000-9000 protocol=tcp accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=<node3IP>/32 port port=80 protocol=tcp accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=<node3IP>/32 port port=8000-9000 protocol=tcp accept'
在本示例中,由于
tabadmincontroller
端口 (8850
) 包含在端口范围内,所以命令中没有明确指定该端口。重新加载防火墙并验证设置。
sudo firewall-cmd --reload
firewall-cmd --list-all