[Azure]建立 Point to Site VPN,讓地端和 Azure VM 保持安全連線
這一陣子想要把系統弄到 Azure 上面去,為了能讓 Azure 上的 VM 之間可以快速連接,因此搭配虛擬網路,讓 VM 都在相同的子網路上,這樣對外防火牆上就可以只要開必要的對外服務的 Port,應該會比較安全一點。
完成上述的設定之後,發現有些時候還是需要連接到 Azure 的 VM,像是連接資料庫主機進行維護,或者是 Visual Studio 要佈署程式上去,由於只有一兩個開發人員需要這樣的功能,於是想利用建立 「Point to Site connectivity」 ( 點對站連線 ) 的方式,這樣可以讓地端的電腦直接跟 Azure 虛擬網路內的電腦直接連線,而不用特別把防火牆給打開了。
首先進去到虛擬網路的「設定」,預設是沒有勾選「設定點對站連線能力」,將這個選項給打勾
此時原本的子網路內,會多增加了一組「閘道」,按下下方「儲存」的按鈕,確認要使用該設定。
儲存好之後,此時在虛擬網路的「儀表板」下方,會多了一個「建立閘道」的按鈕,此時按照你的狀況可以選擇「靜態路由」或「動態路由」,這裡我選擇使用動態路由
建立好之後還不能使用,我們必須要有憑證才可以進行連線,但由於建立憑證會需要使用 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 的網站上選擇「憑證」→「上傳根憑證」,將剛剛所建立的憑證給上傳。
上傳成功之後,我們就完成雲端的設定,接著要繼續進行地端的設定。
接著我們要在建立一個地端所使用的憑證,要來跟雲端的 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 ),此時如果你有需要將憑證放到不同的電腦上執行,就要進行下列步驟進行匯出,如果只有自己這台電腦要連線的話,那麼就可以省略後續匯出的相關步驟了。
選擇「所有工作」→「匯出」
這裡不能使用預設值,要選擇「匯出私密金鑰」,這樣後續才可以匯到別台電腦上使用。
為了安全起見,此部分最好在匯出的檔案加入密碼保護
指定匯出的目錄和檔案名稱
最後要在 Azure 網站上下載建立 VPN 的連線的設定作業
可以先將這兩個設定檔都先下載回來,這樣有新的 Client 端要連線的時候,只要給他相對應的版本檔案和匯出的 pfx 檔案,就可以很快速的建立點對站連線,而不用前面這些繁雜的步驟了。因此下載回來的時候,我配合匯出的檔案名稱,將檔案分別取名為 WishingVPN_x64.exe 和 WishingVPN_x86.exe
在我的測試環境是 64 位元的環境,因此我先執行 64 位元的 VPN 封裝
確認要安裝
安裝完成之後,此時在「網路連線」內就可以看到我們所建立好的 VPN 連線,選擇連線
當完成連線之後,我們就可以進行測試一下,在 Azure 的 Portal 上面我們可以看到有兩個 VM
此時在我們地端的電腦使用 nbtstat 的指令連連線查看一下,可以看到是可以正常連線沒有問題,因此我們可以再另外找一台電腦,看是否可以匯入憑證進行連線。
在新的環境當中,我們將之前所匯出的憑證檔案和 VPN 的封裝都複製過去
先匯入憑證檔案
這裡要記得輸入你當初匯出設定檔案時候所指定的密碼,這樣憑證才可以正常匯入
要是都沒有問題的話,應該是可以正常匯入
接著安裝對應作業系統版本的 VPN 封裝檔之後,就如同前面啟動 VPN 連線的方式相同,連線之後我們就可以進行測試,透過 Ping 的指令可以發現,我們可以順利建立起 VPN 的連線在新的電腦上了。
基本上大部分的設定都可以從 MSDN 上找到相關文件 (網址),基本上要注意的有幾個地方:
- 要建立兩個憑證,第一個是 Root 的憑證,要用來上傳到 Azure。也要使用這個憑證,再產生一個用來 VPN 連線使用,兩個要取不同的名稱。
- 當建立好連線的憑證,記得匯出的時候要包含私密金鑰,否則到新的電腦上匯入之後是無法使用的。
- 當建立好 VPN 閘道之後,如果要取消的話,一定要在都沒有人使用的狀況下,否則會無法取消。
- 要記得關閉 VM 內預設的防火牆,否則是無法 Ping 到該電腦的。
- 目前遇到要是帳號是中文建的,會導致User Profile Folder變成中文,使得安裝過程會出現找不到 azurebox32.ico 的問題,經 Aska 建議,可以使用 User Profile Wizard 3.9 的工具來移轉,