客戶有這樣的需求:
#想用AWS EC2啟用Windows伺服器
#該台伺服器需要使用SSL VPN連線至特定VPN Server
#該台伺服器需要能執行C#程式來執行特定任務
#要能夠提供GUI介面的連線,以方便相關人員進行管理
由於客戶原本在自家機房就有一台伺服器擔任這個任務,之所以想移至AWS是為了安心和安全考量。
我原本以為是很簡單的事情,就在AWS起台Windows的EC2就OK了,實際上啟用後才發現真相不簡單。
原來真相是:
#當EC2連線SSL VPN時,會造成RDP無法再連線 (因為網路相關原理)
#就算利用TeamViewer、VNC之類的另外遠端管理方式也一樣無法使用
#在AWS Forum也有很多相似問題的用戶出現,官方的建議都是enable split tunneling
#可是enable split tunneling是需要VPN Server端才能設定,客戶無法管理VPN Server
沒關係,山不轉路轉,所以我測試了幾種方式,終於讓我找到一個可行的方法,並且確定可以正常運作,所以在此分享一下!
首先要先在AWS建立兩台EC2,架構請參考上面的圖片。
Server-A (連線VPN使用):
#必須使用Juniper VPN Client
#VPN連線後無法用RDP管理(TeamViewer也無法連線)
#綁定兩個Network Interface,好讓Server-B用內部IP連線
Server-B (連線RDP使用):
#讓Clients可以用RDP連線
#利用內部IP再連Server-A
連線步驟說明:
1.用RDP連線至Server-A (Public IP),
在Server-A開啟SSL VPN連線軟體並進行連線,
連線成功後, RDP會中斷(TeamViewer也一樣會斷)。
2.用RDP連線至Server-B (Public IP),
在Server-B開啟遠端桌面連線軟體來連線Server-A,
記得此時要用Server-A的內部IP。
3.成功用RDP連線進Server-A,此時就可以管理Server-A了。
此外要注意的是:
1.啟用EC2時就要為該台EC2綁定2個網卡,並設定好內部IP位置
2.Security Group中要予許內部IP和VPN Server的TCP連線