本主題說明如何在執行 Tableau Server 的電腦上設定防火牆。

應在作業系統上啟用本機防火牆,以在單節點和多節點部署中保護 Tableau Sever。在 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 上的預設防火牆。

單一節點設定

  1. 開啟一個 bash shell 並執行以下 TSM 命令來檢索 tabadmincontroller 埠的埠號:

    tsm topology list-ports

    記下 tabadmincontroller 埠。預設情況下,此埠為 8850

  2. 啟動 firewalld:

    sudo systemctl start firewalld

  3. 驗證預設區域是否是高安全性區域,如 public。如果不是,建議將其變更為高安全性區域。

    sudo firewall-cmd --get-default-zone

    sudo firewall-cmd --set-default-zone=public

  4. 針對 gateway 埠和 tabadmincontroller 埠新增埠。在以下範例中,我們使用預設埠(808850)。

    sudo firewall-cmd --permanent --add-port=80/tcp

    sudo firewall-cmd --permanent --add-port=8850/tcp

  5. 重新載入防火牆並驗證設定。

    sudo firewall-cmd --reload

    sudo firewall-cmd --list-all

單一節點叢集設定

除了啟用埠之外,在多節點叢集上設定防火牆還需要執行其他步驟來確保節點能夠相互通訊。

開始之前

您將需要叢集中每個節點的 IP 位址。此處的範例將 <node1IP> 用作初始節點 IP 位址的預留位置,將 <node2IP><node3IP> 用作兩個其他節點的 IP 位址的預留位置。

步驟 1:設定初始節點。

  1. 開啟一個 bash shell 並執行以下 TSM 命令來檢索 tabadmincontroller 埠的埠號:

    tsm topology list-ports

    記下 tabadmincontroller 埠。預設情況下,此埠為 8850

  2. 執行以下命令來確定 TSM 可以動態選取的埠號的範圍。您將在本過程的後面指定此範圍。記下此埠範圍。

    tsm configuration get -k ports.range.min

    tsm configuration get -k ports.range.max

    典型的範圍為 80009000

  3. 啟動 firewalld:

    sudo systemctl start firewalld

  4. 驗證預設區域是否是高安全性區域,如 public。如果不是,建議將其變更為高安全性區域。

    firewall-cmd --get-default-zone

    sudo firewall-cmd --set-default-zone=public

  5. 針對 gateway 埠和 tabadmincontroller 埠新增埠。在以下範例中,我們使用預設埠(808850)。您還必須新增埠範圍 (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

  6. 將防火牆設定為允許叢集中其他節點的所有流量。對於埠選項,請指定在步驟 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'

  7. 重新載入防火牆並驗證設定。

    sudo firewall-cmd --reload

    firewall-cmd --list-all

步驟 2:設定其他節點

叢集中的每個節點都必須能夠與初始節點和其他節點進行通訊。

在叢集中的每個其他節點上執行此過程。在本範例中,IP 位址為 <node2IP> 的節點與 IP 位址為 <node1IP> 的初始節點和 IP 位址為 <node3IP> 的第三個節點進行通訊。

  1. 啟動 firewalld:

    sudo systemctl start firewalld

  2. 驗證預設區域是否是高安全性區域,如 public。如果不是,建議將其變更為高安全性區域。

    firewall-cmd --get-default-zone

    sudo firewall-cmd --set-default-zone=public

  3. 將防火牆設定為允許從叢集中的其他節點存取 gatewaytabadmincontroller。例如:

    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) 包含在埠範圍內,所以命令中沒有明確指定該埠。

  4. 重新載入防火牆並驗證設定。

    sudo firewall-cmd --reload

    firewall-cmd --list-all

感謝您的意見回饋!