【Azure】Bastion

Peter Zhang
May 24, 2021

--

Hi,我是小白,雲端服務近年蓬勃發展,無論是在虛擬機部屬、容器部屬、Web開發環境、測試環境、數據分析實驗室(ex:Machine Learning Studio)等功能,為此雲端所提供的多樣化資源服務,是需要被有效的管制,以確保服務的安全性及穩定性。

傳統系統維護人員在管理主機的過程中,會針對外層的系統安全性進行管制,故此會以IP及帳號密碼登入系統進行操作。在這樣的過程中,其實也透露出實體連線的資訊,即便企業內部已有規劃DMZ(Demilitarized Zone)來做隔離環境或跳板,仍是無法避免對外的通訊道與未知攻擊的風險。

而今日要介紹Microsoft Azure Bastion功能,是一款無須開放遠端存取通道與IP位址即可管理PaaS的服務,其採用TLS進行連線以確保連線通道的安全性,同時能提供順暢的RDP與SSH存取方式,進而透過Azure網頁入口連線到虛擬機器(VM),來取代過往採用公用IP位址、特殊用戶端(終端)軟體或其他應用軟體進行連線的方式,下圖1是Azure Bastion功能示意圖,意旨Bastion功能作為用戶端與VM的溝通中繼點。

圖1. Bastion功能示意圖 (圖片資料來源:Micrsoft)

此外,官方文件提及Bastion功能特色具備以下6點:

  • 快速使用:使用者可以在 Azure 入口網站直接進行 RDP /SSH 連線。
  • 有效且安全的通訊方式:透過Azure Bastion 功能連線至已規畫的虛擬網路時,即可透過RDP/SSH 連線方式進行工作。
  • 免除多次使用公用IP的登入操作:Azure Bastion 會使用 VM 上的私人 IP,開啟與用戶端的 Azure VM的 RDP/SSH 連線功能,故此在VM上不需要公用 IP。
  • 針對連接埠掃(port)的保護: 因不需要將VM公開至公用網際網路,所以用戶的 VM能有效受到保護,免於外部的惡意使用者的不法行為攻擊,舉如防止通訊連接埠掃(port)被掃描。
  • 免需套用任何 NSG:因 Azure Bastion可透過私人 IP 連線到用戶端的VM,所以用戶端可以直接設定 NSG (Network Security Group, 網路安全群組)只允許來自 Azure Bastion 的 RDP/SSH,進而減輕每次想要安全地連線到虛擬機器時就需要管理 NSG 的負擔。
  • 零時差攻擊的防禦:Azure Bastion 是完全平台受控的 PaaS 服務,其主要能在虛擬網路的周邊進行控管,用以強化虛擬網路中的VM防禦,同時 Azure 平台仍持續地強化與維護 Azure Bastion 功能,以保護用戶端免於零時差的攻擊。

本篇以Azure【Bastion】功能作為範例操作。另在執行Bastion功能前,需要具備兩個條件,其分別為一台VM以及NSG(網路安全群組),才能使用Bastion功能。

Step1.建立虛擬機器(VM),若已有VM的請略過此步驟。

請輸入相關VM設定所需的資料。

圖2. 建立虛擬機器(VM)

Step2.配置VM相關設定(這邊因應範例所以在設定上並不以嚴謹標準),若已有VM的請略過此步驟。

登入VM有多種不同的方式,舉如SSH或帳號密碼等,而本篇將以帳號密碼類型進行登入,故此須為VM的登入之使用者名稱取名,而本篇帳號為:test01;密碼:則為本篇閱讀者自行設定。

若都輸入完帳號及密碼後,同時系統也驗證過後,請選取下圖的第二個紅框,連入至系統的通訊道,這邊讀者可以依公司或系統需求進行勾選,而本篇將勾選HTTPS(443)及SSH(22)作為登入通訊道。

圖3. 請建立相關登入所需的帳號及密碼資料,另並選擇連接的方式,如SSH(22 PORTS)、HTTPS等

Step3.配置VM相關設定(這邊因應範例所以在設定上並不以嚴謹標準),若已有VM的請略過此步驟。

若前面設定都完成後,亦可進入【檢視+建立】,確認VM所要部屬的環境參數以無誤後,點選【下一步】則會跳轉至Step4的圖5。

圖4. 若VM相關設定與規劃完成,即可點選下一步,用以完成"檢閱+建立"之部屬功能

Step4.配置VM相關設定(這邊因應範例所以在設定上並不以嚴謹標準),若已有VM的請略過此步驟。

此時點選【建立】,亦等待幾分即可完成VM的部屬。

圖5. VM環境設定

Step5.VM相關設定及管理畫面

使用者請點選左側的虛擬機氣,並點選對應的VM進來,即可查閱到各VM的詳細資訊,如下圖6所示。

圖6. VM相關設定及管理畫面

Step6.連線至VM設定畫面

請點選【連結】後,會顯示如下圖7中紅框的所示內容,再點選【Bastion】。

圖7. 登入VM相關設定畫面

Step7.連線至VM設定畫面

由於首次使用Bastion會進入下圖8此畫面,故此選擇【使用堡壘】,亦可開始進行部屬。

圖8. 設定Bastion畫面

Step8.開始設定Bastion連線(1/2)

進入Bastion基本資料會由系統預設,若沒問題使用者即可進入步驟2,如下圖所示,這邊需要使用輸入或確認適當可用的【公用IP】以及選取可用的部屬之【資源群組】。

補充:

一般來說,公用IP若是無效的,Azure會在此階段擋掉建立需求,會要求使用者再次輸入可用的IP。

先前來說Bastion是在虛擬網路的中繼站,用於外部與內部VM溝通的閘門,故此來說,這些VM都是需要在同一個資源群組的! 因此需要選取適當的資源群組才能完成部屬。

圖9. 設定Bastion畫面

Step9.設定Bastion連線(1/2)

進入建立Bastion步驟的第3部分,需要使用者為Bastion建立名稱(紅框1),並針對下圖10的公用IP欄位進行輸入(紅框2),有效性之IP(紅框3)。最後再選取對應的資源群組(紅框4)用以部屬。

補充:這邊略過實際操作Bastion設定的2/3步驟,其主要是系統預設,故此未進一步說明。

圖10. 設定Bastion畫面

Step10.使用Bastion進行連線

最後於下圖11畫面輸入【使用者名稱】及【密碼】後,點選【連線】即可完成連線。系此外,統預設是會開啟新視窗畫面,即可透過新視窗進行閱覽與操作,以進行系統部屬或開發環境建置。

圖11. 透過Bastion登入VM畫面

Step11.透過Bastion連線至VM上

下圖12則為成功連線至VM系統中的畫面,當然使用者的畫面是依照原先設設的VM環境(舉如OS)會有影響,而本次VM的環境是採用Ubuntu 18 版本。

圖12. VM主機畫面

綜上所述,Azure Bastion提供更安全的許VM溝通的方式,免除了RDP/SSH或第三方登入軟體,也意味著提升整體登入系統的安全性與降低系統被攻擊的風險。為此變成登入Azure 口口網站的帳號密碼,如訂閱帳號或群組功能,更需要被組織完善的控管,以利及時掌握整體雲端的安全性。

以上是本篇Bastion技術功能的分享,若有任何問題,歡迎前輩或對雲服務有興趣的朋友一同討論。

參考資料:

  1. 何謂 Azure Bastion?,網址:https://docs.microsoft.com/zh-tw/azure/bastion/bastion-overview
  2. 使用NGS存取與Azure防禦,網址:https://docs.microsoft.com/zh-tw/azure/bastion/bastion-nsg

3. 力抗暗黑:Azure資安天使的逆襲,網址:https://reurl.cc/9ZdeMd

--

--

Peter Zhang

現任資安顧問,熱衷於資安治理、資安技術研究、Azure雲端安全技術、網路架構自動化、容器服務;曾任軟體業系統分析師,專注於資料庫規劃、API建置、使用者訪談、梳理業務流程、容器部屬與管理;跨國大型製造業資安管理師,專注於資安治理、DLP導入等資安技術應用,期望藉由分享自身學習與工作歷程經驗,讓我們在科技風潮下持續成長!