設定本機防火牆
本主題說明如何在執行 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 上的預設防火牆。
單一節點設定
開啟一個 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