最近有個客戶提出請求,說他的Windows上的程式必須要要限制用戶僅能透過VPN連入,沒有走VPN的話就不能使用該服務,而此客戶也沒有準備硬體防火牆,所以只能用Windows Server內建的VPN+防火牆功能,我也是第一次安裝這種功能,就紀錄一下以便之後也有客戶會想用這種功能。
一.Windows Server新增遠端連線角色
![]() |
新增一個角色及功能 |
![]() |
直接選「下一步」 |
![]() |
「角色型或功能型安裝」,選「下一步」 |
![]() |
直接選「下一步」 |
![]() |
勾選「遠端存取」,選「下一步」 |
![]() |
這頁都不用勾,直接選「下一步」 |
![]() |
直接選「下一步」 |
![]() |
重要的步驟在這,「DirectAccess與VPN」與「路由」都要勾選,再選「下一步」 |
![]() |
直接選「下一步」 |
![]() |
不用勾別的,也是直接選「下一步」 |
![]() |
最後選「安裝」 |
![]() |
安裝過程需要幾分鐘,就讓它跑一下 |
![]() |
伺服器管理員裡的Dashboard,選擇「工具」>「遠端存取管理」 |
![]() |
開啟遠端存取管理後,針對VPN選項開始做細部設定 |
![]() |
因為只有單純要做VPN連線,這邊就只要勾「僅部署VPN」 |
![]() |
如果沒有加入網域的話,是不能使用DirectAccess,所以這邊就先略過 |
![]() |
部署VPN後的控制台上,右鍵「設定和啟用路由及遠端存取」 |
![]() |
直接選「下一步」 |
![]() |
選擇「自訂設定」,再按「下一步」 |
![]() |
勾選「VPN存取」和「NAT」,選「下一步」 |
![]() |
最後點選「完成」 |
![]() |
設定好以後就選「啟用服務」 |
![]() |
回到外面選擇服務,右鍵「內容」,做細部的設定 |
![]() |
針對IPv4設定靜態ip的範圍 |
![]() |
這邊就自定義就好,看用戶情況來決定 |
![]() |
安全性的設定,最好啟用IPsec加密,就放一支金鑰上去 |
![]() |
再來回到外面來,繼續設定NAT,右鍵選取「新增介面」 |
![]() |
選擇「乙太網路」,按「確定」 |
![]() |
啟用NAT,讓這VPN連線是可以帶本機的public ip的 |
![]() |
服務和連接埠的設定,把VPN |
![]() |
每勾一個選項,會進到「編輯服務」,再來把私人ip改成12.0.0.1,指向本機 |
二.設定VPN服務用的user和password
這步驟是要設定一組用戶端用來登入VPN的帳號密碼。
![]() |
帳密就跟一般user設定一樣 |
![]() |
「撥入」的設定,要勾選允許 |
三.設定防火牆
設定VPN完畢以後,就要開始修改防火牆,沒有搭配防火牆當然前面VPN的設定就沒用了。
![]() |
進入到Windows的防火牆,inbound的政策裡面,新增一條規則,選「預定規則的路由及遠端存取」,讓預訂規則都啟用 |
![]() |
路由及遠端存取政策都要勾選,再選「下一步」 |
再來新增一條等一下用來測試用的規格,使用的情境是用戶端僅能依靠VPN來連入這台伺服器上的某些服務,這裡的假設是要用VPN才能使用本機的FTP(21 Port),若不連VPN就會被擋掉,而這種情境就就必須修改防火牆來限制。
![]() |
動作的部分就是選「允許連線」,這條規則就完成了 |
![]() |
新增一條inbound規則,勾選「允許規則」,勾選「連接埠」 |
![]() |
勾選「特定本機連接埠」,填入「21」 |
![]() |
最後的動作也是勾「允許連線」,選「下一步」 |
![]() |
將規則套用所有網路環境 |
![]() |
幫規則取個名字然後就完成了 |
![]() |
點選該規則,右鍵編輯它 |
![]() |
選擇「領域」>「這些IP位址」>「新增」>「這些IP位址範圍」,把前面設定過的ip範圍填入,只限制這些ip範圍可以聽這台伺服器的21port |
![]() |
用xampp開發工具啟一個ftp服務,讓21 port on起來做測試 |
四.測試透過VPN連線服務
回來自己的電腦上面,網路的VPN功能上新增連線,然後測試一下連線到server端的ftp能否正常![]() |
「VPN」 >「新增VPN連線」 |
![]() |
依照前面設定的所有資訊,分別輸入「名稱」、「伺服器ip」、「VPN類型」、「共用金鑰」、「使用者名稱和密碼」、「使用者」和「密碼」,儲存這個設定,然後按下連線 |
![]() |
連線VPN直到通為止 |
![]() |
如果VPN連線後telnet 172.16.0.1 21會通的話就表示設定有成功 |
![]() |
若切斷VPN會連線失敗,也表示防火牆政策是正常的 |
關於telnet 172.16.0.1 21的測試,我搞了一陣子才懂,最初用對外IP來測試,例如43.254.16.288:21,怎麼試都不會通,後來才發現是因為NAT有打開,VPN連通了以後,這段連線就會成內部的加密通訊,Client和Server端都會得到一個Private IP,伺服器那端會預設用172.16.0.1,所以在連線的時候不能去連Public IP,這點很重要,因為這會影響到程式上面要給VPN聽的IP位址。
沒有留言:
張貼留言