2021年6月12日 星期六

讓Microsoft 365(Teams)的身分驗證支援2FA(Two-Factor Authentication)

enter image description here
前面說過,最近因為WFH的關係,協助了一些公司將許多地端的OA相關應用移動到像是Microsoft 365、teams、與Azure等雲端環境上,以確保萬一封城或是台灣大規模分區停電下,企業主要服務依舊可以透過雲端來存取和運行。也因為如此,上次和大家分享了如何在家裡透過VPN連上Azure,以安全的方式來存取雲端資源。

但除了讓用戶走VPN去存取雲端資源,以避免讓雲端上的資料或服務公開在網際網路上(讓駭客當箭靶),另外一個非常基本卻重要的機制,是使用M365/Teams/Azure等雲端服務的企業不該忽略的,也就是2FA(Two-Factor Authentication)。

很多企業用戶可能根本不知道,瀏覽器上常見的登入行為,本身就有機會造成資安疑慮的最大風險,只要用戶在不熟悉的電腦上登入(例如網咖、公用電腦、別人的筆電…)或是用了不熟悉的網路(像是車站、咖啡廳、或是網路上隨意搜尋到的免費WIFI分享網路),都很可能在無意之間讓你的帳密外洩。

由於Azure和Microsoft 365(包含MS Teams)都是攤在網際網路上的服務,倘若用戶一不小心帳密外洩,那造成的風險恐怕也是不低的。

如何讓帳密更安全嚴謹的使用呢? 答案就是2FA(Two-Factor Authentication),關於2FA的細節你很容易在網路上找到,這邊就不多提了,總之微軟除了讓用戶以帳密登入以外,還提供你多重的身分驗證機制,例如手機簡訊就是其中之一。

簡單的說,你可以將M365或是Azure帳密設定為 – 在陌生的電腦上登入時,即便正確輸入帳密,還得再透過手機簡訊進行2次驗證(也可以用App進行驗證)。如此一來,可以大幅增加駭客的攻擊難度,避免你在密碼不小心外洩(或被猜對)時,遭受到駭客的入侵。

讓admin開放此功能

設定的方式很簡單,首先,你必須讓M365(Teams)管理員幫你從後台開起這個功能,它位於M365的admin center–>設定–>組織設定–>多重要素驗證:
enter image description here

admin可以透過底下UI找到要開啟此功能的用戶,並且點選『啟用』即可:
enter image description here

你會看到底下畫面:
enter image description here

用戶設定2FA驗證(以手機簡訊為例)

啟用之後,下次該用戶成功登入後,就會發信自己被引導到底下畫面:
enter image description here

進入下一步之後,系統會讓你選擇第二重驗證方式:
enter image description here

你可以選擇行動電話驗證,輸入號碼並選擇使用簡訊驗證之後,按下『下一步』即可:
enter image description here
這時候,微軟會傳簡訊到你輸入的手機號碼上,請把簡訊中的數字輸入上圖畫面,並點選『驗證』鈕。

這時其實已經大致設定完畢,最後會出現底下畫面:
enter image description here
這是為了讓目前尚不支援2FA的環境可以有替代方案,直接點選上圖完成即口。

登入時

設定好之後,用戶的登入其實完全一樣,在都登入時的第一個畫面,都必須輸入帳號密碼:
enter image description here
但不同的是,當成功登入之後,若該電腦(設備)是第一次登入,則會跳出底下畫面:
enter image description here
這時快查看你的手機,你會發現手機上收到MS傳來的簡訊,其中包含六位數字代碼,請正確的輸入該六位數字代碼後,你才會獲得登入。

透過這樣的方式,你可以更安全的使用雲端的服務,即便萬一不小心密碼被猜中,你還有第二道防線"手機簡訊",可以保護你的身分不致外洩。雖然很容易,但企業內卻有許多用戶沒有做這樣的設定。趁著WFH,快鼓勵企業用戶為自己的資安加上第二道鎖吧。

2021年6月8日 星期二

WFH必備-在家中透過VPN使用Azure雲端上的服務

在一般的承平時期,企業內部網路要連接到位於雲端的服務,可能會採用 site to site VPN的形式,也就是把企業內網與Azure雲端的虛擬網路透過VPN互聯,達到安全連線的效果:
enter image description here

需求

但最近這幾周,很多企業開始居家上班(WFH),導致用戶需要從家裡存取雲端上的服務,不管是伺服器、網站、資料庫、或是檔案系統…這時候,該怎麼辦呢?

你可能會說,這很容易啊,位於azure上公有雲的服務,都有對外(對internet)的IP,只要開放讓同仁從家裡連線不就得了? 當然不行,因為如此一來,等於把企業的應用攤在網際網路上讓駭客當箭靶練習入侵,因此,我們還是必須走一個安全的方式才行。

做法有兩種,一個是在企業的防火牆上,開放用戶透過VPN從家裡連線的管道,讓用戶先從家裡連到公司,再從公司透過VPN存取雲端的服務。但這樣等於是透過企業機房作為橋接,大部分公司我猜也是這麼做,但有個小缺點,如果台灣斷電(別跟我說不可能),那所有的服務就只能停擺了,即便根本沒受影響的雲端服務也是。

因此,另一種作法呢,則是直接讓用戶從家裡以VPN連線到 Azure 雲端服務,直接存取企業在Azure雲端上的資源,如果你根本把整個企業機房(或上面的主要服務)都移上雲端上(做異地備援或主要服務),更適合這麼作:
enter image description here
這篇文章要介紹的,就是上面這個模式。

如何讓員工,直接透過VPN,從家裡(其實從公司也行)透過網際網路安全的連線到企業位於公有雲上的資源。

環境說明

好,為了說明這個情境,我們建立了一個簡單的模擬。請再仔細看一下上面這張圖,其中有幾個需要注意的部分:

  1. 假設企業在雲端有兩台VM(提供了企業的主要應用,先別管是DB還是AP是WEB…反正就是個情境),IP位置分別是10.0.0.4, 10.0.0.5,這兩台VM使用同一個虛擬網路,其子網路是10.0.0.0/24,這個虛擬網路就是待會我們要讓員工從家裡連上的虛擬網路。
  2. 為了讓員工從家裡安全的連上虛擬網路,我們有設置了一個Virtual Network Gateway,員工要從家裡連上虛擬網路,必須通過這個Virtual Network Gateway。
  3. 從家裡連上Virtual Network Gateway的工具,是Azure VPN Client,而我們用的驗證方式,是採用Azure AD 驗證,這意味著你必須要有一個AAD(放心,只要你用了Azure表示你一定有)。

好,有了上面的概念之後,就開始實作了。
由於我們的情境下,雲端環境上有兩台VM,我們規劃的位置是10.0.0.x,因此,我們會先建立一個虛擬網路(10.0.0.0/16),並且指定子網路為(10.0.0.0/24):
enter image description here

然後再在建立VM的時候,幫VM指定使用這個虛擬網路:
enter image description here
如此一來,建立出來的VM就會在該虛擬網路的子網路IP區段中。

如果你建立多台VM,你會發現這幾台VM可以用內部IP互通:
enter image description here

同時在v-net中也可以看到:
enter image description here

建立gateway

基本環境沒問題之後,請參考下圖,接下來我們要建立virtual network gateway的部分:
enter image description here

Virtual Network Gateway的建立採預設參數即可,但需要留意,建立的時候『虛擬網路』的部分必須選擇上面包含我們VM的這個虛擬網路(這理所當然),建立好之後,請點選Virtual Network Gateway的『點對站(P2S)設定』:

enter image description here

其中有幾個關鍵,首先,你知道的,當外部的用戶透過家裡(或網咖、或公司)連入我們在Azure雲端上的虛擬網路時,必須走VPN,因此也理當有個安全的身分驗證方式,因此我們在上面選擇了Azure AD作為身分驗證方式(上圖B),所以你會發現下方C、D、E的部分,就是為了設定AAD的相關資訊,其中被霧化的是AAD的租用戶ID,這個資訊你可以從你的AAD管理頁面中找到:
enter image description here

你會發現下圖中的D,有一個GUID,這是Azure AD 企業應用程式的ID,一般Public Azure我們用41b23e61-6c1e-4545-b367-cd054e0ed4b4。這部分的細節可以參考微軟官網: 建立 P2S VPN 連線的 Azure AD 租使用者: Azure AD 驗證 - Azure VPN Gateway | Microsoft Docs

enter image description here

設定好並且儲存了之後,請別忘記點選上圖F中的連結,他會跳出一個視窗要你登入(請用具有AAD管理員身分的帳號登入),他會引導你同意應用程式授權,這個動作是讓該應用程式具有使用你AAD部分資訊的權利。(等於是我們在AAD上安裝了個應用程式,如下圖…)
enter image description here
有沒有,上圖就是AAD中安裝了的那個應用程式(Azure VPN)。其實也就是為你提供VPN 驗證服務的伺服器端啦。

設定用戶端

好,有了這些之後,我們要來設定Client,也就是能讓同仁從家裡(其實公司也行)以AAD帳密Azure雲端虛擬網路的用戶端機制。

請點選上方的下載VPN用戶端,這個動作會花幾分鐘,請耐心等候:
enter image description here

你會下載到一個檔案,解壓縮後,會看到AzureVPN資料夾下,有一個xml文件:
enter image description here

他是一個組態檔,讓你可以從windows 10以VPN方式連入雲端,主要是提供給Azure VPN 用戶端這個程式用的:
enter image description here

如果你沒有上面這個程式,請從 windows 市集下載(位於: 取得 Azure VPN 用戶端 - Microsoft Store zh-TW )。下載完之後,把組態檔匯入即可。

但別急,你要正確地使用該應用程式,還必須做一個設定。

請參考底下微軟官網上的文件,設定P2S的憑證:
產生和匯出 P2S 的憑證: PowerShell - Azure VPN Gateway | Microsoft Docs

你可以直接透過powershell執行底下這兩段code:

$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
-Subject "CN=P2SRootCert" -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSign

New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature ` -Subject "CN=P2SChildCert" -KeyExportPolicy Exportable ` -HashAlgorithm sha256 -KeyLength  2048 ` -CertStoreLocation "Cert:\CurrentUser\My" ` -Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")

他將會幫你在用戶端建立憑證。

完成後,開啟 Azure VPN Client,將剛才的.xml設定檔匯入:
enter image description here

你會發現相關的設定資訊其實跟剛才我們在gateway上建立的差不多:
enter image description here

完成後,你就有個可以直接連上Azure雲端虛擬網路的VPN可以用了:
enter image description here

透過上面這個設定,我們可以輕鬆的以VPN連入雲端,以內部IP的方式,啟動VM的遠端桌面連線:
enter image description here

當然不只是VM,上面只是透過VM來示範,而DB、AP Server或其他服務也是一樣的。當這樣的機制設定好之後,我們等同可以從家裏或公司,以VPN方式,安全的連入位於公有雲的雲端上的服務和應用、伺服器,而不需要把這些服務或伺服器攤在網際網路上當箭靶。是一個更適合企業在WFH階段使用雲端服務更好的方式。

熱門文章