[Azure]建立 Point to Site VPN,讓地端和 Azure VM 保持安全連線

[Azure]建立 Point to Site VPN,讓地端和 Azure VM 保持安全連線

這一陣子想要把系統弄到 Azure 上面去,為了能讓 Azure 上的 VM 之間可以快速連接,因此搭配虛擬網路,讓 VM 都在相同的子網路上,這樣對外防火牆上就可以只要開必要的對外服務的 Port,應該會比較安全一點。

 

完成上述的設定之後,發現有些時候還是需要連接到 Azure 的 VM,像是連接資料庫主機進行維護,或者是 Visual Studio 要佈署程式上去,由於只有一兩個開發人員需要這樣的功能,於是想利用建立 「Point to Site connectivity」 ( 點對站連線 ) 的方式,這樣可以讓地端的電腦直接跟 Azure 虛擬網路內的電腦直接連線,而不用特別把防火牆給打開了。

 

首先進去到虛擬網路的「設定」,預設是沒有勾選「設定點對站連線能力」,將這個選項給打勾

image

 

此時原本的子網路內,會多增加了一組「閘道」,按下下方「儲存」的按鈕,確認要使用該設定。

image

 

儲存好之後,此時在虛擬網路的「儀表板」下方,會多了一個「建立閘道」的按鈕,此時按照你的狀況可以選擇「靜態路由」或「動態路由」,這裡我選擇使用動態路由

image

 

建立好之後還不能使用,我們必須要有憑證才可以進行連線,但由於建立憑證會需要使用 marecert 的公用程式來處理,因此可能要選擇一台有安裝 Visual Studio 的環境來做建立。我利用以下的指令來做建立

"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\makecert" -sk azure -r -n "CN=WishingAzure" -pe -a sha1 -len 2048 -ss My "WishingAzure.cer"

紅色的部分就可以按照個人的環境任意取名字,當執行成功會在所在的目錄下產生一個憑證檔案,而這個憑證是等一下我們要上傳到 Azure ,用來加密連線的傳輸所使用的憑證。因此我們在 Azure 的網站上選擇「憑證」→「上傳根憑證」,將剛剛所建立的憑證給上傳。

image

 

上傳成功之後,我們就完成雲端的設定,接著要繼續進行地端的設定。

image


 

接著我們要在建立一個地端所使用的憑證,要來跟雲端的 VPN 連線所使用的,因此類似之前所使用的 makrcert 的參數,建立一個基於上述憑證的憑證檔案,後續也可以將這個憑證匯出到所需要連線的 Client 端來使用。

"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\makecert" -n "CN=WishingVPN" -pe -sk azure -m 96 -ss My -in "WishingAzure" -is my -a sha1

我們可以打開憑證管理員 ( certmgr.msc ),此時如果你有需要將憑證放到不同的電腦上執行,就要進行下列步驟進行匯出,如果只有自己這台電腦要連線的話,那麼就可以省略後續匯出的相關步驟了。

image

 

選擇「所有工作」→「匯出

image

image

 

這裡不能使用預設值,要選擇「匯出私密金鑰」,這樣後續才可以匯到別台電腦上使用。

image

image

 

為了安全起見,此部分最好在匯出的檔案加入密碼保護

image

 

指定匯出的目錄和檔案名稱

image

 

image


 

最後要在 Azure 網站上下載建立 VPN 的連線的設定作業

image 

 

可以先將這兩個設定檔都先下載回來,這樣有新的 Client 端要連線的時候,只要給他相對應的版本檔案和匯出的 pfx 檔案,就可以很快速的建立點對站連線,而不用前面這些繁雜的步驟了。因此下載回來的時候,我配合匯出的檔案名稱,將檔案分別取名為 WishingVPN_x64.exe 和 WishingVPN_x86.exe

 

在我的測試環境是 64 位元的環境,因此我先執行 64 位元的 VPN 封裝

image

 

確認要安裝

image

 

安裝完成之後,此時在「網路連線」內就可以看到我們所建立好的 VPN 連線,選擇連線

image

 

image

image


 

當完成連線之後,我們就可以進行測試一下,在 Azure 的 Portal 上面我們可以看到有兩個 VM

image

 

此時在我們地端的電腦使用 nbtstat 的指令連連線查看一下,可以看到是可以正常連線沒有問題,因此我們可以再另外找一台電腦,看是否可以匯入憑證進行連線。

image

 

在新的環境當中,我們將之前所匯出的憑證檔案和 VPN 的封裝都複製過去

image

 

先匯入憑證檔案

image

image

 

這裡要記得輸入你當初匯出設定檔案時候所指定的密碼,這樣憑證才可以正常匯入

image

image

image

 

要是都沒有問題的話,應該是可以正常匯入

image

 

接著安裝對應作業系統版本的 VPN 封裝檔之後,就如同前面啟動 VPN 連線的方式相同,連線之後我們就可以進行測試,透過 Ping 的指令可以發現,我們可以順利建立起 VPN 的連線在新的電腦上了。

image


 

基本上大部分的設定都可以從 MSDN 上找到相關文件 (網址),基本上要注意的有幾個地方:

  1. 要建立兩個憑證,第一個是 Root 的憑證,要用來上傳到 Azure。也要使用這個憑證,再產生一個用來 VPN 連線使用,兩個要取不同的名稱。
  2. 當建立好連線的憑證,記得匯出的時候要包含私密金鑰,否則到新的電腦上匯入之後是無法使用的。
  3. 當建立好 VPN 閘道之後,如果要取消的話,一定要在都沒有人使用的狀況下,否則會無法取消。
  4. 要記得關閉 VM 內預設的防火牆,否則是無法 Ping 到該電腦的。
  5. 目前遇到要是帳號是中文建的,會導致User Profile Folder變成中文,使得安裝過程會出現找不到 azurebox32.ico 的問題,經 Aska 建議,可以使用 User Profile Wizard 3.9 的工具來移轉,