毋須額外添購VPN設備,也能獲得最佳網路效能
以Windows Server 2008建構企業VPN網路TOP10

2009-01-05
在全球經濟蕭條的年代裡,藉由Windows Server 2008來建構企業VPN網路,相信是最經濟實惠的最佳解決方案了,不僅如此,它還可以整合網路存取保護(NAP)技術,並提供最新SSTP連線的最佳安全機制。
在企業的網路環境規劃中,如果想要讓行動使用者可以快速安全地存取內部網路資源,最好的規劃當然是建置VPN網路。只是VPN解決方案有許多種,如何選擇是一門大學問,例如直接申請ISP所提供的VPN專線,將分散的各個營運處網路全部串起來,雖然這種架構方式在效能與頻寬上的表現最為理想,但是所需花費的成本也最可觀。  

許多中小企業可能會選擇較符合經濟效益的VPN設備,或是乾脆直接使用防火牆內建的VPN功能,但是這樣做可能會影響到防火牆的效能。建議不妨直接採用Windows Server 2008內建的VPN網路服務(路由及遠端存取),不僅能夠節省額外購置VPN設備的成本,又可以獲得最佳的網路運作效能。在進階的管理方面,還可使用最新的SSTP連線機制,以及整合網路存取保護的安全機制,至於怎麼做呢?請看以下介紹的VPN網路十大祕訣。  

Top1 為何用戶端無法進行PPTP的VPN連線?  

Q:目前我在公司的邊際防火牆內建置了一部Windows Server 2008的VPN伺服器,打算用它來提供遠端使用者的VPN連線服務,但不知道為何在完成設定與啟用VPN服務之後,遠端的使用者嘗試連線時卻出現如下圖所示的錯誤訊息,該如何解決這個問題呢?

▲PPTP受防火牆阻擋連線

A:這個問題的發生原因很單純,主要是因為外部的防火牆未設定開放相關的VPN通訊協定連線,以下就以Windows Server 2008內建的防火牆設定為例來做說明。  

首先必須開啟VPN伺服器上的「具有進階安全性的Windows防火牆」介面,然後在「輸入規則」節點頁面內找到「路由及遠端存取(GRE-In)」項目,並且確認是否已經啟用並允許連線。  

如下圖所示,如果目前設定成「封鎖連線」,那麼就會出現前面所提到的錯誤訊息。至於其通訊協定設定,主要是GRE通訊協類型,而本機與遠端連接埠則為所有的連接埠。

點圖放大
▲確定已開放GRE協定連線

除了開放GRE連線之外,另一個同樣需要確認允許連線的規則項目為「路由及遠端存取(PPTP-In)」,其開放的通訊協定與通訊埠分別為TCP與本機連接埠1723,遠端連接埠則設定成所有連接埠。  

Top2 何謂SSTP的VPN連線機制?其運作原理為何?  

Q:我在Windows Vista Service Pack 1技術研討會中得知,在SP1更新中提供了一個全新的SSTP通訊協定來連線Windows Server 2008 VPN網路的功能,可否說明一下SSTP的運作原理?  

A:所謂SSTP,是安全通訊端通道通訊協定(Secure Socket Tunneling Protocol)的簡寫,它是Windows Vista Service Pack 1在結合Windows Server 2008的VPN網路連線上,所提供的一個全新安全連線機制。

點圖放大
▲通訊協定層級的SSTP系統架構

SSTP可為企業IT帶來的主要效益有兩項。第一項效益是,由於它是將PPTP通訊流量封裝在HTTPS協定的SSL通道中,所以企業邊際的防火牆便不需要特別為PPTP或L2TP的VPN連線需求而開放特定的連接埠。  

第二項效益是,在VPN連線通訊安全方面的強化,因為它讓PPP使用了更強化的EAP-TLS驗證方法。也由於是透過SSL的443埠來建立連線,因此更能夠藉由傳輸層級的加密機制與一致性檢查,讓整體的安全性比傳統VPN的連線方式更高。  

當用戶端的電腦為Windows Server 2008或Windows Vista Service Pack 1時,只要啟動以SSTP的VPN連線機制的時候,便會如上頁圖示開始進行運作程序。  

首先,在SSTP用戶端與SSTP的VPN伺服器建立一個TCP連線,SSTP的用戶端會自動取得一個動態配置的TCP通訊埠,SSTP的VPN伺服器則會固定採用TCP 443通訊埠。  

接著SSTP用戶端會傳送一個SSL Client-Hello訊息,指示SSTP用戶端須建立一個與SSTP伺服器的SSL工作階段。然後,SSTP的VPN伺服器傳送一個它的電腦憑證到SSTP用戶端。  

SSTP用戶端隨後將對於所接收到電腦憑證進行確認,並且確認所採用的加密方法是否符合目前的SSL工作階段,以便透過此公開金鑰處理後續工作階段進行中的加密動作,接著把已加密過的SSL工作階段金鑰傳送給SSTP的VPN伺服器。  

接著,SSTP的VPN伺服器對已加密的SSL工作階段金鑰以及電腦憑證的私密金鑰進行解密。所有後續SSTP用戶端與SSTP的VPN伺服器之間的通訊,將採用加密與SSL工作階段金鑰的加密方法。  

隨後SSTP用戶端傳送HTTP over SSL要求訊息至SSTP的VPN伺服器。而SSTP用戶端的連線將與SSTP的VPN伺服器形成一個SSTP通道。接著,SSTP用戶端開始在SSTP通道中以PPP方式SSTP的VPN伺服器進行連線,其中的交談內容包括使用者身分的驗證,以及檢查PPP的驗證方法與IPv4或IPv6的組態設定。最後,SSTP用戶端開始傳送IPv4或IPv6的資料流量到PPP的連線上。  

Top3 建立Windows Server 2008中VPN伺服器專屬的憑證範本  

Q:請問Windows Server 2008的VPN伺服器的安裝與管理方法,是否和前一個版本相同?而在安裝完成之後,如果想提供遠端使用者進行SSTP的連線機制,需要先完成那一項前置作業?  

A:關於Windows Server 2008的VPN伺服器建置,基本的管理方法與前一版的Windows Server 2003一樣。接下來,說明VPN伺服器在建置後的第一個重要設定步驟,也就是VPN伺服器憑證範本的相關建立說明,以便後續申請與安裝伺服器憑證。  

在為VPN伺服器安裝專屬的電腦憑證之前,必須先建立一個其專屬的憑證範本。首先,在擔任憑證伺服器的主機登入之後,藉由「系統管理工具」下拉選單中開啟「憑證授權單位」管理介面,接著展開至「憑證範本」項目節點上,按下滑鼠右鍵並點選快速選單中的【管理】。  

緊接著,在眾多的憑證範本項目中找到「IPSec(離線要求)」項目,並且按下滑鼠右鍵,點選快速選單中的【複製範本】。隨後設定一個唯一的範本顯示名稱,並自行定義憑證的有效期期間(最多999年)以及更新的間隔時間。然後如下頁圖示在〔處理要求〕活頁標籤內勾選「允許匯出私密金鑰」選項,再按下右下角的〔CSP〕按鈕。  

接著,勾選下方CSP清單中的「Microsoft Enhanced RSA and ASE Cryptographic」項目,然後切換到〔延伸〕活頁標籤中,選取「應用程式原則」項目並點選〔編輯〕。開啟「編輯應用程式原則延伸」頁面後,先刪除預設的「IP安全性IKE中繼」,再分別加入「用戶端驗證」與「伺服器驗證」。最後切換到〔安全性〕活頁標籤內,在「群組或使用者名稱」清單中選取【Authentication Users】項目,並將下方權限清單中的允許「註冊」勾選即可。

點圖放大
▲憑證範本處理要求設定

Top4 正確申請與安裝Windows Server 2008中的VPN伺服器憑證  

Q:我已經建立了Windows Server 2008 VPN伺服器中所需的憑證範本,請問接下來該如何讓此VPN伺服器去申請與安裝憑證,好讓以SSTP連線機制的VPN網路可以正常提供服務?  

A:建立好VPN伺服器憑證範本之後,必須再回到「憑證授權單位」管理介面,然後點選「憑證範本」項目,按下滑鼠右鍵並點選快速選單中的【新增】以及下拉選單中的【要發出的憑證範本】。在如下圖所示的「啟用憑證範本」頁面中,便會看見自己所建立的「VPN SERVER」憑證範本。請在選取之後按下〔確定〕。

▲選擇要啟用的憑證範本

接下來,從憑證授權單位的主機上來申請與安裝此電腦憑證到VPN主機電腦。首先,由VPN主機的IE瀏覽器中連線登入憑證授權單位的網站(例如https://caserver/certsrv),接著會開啟憑證服務頁面,請點選其中的「要求憑證」連結。

▲進階憑證要求設定

接著,在「要求憑證」連結的頁面中點選「進階憑證要求」連結。來到「進階憑證要求」頁面後,點選「向這個CA建立並提交一個要求」連結。緊接著進入如上圖所示的「進階憑證要求」表單頁面,先在「憑證範本」下拉選單中選擇【VPN SERVER】,然後在離線範本識別資訊區域的第一個欄位中,輸入你公司VPN網路給予外部使用者連線的網際網路FQDN位址(絕對不可以輸入錯誤),然後在下方的CSP下拉選單中選擇【Microsoft Enhanced RSA and AES Cryptographic Provider】,並且勾選「將金鑰標示成可匯出」選項,最後按下〔送出〕按鈕。  

按下〔送出〕按鈕後會彈跳出「Web存取確認」警告訊息,請按下〔是(Y)〕繼續。接著來到「憑證已發出」頁面,在此點選「安裝這個憑證」連結。執行之後,將會再次出現「Web存取確認」警告頁面,讓使用者確認來源憑證的合法性,按下〔是〕按鈕即可。  

完成在憑證授權單位主機上的VPN SERVER憑證安裝之後,還必須將預設安裝在以目前使用者容器中的VPN SERVER憑證項目,加入到以本機為主的憑證容器中才可以正常運作。  

首先在VPN伺服器上以MMC介面開啟MMC管理介面,然後在「新增或移除嵌入式管理單元」頁面中,分別加入兩個「憑證」管理項目,請務必加入「目前的使用者」和「本機電腦」。  

接著,在「憑證—目前的使用者」→「個人」→「憑證」容器中,會看到目前所安裝的VPN SERVER專屬的電腦憑證。在此憑證項目上按下滑鼠右鍵,然後點選快速選單中的【所有工作】→【匯出】。進入「憑證匯出精靈」頁面後,整個設定過程中有些設定要特別注意。  

在「匯出私密金鑰」頁面中選取「是,匯出私密金鑰」選項,然後按下〔下一步〕繼續。來到「匯出檔案格式」頁面內,勾選「如果可能的話,包含憑證路徑中的所有憑證」和「匯出所有延伸內容」項目,並按下〔下一步〕。切換至「密碼」頁面後,設定用來保護這個憑證檔案的密碼,這個密碼在後續匯入到本機電腦的作業時需要再次輸入。  

最後,只要將此憑證檔案匯入本機電腦的憑證容器中即可。請在本機電腦的「個人」→「憑證」節點上按下滑鼠右鍵,然後點選快速選單中的【匯入】。執行過程中將出現「匯入檔案」頁面,請按下〔瀏覽〕按鈕選取前面所匯出的憑證檔案(副檔名=pfx)即可。  

Top5 讓Windows Vista SP1可以採用SSTP協定連線VPN網路  

Q:當我已經完成Windows Server 2008的VPN伺服器憑證範本建立,以及申請與安裝憑證之後,還有哪些設定需要進行呢?如果已經設定好VPN伺服端,用戶端的Windows Vista SP1電腦該如何進行SSTP的VPN網路連線呢?  

A:完成憑證的申請與安裝等各項設定動作之後,便算是完成了VPN伺服器的SSTP組態配置,接下來便可以在一部Windows Vista Services Pack 1電腦上做一些必要的設定,從外部網路嘗試SSTP的VPN網路連線。  

首先,在預先建立好的VPN網路連線上開啟「內容」視窗,並切換到〔安全性〕活頁標籤中,然後選取「進階(自訂的設定)」項目並按下〔設定〕按鈕。接著會開啟「進階安全性設定」頁面,先在「登入安全性」區域內選取「使用可延伸的驗證通訊協定(EAP)」,然後點選下拉選單中的【Protected EAP(PEAP)(啟用加密)】,再按下〔內容〕。  

進入「受保護的EAP內容」視窗後,勾選「確認伺服器憑證」項目,然後勾選下方「受信任的根憑證授權單位」窗格內的公司憑證,並在「選擇驗證方法」下拉選單中選擇【Secured password(EAP-MSCHAP v2)】。至於是否要勾選「啟用隔離檢查」設定,端看公司內部的網路中是否有整合網路存取保護(NAP)安全機制。  

請注意!公司受信任的根憑證授權單位是否會出現在下方窗格中,主要的關鍵因素有兩點:公司內部網域是否建置企業級的根憑證伺服器,以及這部用戶端電腦是否曾經開機登入過相同的網域。  

完成〔安全性〕活頁標籤內的組態配置之後,接下來切換到〔網路功能〕活頁標籤內,如下圖所示在「VPN的類型」下拉選單中選取【安全通訊端通道通訊協定(SSTP)】,並按下〔確定〕按鈕。

點圖放大
▲設定連線的VPN類型

完成Windows Vista Services Pack 1用戶端SSTP連線組態的VPN設定之後,便可以開始連線測試。開啟VPN網路連線後,將會出現連線視窗,請按下〔連線〕按鈕。  

隨後將出現「輸入認證」視窗,正確輸入已經開放遠端連線存取的網域使用者帳戶與密碼,然後按下〔確定〕按鈕。第一次進行VPN連線時,會出現「確認伺服器憑證」視窗,可以按下其中的〔檢視伺服器憑證〕按鈕來查看憑證內容,或是按下〔確定〕完成連線。在完成SSTP的VPN網路連線的網路狀態下,可以清楚地發現它目前所採用的連線方式是SSTP,而不是PPTP。  

Top6 當SSTP連線出現CN名稱不符合傳遞值的錯誤時,該如何解決?  

Q:我根據Windows Server 2008 SSTP的VPN建置需求,在伺服端上安裝了CA相關的電腦憑證,可是在Windows Vista SP1用戶端連線時,卻出現了如下圖所示的「憑證的CN名稱不符合傳遞值」錯誤訊息,請問這個問題是如何產生的,該怎麼解決呢?

▲憑證主體名稱不符合

A:雖然你在Windows Server 2008的VPN伺服器已經安裝了電腦憑證,但是憑證的主體名稱(CN),卻與在網際網路上所發布的連線位址(FQDN)不相同,所以會出現以上這一則錯誤訊息。  

之所以發生此項問題,除了以上這個可能之外,也可能是用戶端VPN的連線位址設定成IP位址而非FQDN。如果是伺服器憑證主體名稱的問題,則必須透過憑證伺服器網頁的方式來申請,而無法直接透過MMC的「憑證」管理介面進行申請,因為一般憑證預設的主體名稱都是直接以內部的電腦名稱+DNS網域名稱來命名(例如cogate.local),因此會造成上述的錯誤訊息。  

Top7 解決VPN連線時所出現的SSTP撤銷伺服器已離線的錯誤  

Q:公司之前是採用Windows Server 2003的VPN服務來提供員工遠端存取企業資源的需求,最近得知Windows Server 2008提供的VPN服務可支援直接以TCP 443埠的SSTP(Secure Socket Tunneling Protocol)連線方式,因此打算改用這種連線方式,只是為何我在所支援的Windows Vista SP1上進行SSTP的VPN連線時,卻會出現如下所示的「因為撤銷伺服器已離線,無法完成撤銷檢查」錯誤訊息呢?

▲SSTP連線VPN錯誤訊息

A:關於Windows Server 2008所提供的SSTP的VPN連線方式,基本上只要在「路由及遠端存取」介面中啟用VPN功能,並完成伺服器憑證的申請與CA憑證伺服器網址的發布,便可以正常提供Windows Vista SP1與Windows XP SP3的SSTP連線。

點圖放大
▲查看憑證撤銷清單網址

此問題的錯誤訊息,便屬於沒有正確完成CA憑證伺服器網址發布時所導致的錯誤訊息。想要解決這個問題,先在VPN伺服器上透過MMC介面開啟「憑證」管理介面,然後開啟所申請的伺服器憑證內容,如上圖所示切換到該憑證檢視的〔詳細資料〕活頁標籤內,在此可以找到「CRL發布點」的欄位資訊,其中包括了URL的位址相關資訊。  

可以透過IE瀏覽器經由網際網路測試此網址是否能夠正常連線,如果正常連線,表示這部CA伺服器網址已正常發布到網際網路上。反之,則代表目前的網路邊際防火牆上沒有正確完成相關的安全發布設定。以下簡單說明這兩種防火牆類型的設定方向:  

‧一般硬體式防火牆:須設定由內到外的NAT一對一IP位址靜態對應到內部的CA憑證伺服器。  

‧Microsoft ISA Server:可透過伺服器發布規則,設定唯一發布CA憑證伺服器上的「/CerEnroll」資料夾路徑,這種方式在安全性上高出很多。  

Top8 如何得知哪些連線使用者目前被NAP的網路隔離?  

Q:請問在整合NAP安全架構的企業網路環境內,IT人員該如何從即時監控中得知哪些使用者或電腦目前正遭到網路隔離中,以便於在第一時間中告知與協助使用者進入到合法的網路中。  

A:根據了解,在目前所有NAP的架構中,若想要得知哪些NAP用戶端目前正受到網路隔離中,也只有整合VPN與802.1x才可以做到,前者可以透過Windows Server 2008自行監看,後者則必須由支援動態VLAN的802.1x交換器介面進行監看。  

在VPN用戶端連線的即時監視部分,可以從VPN伺服器的「路由及遠端存取」介面中的「遠端存取用戶端」項目節點來查看,如果「狀態」欄位資訊顯示成沒有限制,代表該NAP用戶端電腦並沒有遭到隔離。如果NAP用戶端電腦遭到隔離,則會出現如下圖所示的狀態顯示,清楚標示為「受限制」。

▲受隔離的VPN用戶端

Top9 讓非公司的網域電腦無法連線公司的內部網路  

Q:Windows Server 2008針對VPN網路所提供的存取保護機制(NAP)雖然好用,但是公司之外的使用者若其電腦也啟用了NAP的相關設定,並且也碰巧符合公司所定義的NAP健康原則,那麼不就只要有帳號和密碼,便可以輕易地取得公司內部網路的動態IP位址配置?針對這個問題,我想知道在VPN的NAP架構設計中是否可以強制設定僅有公司網域內的電腦,才能夠取得VPN網路所核發的動態IP位址呢?  

A:在NAP的架構中,除了能夠驗證用戶端電腦的健康狀態之外,在此之前還可以先檢查用戶端的電腦是否相容於NAP的系統需求,以及是否為特定的使用者或電腦群組成員。  

以DHCP或VPN架構為主的NAP安全規劃來說,便可以先在「Active Directory使用者及電腦」介面中建立一個安全性群組,並且設定好所有其下的電腦成員。

▲自訂網路原則設定

緊接著便可以在網路原則伺服器的「網路原則」節點頁面中,新增一個自訂的網路原則。設定時,先在〔概觀〕活頁標籤中將存取權限設定為「拒絕存取」。  

然後再如上頁圖所示切換到〔條件〕活頁標籤內,新增一個驗證「電腦群組」的條件,而所設定的電腦群組便是前面設定的電腦群組,如此用戶端電腦在取得DHCP配置的動態IP位址之前,便需要先通過是否為指定電腦群組成員的檢查。  

非指定NAP電腦群組的用戶端電腦,若無法成功取得動態IP位址的顯示範例,便不能進行第二道的安全健康原則檢查程序。  

此外須注意的是,如果原先合法的NAP用戶端電腦目前正在連線存取網路資源,而這時候系統管理員臨時將它從合法的電腦群組成員清單中移除,那麼該電腦在下次重新取得動態IP位址時,將無法取得合法的IP位址。  

Top10 設定NPS事件紀錄以及變更RADIUS連接埠號碼  

Q:請問在網路原則伺服器的管理中,是否可以針對運作中產生的錯誤,以及被拒絕與成功獲得連線的事件進行記錄控管,此外它與RADIUS的整合應用部分,是否可以自行調整其預設的連接埠呢?  

A:基本上,這些管理需求在網路原則伺服器上都做得到。先進入網路原則伺服器管理介面中,然後在最上層的本機節點項目上按下滑鼠右鍵,並點選快速選單中的【內容】。  

開啟「內容」視窗後,在〔一般〕活頁標籤內除了能夠變更預設的伺服器描述之外,也可以決定是否要在事件檢視器中記錄被拒絕與成功通過驗證的事件。  

值得注意的是,在系統預設的狀態下,有關網路原則伺服器(NPS)的錯誤事件都會全部被記錄下來。  

接著切換到〔連接埠〕活頁標籤內,如下圖所示在此可以看到預設的RADIUS服務、所設定的驗證連接埠(1812、1645)以及負責帳戶處理的連接埠(1813、1646),這樣的預設值可以符合大部分需要與其進行整合的軟硬體設備。

點圖放大
▲NPS的RADIUS連接埠設定

此外,有一點要特別注意,如果修改過預設的任何連接埠號碼,除了必須在與其整合的裝置上變更成相同的設定之外,還需要在本機Windows防火牆的「例外」清單中列入這些連接埠號碼。  


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!