網管人 169 期 - 建立 Bastion 堡壘主機管理 Azure 雲端更安心



網管人雜誌

本文刊載於 網管人雜誌第 169 期 - 2020 年 2 月 1 日出刊,NetAdmin 網管人雜誌 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。






本文目錄

前言
實戰 – Azure Bastion 安全性機制
          建立 Bastion 堡壘主機
          連線至 Windows 虛擬主機
          連線至 Linux 虛擬主機
          VM 虛擬主機工作階段已過期?
          監控和管理 Bastion 安全連線工作階段
          查看 Bastion 診斷日誌資訊
結語





前言

過去,當企業和組織在 Azure 公有雲環境中,採用 IaaS(Infrastructure as a Service)解決方案的 VM 虛擬主機時(如圖 1 所示),IT 管理人員將可以完全獲得 VM 虛擬主機作業系統層級以上的掌控權,以便滿足企業和組織對於營運服務的客製化環境運作需求,例如,客製化組態設定 IIS 網頁伺服器、SQL Server 資料庫伺服器。

圖 1、採用 Azure 公有雲 IaaS 基礎架構即服務中的 VM 虛擬主機解決方案示意圖

然而,當企業或組織在地端資料中心內,並未與 Azure 公有雲建立 S2S(Site-to-Site)VPN 安全性通道,或是採用 Express Route 專線連接解決方案,將公司地端資料中心網路環境和 Azure 公有雲虛擬網路環境連接時,就必須為 Azure 公有雲上的 VM 虛擬主機指派「公用 IP 位址」(Public IP Address),並且開啟遠端管理連接埠號,才能夠進行 VM 虛擬主機的遠端連線管理工作任務。

舉例來說,採用 Windows 虛擬主機時便需要開啟 RDP(Port 3389),而採用 Linux 虛擬主機時便需要開啟 SSH(Port 22),以便管理人員能夠透過網際網路的公用 IP 位址,遠端連線進行管理 VM 虛擬主機的工作任務。但是,一旦為 VM 虛擬主機指派採用公用 IP 位址時,便會讓 VM 虛擬主機直接曝露在充滿安全性威脅的網際網路上(如圖 2 所示),無謂的增加安全性風險。

圖 2、為 VM 虛擬主機指派公用 IP 位址,將會讓 VM 虛擬主機曝露在充滿安全性威脅的網際網路上

當然,管理人員可以採用 NSG 網路安全性群組機制(如圖 3 所示),針對管理流量的來源 IP 位址和來源連接埠,以及前往的目的地 IP 位址和目的地連接埠,和採用的通訊協定進行存取管控,並且搭配 JIT(Just-In-Time)安全性機制,有效降低因為 VM 虛擬主機曝露在網際網路上而遭受攻擊的風險。

圖 3、Azure NSG 網路安全性群組運作架構示意圖

此外,有些管理人員,為了能夠在方便管理和有效隔離之間達到平衡,便會索性自己建立一台 VM 虛擬主機擔任跳板機的工作任務,也就是為擔任跳板機的 VM 虛擬主機指派公用 IP 位址,而其它台 VM 虛擬主機則僅採用私有 IP 位址,達到與網際網路隔離的效果,然後在後續的管理作業中先連線至此台跳板機 VM 虛擬主機,然後再透過這台跳板機遠端連線至其它 VM 虛擬主機進行管理作業。

事實上,這樣的作法雖然能夠讓其它 VM 虛擬主機,不致於直接曝露在充滿安全威脅的網際網路上,達到一定程度的安全性效果,然而管理人員必須要完全確保這台跳板機的安全性,因為這台跳板機上除了可以連線至其它 VM 虛擬主機之外,可能也存放許多連線主機的機敏資訊,所以一旦這台跳板機被惡意使用者攻陷之後,那麼受影響的將會是這台跳板機曾經連線過的所有 VM 虛擬主機。

因此,由上述情況可知雖然有許多各種不同的因應作法,可以降低 VM 虛擬主機遭受網際網路攻擊的安全性風險,然而卻會大大的增加管理人員在維運管理上的負擔。

現在,管理人員可以透過部署 Azure Bastion 堡壘主機後(如圖 4 所示),同樣無須為 VM 虛擬主機指派公用 IP 位址,達到無須曝露在網際網路上而遭受攻擊的風險,並且在管理人員主機與 Bastion 堡壘主機之間,將會建立 SSL 安全性連線後,再採用 RDP 和 SSH 與 VM 虛擬主機進行連線管理作業,同時在管理人員主機中無須安裝額外的管理用戶端程式,而 VM 虛擬主機也無須安裝任何代理程式。

或許,有些管理人員已經意識到,Bastion 堡壘主機的運作架構跟剛才提到的跳板機非常類似,那麼 Bastion 堡壘主機和傳統 IT 管理人員規劃的跳板機有何不同? 首先,由於 Bastion 堡壘主機並非 IaaS 服務而是 PaaS 服務,所以管理人員無須擔心 Bastion 堡壘主機底層作業系統的安全性,因為 Azure 會隨時更新和維持 Bastion 堡壘主機的最新穩定狀態。

此外,因為 Bastion 堡壘主機是透過私有 IP 位址連線至 VM 虛擬主機,所以管理人員可以無須設定 NSG 網路安全性群組,倘若管理人員仍希望進一步提升安全性時,可以在 NSG 網路安全性群組的防護規則中,允許僅針對 Bastion 堡壘主機的虛擬網路開啟 RDP 和 SSH 通訊協定即可。

圖 4、Azure Bastion 安全性機制運作架構示意圖





實戰 – Azure Bastion 安全性機制

在本文中,我們將帶領讀者一步一步實戰建立 Azure Bastion 安全性機制。首先,我們在 Azure 公有雲環境中的「日本東部」Azure 資料中心內,分別建立一台 Windows 和 Linux 虛擬主機,但是在建立 VM 虛擬主機的過程中(如圖 5 所示),除了未指派任何公用 IP 位址之外,在 NSG 網路安全性群組的部份也未開啟遠端連線管理通訊埠,例如,RDP 的 Port 3389 和 SSH 的 Port 22,並且地端的資料中心也未與 Azure 公有雲環境,建立 S2S(Site-to-Site)VPN 或 Express Route 等安全性通道。因此,在這樣的運作環境中,管理人員並沒有任何方法可以連線到這二台 VM 虛擬主機。

圖 5、建立 VM 虛擬主機時,未指派公用 IP 位址和開啟遠端連線管理通訊埠



建立 Bastion 堡壘主機

在開始部署 Bastion 堡壘主機之前,管理人員必須了解在 Azure 公有雲環境中,部署 Bastion 堡壘主機時,將會採用「虛擬網路」(Virtual Network)為單位,與屆時所要連接管理的 VM 虛擬主機的虛擬網路進行連線,而非採用訂閱帳戶或是 VM 虛擬主機為單位。

因此,在本文實作環境中的日本東部資料中心內,我們在虛擬網路環境中建立二個虛擬網路,分別是規劃給 VM 虛擬主機使用的「10.0.1.0/24」虛擬網路,以及規劃給 Bastion 堡壘主機使用的「10.0.2.0/24」虛擬網路(如圖 6 所示)。

圖 6、規劃給 VM 虛擬主機和 Bastion 堡壘主機使用的虛擬網路

由於,我們已經在日本東部資料中心建立 Windows 和 Linux 虛擬主機,所以只要登入 Azure 入口網站,並且點選其中一台 VM 虛擬主機後,依序點選「Connect > Bastion > Use Bastion」選項(如圖 7 所示),即可在現有運作環境中部署 Bastion 堡壘主機,並且系統會自動將組態設定對應至目前採用的 VM 虛擬主機和虛擬網路。
請注意,目前 Bastion 堡壘主機僅支援部署在六個 Azure 資料中心,分別是美國西部、美國東部、美國中南部、西歐、澳洲東部、日本東部
圖 7、準備在現有運作環境中部署 Bastion 堡壘主機

在部署 Bastion 堡壘主機畫面中,管理人員只要填入下列五項資訊即可進行部署作業:
  • 名稱: 部署的 Bastion 堡壘主機名稱,本文實作環境為「Bastion-for-JapanEast」。
  • 虛擬網路名稱: 部署 Bastion 堡壘主機採用的虛擬網路名稱,至少要採用的子網路遮罩必須為「/27」或更大的子網路,同時不包含任何 NSG 網路安全性群組、路由表和委派。本文實作環境為「AzureBastionSubnet」。
  • 公用 IP 位址: 指派給 Bastion 堡壘主機採用的公用 IP 位址,屆時便是透過這個指派的公用 IP 位址和管理人員的主機,建立 SSL(Port 443)安全性通道後以 RDP 和 SSH 遠端連線管理 VM 虛擬主機。值得注意的是,這個公用 IP 位址必須與所要防禦的資源處於相同的 Azure 資料中心內。本文實作環境為選擇「Create new」,指派一個新的公用 IP 位址給即將部署的 Bastion 堡壘主機使用。
  • 資源群組: 指定部署 Bastion 堡壘主機所要採用的資源群組。本文實作環境為選擇「RG-JapanEast」,採用與 Bastion 堡壘主機所要防禦的資源同一個資源群組。
請注意,部署 Bastion 堡壘主機的虛擬網路名稱,必須以「AzureBastionSubnet」命名,才能夠讓 Azure 服務正確理解,要將 Bastion 堡壘主機部署和防禦哪個虛擬網路。

當部署 Bastion 堡壘主機完成後,管理人員便可以享受到下列管理好處:
  • HTML 5 瀏覽器進行管理作業: 管理人員只要透過現代化的 HTML 5 瀏覽器(例如,Microsoft Edge 或 Google Chrome),登入至 Azure 入口網站後,即可直接在瀏覽器中開啟 RDP 和 SSH 工作階段,連線至 VM 虛擬主機進行管理作業。
  • SSL 安全通道遠端工作階段: 當管理人員透過 HTML 5 瀏覽器 Web 用戶端,與 VM 虛擬主機建立 RDP 和 SSH 工作階段後,系統將會自動與管理人員的主機透過 SSL(Port 443)建立安全通道,因此管理人員無須為此管理作業在地端資料中心,額外開啟防火牆放行規則。
  • VM 虛擬主機無須公用 IP 和代理程式: 由於,管理人員只要透過 Bastion 堡壘主機,即可連線至 Azure 公有雲環境中的 VM 虛擬主機,所以無須再為 VM 虛擬主機指派公用 IP 位址,並且也無須安裝任何代理程式即可進行管理。此外,由於 VM 虛擬主機無須指派公用 IP 位址,所以能有效避免 VM 虛擬主機曝露在網際網路上,遭受外部惡意使用者進行連接埠掃描攻擊。
  • 避免遭受零時差攻擊: 由於 Bastion 堡壘主機為 PaaS 服務,因此 Azure 平台會隨時強化和維持 Bastion 堡壘主機在最新穩定狀態,並且它位於 VM 虛擬主機中虛擬網路的前端周邊網路,所以當零時差攻擊出現時,管理人員無須擔心必須馬上針對每台 VM 虛擬主機進行強化保護,有效避免遭受零時差攻擊。




連線至 Windows 虛擬主機

當 Bastion 堡壘主機部署作業完成後,管理人員即可在 Azure 入口網站中,點選要透過 Bastion 堡壘主機連線管理的 Windows 虛擬主機後,在 Bastion 頁籤中鍵入遠端連線管理的使用者帳號和密碼後(如圖 8 所示),按下 Connect 鈕即可進行連線管理作業。
管理人員必須具備 VM 虛擬主機和 Bastion 堡壘主機資源的「讀取者角色」(Reader Role),才能順利透過 Bastion 堡壘主機連線管理 VM 虛擬主機。
圖 8、準備透過 Bastion 堡壘主機連線管理 Windows 虛擬主機

由於,在剛才的連線管理畫面中,預設情況下已經自動勾選「Open in new windows」項目,所以瀏覽器將會在新的頁面中開啟連線工作階段,並且採用 Microsoft IT TLS CA 1 所簽發的 SSL 憑證,與管理人員主機建立 SSL 安全性通道,然後再透過 RDP(Port 3389)連線至 Windows 虛擬主機(如圖 9 所示)。

圖 9、順利透過 Bastion 堡壘主機,RDP 遠端連線管理 Windows 虛擬主機

有時,管理人員在管理 Windows 虛擬主機的過程中,可能需要鍵入大量的管理指令,此時透過 Bastion 堡壘主機的遠端工作階段中,管理人員可以按下畫面最左邊中間位置的箭頭圖示,即可展開剪貼簿,將管理人員主機上已經複製的管理指令內容貼至剪貼簿中,一旦貼入剪貼簿後便會自動傳送至 VM 虛擬主機的剪貼簿中(如圖 10 所示)。相反的,倘若需要從 VM 虛擬主機複製相關指令或文字,回到管理人員主機上時,一旦 VM 虛擬主機執行複製指令或文字的動作後,相關的指令或文字便會出現在箭頭圖示內的剪貼簿方框中。
請注意,透過 Bastion 堡壘主機 RDP 連線至 Windows 虛擬主機後,目前僅支援「文字」複製貼上功能,尚未支援「檔案傳輸」功能,微軟已經預計後續將會擴充相關功能。
圖 10、使用 Bastion 堡壘主機提供的剪貼簿功能



連線至 Linux 虛擬主機

同樣的,管理人員在 Azure 入口網站中,只要點選欲透過 Bastion 堡壘主機連線管理的 Linux 虛擬主機後,在 Bastion 頁籤中鍵入遠端連線管理的使用者帳號和密碼後(如圖 11 所示),按下 Connect 鈕即可進行連線管理作業。

圖 11、準備透過 Bastion 堡壘主機連線管理 Linux 虛擬主機

由於,在連線管理畫面中預設已經勾選「Open in new windows」項目,所以瀏覽器將會在新的頁面中開啟,並且採用 Microsoft IT TLS CA 1 所簽發的 SSL 憑證,與管理人員主機建立 SSL 安全性通道後,再透過 SSH(Port 22)連線至 Linux 虛擬主機(如圖 12 所示)。

圖 12、順利透過 Bastion 堡壘主機,SSH 遠端連線管理 Linux 虛擬主機



VM 虛擬主機工作階段已過期?

請注意,當管理人員欲採用 Bastion 堡壘主機安全性機制,遠端連線管理受保護的 VM 虛擬主機時,必須先登入 Azure 入口網站,然後透過 Azure 入口網站啟動 Bastion 堡壘主機安全連線機制,才能順利建立 SSL 安全性通道遠端連線管理 VM 虛擬主機。

倘若,管理人員直接在另一個瀏覽器中,嘗試採用相同的 URL 開啟遠端連線工作階段時,便會發生工作階段已經過期的錯誤訊息,並且系統會提示必須先登入 Azure 入口網站,才能啟用 Bastion 堡壘主機安全連線機制(如圖 13 所示)。

圖 13、必須先登入 Azure 入口網站,才能啟用 Bastion 堡壘主機安全連線機制



監控和管理 Bastion 安全連線工作階段

由於連線至 VM 虛擬主機的工作階段,都是透過 Bastion 堡壘主機發起的安全性連線,所以管理人員可以切換至 Bastion 堡壘主機中,查詢遠端連線 VM 虛擬主機工作階段的資訊,包括使用者連線時間、連接的 VM 虛擬主機名稱、遠端連線管理的使用者帳號、遠端連線通訊協定……等資訊。

當然,管理人員可以隨時管理 Bastion 堡壘主機上的 VM 虛擬主機工作階段,倘若管理人員希望強制中斷連線中的 VM 虛擬主機工作階段時,只要在 Bastion 堡壘主機工作階段頁面中,點選欲中斷連線的 VM 虛擬主機工作階段,然後選擇「Delete」項目即可(如圖 14 所示),而使用者將會在 VM 虛擬主機工作階段頁面中,看到「Disconnected」中斷連線的訊息。

圖 14、管理 Bastion 堡壘主機上的 VM 虛擬主機工作階段



查看 Bastion 診斷日誌資訊

除了透過 Bastion 堡壘主機管理 VM 虛擬主機工作階段外,也可以為 Bastion 堡壘主機啟用診斷日誌功能,以便記錄和診斷 VM 虛擬主機工作階段的詳細資訊,幫助管理人員在連線 VM 虛擬主機發生問題時進行故障排除。

請切換至 Bastion 堡壘主機管理頁面中,點選「Diagnostics settings > Add diagnostic setting」項目,填入 Bastion 堡壘主機診斷日誌的名稱以及採用的 Azure 儲存體帳戶(如圖 15 所示),即可為 Bastion 堡壘主機啟用診斷日誌功能。

圖 15、啟用 Bastion 堡壘主機診斷日誌功能

當 Bastion 堡壘主機診斷日誌建立完成後,管理人員即可隨時切換至建立時所指定的 Azure 儲存體帳戶中,點選「Blob service > Containers」項目,即可看到 VM 虛擬主機的啟動診斷日誌,以及剛才建立的 Bastion 堡壘主機診斷日誌(如圖 16 所示),管理人員便可以依照「年 / 月 / 日 / 小時 / 分鐘」查詢診斷日誌內容,進行 VM 虛擬主機的故障排除作業。

圖 16、查詢 VM 虛擬主機的啟動診斷日誌和 Bastion 堡壘主機診斷日誌





結語

透過本文的深入剖析和實戰演練後,讀者應該已經了解 Azure Bastion 堡壘主機的功能和優點,它能夠有效幫助中小企業降低營運管理成本,讓原本編制就不多的 IT 管理人員,可以無須費心建立 Site-to-Site VPN 安全性通道,或是採用昂貴的 Express Route 專線費用,也無須為了方便管理而指派公用 IP 位址給 VM 虛擬主機,埋下遭受網際網路惡意使用者攻擊的風險。

同時,微軟官方也已經預告 Azure Bastion 堡壘主機的未來功能藍圖,包括與 Azure Active Directory 整合,達成 SSO 使用者單一帳號登入和多因素身份驗證,以及加入遠端連線管理的錄影功能,方便管理者審核連線以及使用者操作行為。