虛拟專用網絡概述
模拟點對點連結(封裝)
模拟專用連結(加密)
點對點隧道協定(PPTP)
基于Internet協定安全性(IPSec)的第2層隧道協定(L2TP)
Internet協定安全性(IPSec)隧道模式
見下圖:

如何建構基于PPTP的站點到站點×××連接配接呢?
在前面的博文中,我們已經介紹了如何用ISA2006建立×××伺服器,以及遠端使用者如何利用×××伺服器撥入内網。如果是個别使用者在家辦公或出差在外,用前文提到的×××解決方案是可以圓滿解決的。但如果是一群使用者有互相通路的需求,例如某公司總部和分公司需要互相通路,那用×××遠端撥入的方式就顯得效率不高了。試想一下,公司總部500人,分公司300人,如果要互相通路,800人都要撥叫對方的×××伺服器,這顯然不是一個好的解決方案。
今天我們提供一種站點到站點的×××解決方案,可以很好地解決這個問題。我們引入下面的拓撲圖來說明這個方案的構思,某公司Florence總部的内網IP範圍是10.1.1.0,Berlin分公司的内網IP範圍是10.2.1.0。北京分公司使用一台ISA伺服器連接配接到網際網路,天津分公司也使用一台ISA2006連到公網。站點到站點的×××指的是在兩個公司的ISA伺服器上配置好×××的撥入撥出參數,確定兩個ISA伺服器既可以撥叫對方的×××伺服器,也可以接受對方×××伺服器的撥叫。這樣一來使用者隻要把預設網關指向自己的ISA伺服器,就可以不用撥叫對方公司的×××伺服器了,全部由ISA代勞了。例如Florence公司的Denver要通路Berlin公司的Istanbul,Denver隻要把通路Istanbul的請求送出給自己的預設網關-Florence,剩下的事就不用管了,Florence會自動撥叫Berlin公司的ISA伺服器Berlin,然後在兩個ISA伺服器之間建立完成×××隧道,接下來Denver的通路請求就被Florence通過×××隧道路由到Berlin公司的Istanbul上了。你看,這樣一來兩個公司員工互訪時就很友善了,隻要把網關指向自己的ISA伺服器,然後就可以透明地通路對方公司的内網,效率是不是有很大的提高呢?
建立站點間的×××需要在兩個×××伺服器上都進行設定,兩個ISA伺服器上的操作具有對稱性,我們先以Florence上的操作為例進行詳細講解,目前Florence已做了下列準備:
1、 防火牆政策中允許内網和本地主機任意通路。
2、 啟用了×××,允許使用PPTP和L2TP。
3、 ×××位址池的範圍是192.168.100.1-192.168.100.200。
一 建立遠端站點
建立遠端站點是部署站點間×××最重要的一步,遠端站點其實是一個自定義的遠端網絡,具體到Florence,其實就是要把Berlin分公司的内網10.2.1.0定義為一個遠端網絡。為什麼需要把對方公司的内網定義成一個新的網絡呢?因為我們知道網絡是ISA進行通路控制的基本管理單元,ISA考察一個通路請求時首先要考慮源網絡和目标網絡的網絡規則。如果不定義遠端網絡,Berlin分公司對Florence來說屬于外網範疇,而内網到外網的網絡規則是NAT,是以Florence不會允許從Berlin的Istanbul通路Florence的Denver。這就是我們為什麼要把Berlin公司的内網定義為一個新的網絡,隻有這樣我們才可以重新定義Florence内網和Berlin内網的網絡規則,進而制定出符合要求的防火牆政策。
建立遠端站點還涉及到建立×××隧道的參數設定,例如Florence把Berlin分公司的内網定義為遠端網絡,那Florence上就必須定義好連接配接這個遠端網絡要通過哪個×××伺服器,兩個×××伺服器使用哪種協定,如何進行身份驗證等,下面我們就來具體看看如何在Florence上建立遠端站點。
在Florence上打開ISA管理器,切換到虛拟專用網絡,如下圖所示,在“遠端站點”标簽下選擇“建立×××點對點連接配接”。
出現建立×××點對點連接配接向導,其實就是遠端站點的建立向導,首先我們要為遠端站點起個名字,如下圖所示,我們為遠端站點命名為Berlin。這個遠端站點的名字可不是随便取的,後面我們會知道ISA伺服器上必須建立一個和遠端站點同名的使用者。
接下來要選擇×××站點間連接配接要使用的協定,如果兩個×××伺服器都是ISA,那可以選擇PPTP或L2TP,如果是ISA和硬體×××組成站點間連接配接,那應該選擇IPSEC。在這個實驗中我們選擇使用PPTP作為站點間×××使用的隧道協定。見下圖:
如下圖所示,系統會彈出一個對話框提示你在ISA伺服器上必須有一個和遠端站點同名的使用者,而且使用者必須有撥入權限。也就是說Florence建立了一個遠端站點Berlin後,Florence伺服器上必須有一個名為Berlin的具有遠端撥入權限的使用者。如果Florence隸屬于域,那麼Berlin這個使用者也可以在域控制器上建立。建立出的這個使用者是為Berlin公司的×××伺服器撥叫Florence公司的×××伺服器準備的,Berlin公司的使用者通過他們的×××伺服器撥叫Florence的×××伺服器時,如果Berlin使用者源于Berlin這個遠端網絡,那Berlin的×××伺服器必須使用Berlin作為使用者名進行身份驗證。由于微軟這麼一個奇怪的規定,我們必須在Florence的ISA伺服器上準備好Berlin這個使用者。
接下來要填寫遠端站點的×××伺服器的IP位址或域名,Berlin的×××伺服器IP是192.168.1.8。見下圖:
下面設定的是Florence撥叫Berlin的×××伺服器時進行身份驗證的憑據,顯然,Berlin上也要有個名為Florence的使用者,在後續的操作中我們會在Berlin上建立這個使用者。見下圖:
接下來我們要定義遠端站點的IP位址範圍,如下圖所示,遠端站點的位址範圍是10.2.1.0-10.2.1.255。
接下來×××建立向導建議建立一個網絡規則,從遠端站點到内網,網絡規則是路由關系。這個提示很人性化,是ISA2006比ISA2004改進的地方。見下圖:
建立完網絡規則後,向導又很貼心地建議我們建立一條通路規則,允許内網和遠端站點互相通路。見下圖:
點選完成結束×××建立向導。見下圖:
向導結束後再次提示我們要建立一個名為Berlin的使用者,而且要允許遠端通路。見下圖:
遠端站點建立完畢後,如下圖所示,我們發現在向導的指引下,遠端站點到内網的網絡規則已經被建立了,而且網絡關系是路由。
如下圖所示,向導還幫助我們建立了通路規則,允許遠端站點和内網互相通路。
如下圖所示,向導還在路由和遠端通路中建立了請求式撥号,當Florence公司要通路Berlin公司時,Florence會自動撥叫Berlin的×××伺服器,建立出×××隧道,供使用者通路使用。
二 建立與遠端站點同名的使用者
最後不要忘記建立與遠端站點同名的使用者,如果Florence加入域,那麼既可以在Florence伺服器上建立這個使用者,也可以在域控制器上建立這個使用者。由于本例中Florence和Berlin兩個ISA伺服器都在工作組中,是以我們隻能在ISA伺服器上建立這個遠端通路使用者了。如下圖所示,在Florence的計算機管理工具中選擇建立一個名為Berlin的使用者。
使用者建立完畢後不要忘記使用者的遠端通路權限,如下圖所示,在使用者屬性的撥入标簽中将使用者的遠端通路權限設為允許通路。
OK,至此我們完成了在Florence上的設定,總結如下:
1、 将Berlin分公司的内網定義成遠端站點
2、 建立遠端站點和内網的網絡規則
3、 建立遠端站點和内網的通路規則
4、 建立與遠端站點同名的使用者
接下來輪到Berlin伺服器了,Berlin上同樣已進行了如下準備:
1、 允許内網和本地主機任意通路
2、 啟用×××,允許使用PPTP和L2TP。
3、 ×××位址池的範圍是192.168.200.1-192.168.200.200
Berlin伺服器上的設定基本和Florence完全對稱,首先仍然是需要建立遠端站點。如下圖所示,在Berlin的ISA管理器中選擇“建立×××點對點連接配接”。
為遠端站點命名為Florence。見下圖:
站點間×××連接配接使用的協定是PPTP,Berlin選擇的×××協定要和Florence完全一緻。見下圖:
連接配接到遠端站點,需要經過192.168.1.254-Florence公司的×××伺服器。見下圖:
Berlin撥叫Florence的×××伺服器時,進行身份驗證時所輸入的使用者名和密碼要比對Florence伺服器上剛建立的使用者賬号。見下圖:
定義遠端站點的位址範圍,輸入Florence公司的内網範圍10.1.1.0-10.1.1.255。見下圖:
接下來要建立遠端站點和内網的網絡規則,仍然是路由關系。見下圖:
然後建立通路規則允許内網和遠端站點互相通路。見下圖:
點選完成結束遠端站點建立。見下圖:
建立完遠端站點後,接下來就該建立與遠端站點同名的使用者了,如下圖所示,我們在Berlin伺服器上建立了使用者Florence。注意,在本次實驗中為簡單起見,Florence和Berlin兩個ISA伺服器都沒有加入域,是以使用者在ISA本機建立。如在生産環境中ISA已經加入了域,一般會在域控制器上建立這個使用者。
最後别忘了設定使用者的遠端通路權限,相信在Florence上做完一遍之後,大家在Berlin上進行操作時已經是輕車熟路了。見下圖:
兩端的×××伺服器配置完畢後,我們接下來要在内網的客戶機上進行測試了,如下圖所示,我們在Florence的Denver上pingBerlin公司的Istanbul
Denver通路Berlin内網的Istanbul不需要自己進行×××遠端撥号,隻要把通路請求送出給Florence就可以了。這時打開Florence的路由和遠端通路,如下圖所示,我們發現Berlin這個請求式撥号的狀态已經從斷開變成了已連接配接。
此時你打開Berlin的路由和遠端通路,如下圖所示,我們發現Florence這個請求式撥号的狀态也從斷開變成已連接配接了。
如下圖所示,我們發現Denver已經可以ping到Istanbul了,實驗成功。有一點要注意,有時請求式撥接上網的時間會稍長一些,可能前面的一些ping包會顯示Time out,這是正常現象,稍等片刻即可正常。
最後試試在Istanbul上通路Denver,如下圖所示,通路成功,至此,實驗順利完成。
建立站點間的×××不是難度很大的技術問題,如果兩端的×××伺服器中有硬體×××,那就應該使用IPSEC。如果兩端的×××都是微軟的ISA或路由與遠端通路,那就推薦使用PPTP或L2TP。ISA間并非不能使用IPSEC,隻是使用經驗告訴我這種拓撲并不穩定,當然,ISA2006的SP1可能會解決這個問題,大家有興趣可以測試一下。
如何建立基于L2TP的站點到站點的×××連接配接呢?
L2TP和PPTP相比,增加了對計算機的身份驗證,從理論上分析應該比PPTP更安全一些。L2TP驗證計算機身份可以使用預共享密鑰,也可以使用證書,我們把兩種方式都嘗試一下。
一 使用預共享密鑰
使用預共享密鑰實作L2TP的過程是是比較簡單的,我們在×××站點兩端的×××伺服器上配置一個相同的預共享密鑰,就可以用于L2TP協定中驗證計算機身份。如下圖所示,我們在Florence上定位到“虛拟專用網絡”,右鍵點選遠端站點Berlin,選擇“屬性”。
我們在遠端站點Berlin的屬性中切換到“協定”标簽,勾選使用“L2TP/IPSEC”,同時勾選使用預共享密鑰,并設定預共享密鑰為yejunsheng。這裡的設定會導緻Florence撥叫Berlin時,使用預共享密鑰yejunsheng來證明自己的身份。見下圖:
在“正常×××配置”中點選“選擇身份驗證方法”,如下圖所示,勾選“允許L2TP連接配接自定義IPSEC政策”,并設定預共享密鑰為yejunsheng。這個設定則是告訴Florence,接受×××用戶端使用預共享密鑰驗證計算機身份。這樣我們分别設定了Florence作為×××伺服器和×××用戶端都使用預共享密鑰驗證計算機身份,至此,Florence伺服器設定完畢。
接下來我們在Berlin伺服器上如法炮制,如下圖所示,選擇遠端站點Florence的屬性。
在遠端站點的屬性中切換到“協定”标簽,如下圖所示,選擇使用L2TP作為×××協定,并配置預共享密鑰為yejunsheng。
然後在“正常×××配置”中點選“選擇身份驗證方法”,如下圖所示,勾選“允許L2TP連接配接自定義IPSEC政策”,并設定預共享密鑰為yejunsheng。至此,Berlin伺服器也設定完畢。
這時我們來看看站點間×××配置的成果,如下圖所示,在Florence内網的Denver上ping Berlin内網的Istanbul。第一個包沒有ping通,這是因為兩個ISA伺服器正在建立×××隧道,接下來的包都可以順利往返,這證明我們的配置起作用了。
二 使用證書驗證
使用證書驗證比預共享密鑰驗證更加安全,隻是實作起來要麻煩一些,我們需要有CA的配合。在我們的實驗環境中,Denver是一個被所有的實驗計算機都信任的CA,Denver的CA類型是獨立根。有了CA之後,×××伺服器需要向CA申請證書以證明自己的身份,由于站點間×××中每個×××伺服器既是伺服器又充當客戶機角色,是以每個×××伺服器都需要申請兩個證書,一個是伺服器證書,一個是客戶機證書。
1、 在Florence上進行配置
首先我們要先為Florence申請兩個證書,一個是伺服器證書,一個是客戶機證書。如下圖所示,在Florence上我們在IE中輸入[url]http://10.1.1.5/certsrv[/url],在CA首頁中選擇“申請一個證書”。
選擇“送出一個進階證書申請”。見下圖:
選擇“建立并向此CA送出一個申請”。見下圖:
如下圖所示,我們在證書申請的表單中選擇申請一個客戶機證書,并且把證書存儲在計算機存儲中。
送出證書申請後,如下圖所示,我們發現Florence申請的證書已經被CA發放了,點選安裝此證書即可完成任務。
接下來如法炮制為Florence申請伺服器證書,如下圖所示,這次為Florence申請的是伺服器證書,仍然存儲在本地計算機存儲中,接下來的證書發放以及安裝就不再贅述。
如下圖所示,我們可以看到Florence的計算機存儲中已經有了剛申請的兩個證書,
接下來在遠端站點屬性中取消使用預共享密鑰驗證身份。見下圖:
然後在×××正常配置的選擇身份驗證方法中同樣取消使用預共享密鑰驗證身份,至此,我們在Florence上配置完畢。見下圖:
2、 在Berlin上進行配置
在Berlin上進行配置基本和Florence是一樣的,首先也是先從Denver申請證書,如下圖所示,Berlin先申請的是一個客戶機證書。
申請完客戶機證書後,如下圖所示,Berlin又申請了一個伺服器證書。
接下來就是在遠端站點中取消使用預共享密鑰。見下圖:
最後在×××正常配置的身份驗證方法中取消使用預共享密鑰。見下圖:
OK,兩個×××伺服器都進行了對稱配置,這下他們在進行身份驗證時隻能使用證書了。用客戶機測試一下效果吧,如下圖所示,在Berlin的Istanbul上ping Florence的Denver,結果還是令人滿意的,我們用證書實作L2TP的身份驗證獲得了成功!
這時打開Florence的路由和遠端通路,如下圖所示,我們發現Berlin這個請求式撥号的狀态已經從斷開變成了已連接配接。
此時你打開Berlin的路由和遠端通路,如下圖所示,我們發現Florence這個請求式撥号的狀态也從斷開變成已連接配接了。這個時候說明我們使用PPTP和L2TP這兩種協定建構站點到站點的×××連接配接已經成功了。
用L2TP實作站點間×××并不難,尤其是預共享密鑰的實作是很簡單的,如果是證書驗證,要注意對CA的信任,切記,隻有從一個被所有機器都認可的CA申請證書才是有意義的!