思科***之PPTP ***在Cisco Router上的應用一:PPTP理論及基本實驗

接下來的幾天我們將一起來學習VPDN技術,包括PPTP、L2TP、PPPOE的基本原理及在Cisco IOS上的實現。今天先來學習PPTP技術。

wKiom1VaD2_wT-q0AACEpXoKlpw729.jpg


概述:

PPTP(Point-to-Point Tunnel Protocol 點對點隧道協議)不是一個標準協議。它由microsoft,Alcatel-Lucent和3COM聯合開發。PPTP由兩個協議組成,控制層面使用TCP的1723端口進行封裝,用來協商一些認證、加密等參數,類似於IPSEC ×××中的IKE協商階段;數據層面(即實際的數據流)使用GRE協議進行封裝,類似於IPSEC ×××第二階段中ESP的封裝。由於使用PPP來封裝具體的數據,而PPP不僅能夠封裝IP,還能夠封裝非IP的數據,如NetBEUI和IPX等。


PPTP的服務器有很多種,包括微軟自己的服務器操作系統(Windows Server 2003、Windows Server 2008、Windows Server 2012),一些路由器、防火牆廠商,基於於一些家用級別的小路由器都支持做爲PPTP的Server。這裏講兩個典型的案例,1、使用軟路由器Router OS可以做爲PPTP的Server(有興趣的讀者可以學習一個ROS);2、使用思科的路由器也可以做爲PPTP的Server。今天本文會講到PPTP的基本工作原理、封裝,以及基於Cisco Router IOS的PPTP Server配置和注意事項。


封裝:

控制信道的數據包封裝:

wKiom1VatNixLKQpAABAuLr98cY556.jpg

抓包如下:wKioL1VatnjivL-LAAMb3T710Dw045.jpg


實際數據包的封裝:

wKiom1VaBtHi78F_AABF8--slNc234.jpg

未加密的數據包

wKiom1VaBvKQhIT3AABH3Ek--pQ512.jpg

經過加密的數據包


通過Omnipeek抓包的截圖:

wKioL1VaDRuysDAuAAK9yqPo8gw249.jpg



注意事項:

  1. PPTP本身是可以不加密的,但微軟操作系統(包括XP和Win7等)的PPTP客戶端默認開啓了加密,因此如果想要使用嚮導配置客戶端後不做修改的情況下撥通×××,一定要在Server端開啓加密。PPTP只支持微軟的MCCP加密。

  2. PPTP由於是PPP封裝,因此PPTP的認證支持PAP、CHAP,但默認微軟操作系統(包括XP和WIN7等)默認都只勾選了MS-CHAP,因此如果想要使用嚮導配置客戶端後不做修改的情況下撥通×××,需要在Server端使用MS-CHAP。

  3. 在WINXP中默認是MS-CHAP V1,而在Win7中只支持MS-CHAP V2,如果在Server端只開啓了MS-CHAP V1,則WIN7會無法撥通。(可以通過實驗證明)

  4. 注意PPTP建立連接分爲兩個階段,控制信道用的是目標端口TCP 1723端口,如果1723端口被阻止,則無法撥通PPTP ×××。(在下面的實驗中會演示到)

  5. 注意實際的數據流是被封裝在GRE報文中的,而在實際工程中,一些防火牆默認可能並沒有開啓對GRE的狀態化檢測,因此可能會出現問題。這時候需要手工放行或開啓狀態化檢測。

  6. 注意防火牆等設備在做PAT時對GRE報文的處理。


實驗環境:


Cisco Router 

IOS Version:C7200-ADVENTERPRISEK9-M 15.2(4)S

 

Client:

  1. Windows XP

  2. Windows7 


以下實驗均可以通過模擬器實現,博主均使用模擬器。在Vmware workstation上安裝Windows XP和windows7操作系統,通過網卡橋接的方式與R2和R1相連。通過dynamips模擬器加載真實的72路由器的IOS來模擬思科路由器。大家只有多做實驗才能更加深刻的理解和吃透技術。紙上得來終覺淺,覺知此事要躬行。


網絡拓撲:


wKioL1VaB3jhH6VOAAB3ed2XjWE331.jpg

思科官方文檔配置實例鏈接:

http://www.cisco.com/c/en/us/support/docs/ip/point-to-point-tunneling-protocol-pptp/29781-pptp-ios.html


PPTP實驗部分:

本系統關於PPTP的實驗包括以下內容:(本文只演示基本的PPTP實驗,其他實驗在後續博文中介紹)

實驗1:基本的PPTP Server配置和Client配置(WinXP和Win7)

實驗2:使用不加密的PPTP配置

實驗3:使用PAP或CHAP認證的PPTP配置

實驗4:PPTP問題1:TCP1723被阻止導致無法撥通

實驗5:GRE防火牆檢測和PAT轉換問題

實驗6:綜合實驗1:PPTP在實際工程的應用

實驗7:綜合實驗2:PPTP結合radius實現多用戶部署


實驗1:基本的PPTP Server配置和Client配置

R1基本配置:

R1(config)#int f0/0

R1(config-if)#ip add 12.1.1.1 255.255.255.0

R1(config-if)#no shut

R1(config-if)#int lo 0

R1(config-if)#ip add 172.16.1.1 255.255.255.0

R1(config-if)#ip route 0.0.0.0 0.0.0.0 12.1.1.2


R2基本配置:

R2(config)#int f0/0

R2(config-if)#ip add 12.1.1.2 255.255.255.0

R2(config-if)#no shut

R2(config-if)#int f1/0

R2(config-if)#ip add 23.1.1.2 255.255.255.0

R2(config-if)#no shut


PPTP Server configration:


!--- Enable virtual private dial-up networking.
R1(config)#vpdn enable   //開啓×××D技術,一定要先敲這條命令。

!--- Enters VPDN group configuration mode for the specified VPDN group.

R1(config)#vpdn-group 1  //創建一個vpdn-group 1 並進入 vpdn group配置模式

!--- Enters VPDN accept-dialin configuration mode 
!--- and enables the router to accept dial-in requests.

R1(config-vpdn)#accept-dialin  //進入accept-dialin配置模式,並開啓接受撥入請求

!--- Specifies which PPTP protocol is used.

R1(config-vpdn-acc-in)#protocol pptp //選擇協議爲PPTP,這裏也可以選擇L2TP,這樣就是L2TP的×××,當然其他配置會有所不同。

!--- Specifies the virtual template that is used 
!--- in order to clone the virtual access interface.

R1(config-vpdn-acc-in)#virtual-template 1  //指定一個virtual-template進行關聯,用來克隆virutal access 接口

R1(config-vpdn-acc-in)#exit

R1(config)#ip local pool ***-address-pool 192.168.1.1 192.168.1.250 //建立一個地址池,用來爲撥入進來的用戶分配IP地址。

R1(config)#interface virtual-template 1    //創建一個virtual-template 1
R1(config-if)#encapsulation ppp            //封裝類型配置爲PPP
R1(config-if)#peer default ip address pool ***-address-pool   //調用剛纔創建的地址池
R1(config-if)#ip unnumbered Loopback     //借用IP地址,此處注意,Loopback接口上只要配置一個地址即可,也可以是物理接口        
R1(config-if)#ppp encrypt mppe auto     //"required" 關鍵字可以加也可以不加,不加表示可以加密,也可以不加密,加上表示強制使用MPPE加密,如果沒有則失敗
R1(config-if)#ppp authentication ms-chap ms-chap-v2 // 使用的認爲方式,這裏如果不加V2,VISIA以後系統都無法撥上來。
R1(config)#username cisco password cisco      //創建用戶


Clients配置(Windows XP)

1.點擊開始菜單->所有程序->連接到->顯示所有連接

wKioL1VaH1DDsJkUAAG6t8RwoeI947.jpg

2.單擊“新建連接嚮導”-->在彈出的對話框中選擇下一步。

wKioL1VaH5rgoKNGAAJRira8Q20404.jpg

3.在嚮導中選擇“連接到我的工作場所的網絡”

wKiom1VaHpaBuYAEAAGOb11DNTE308.jpg

4.選擇“虛擬專用網絡連接”

wKioL1VaIDvSiWstAAENeN7lwQk210.jpg

5.在此輸入的名字會是最後顯示在網絡鄰居和桌面上的×××的顯示名字,可後期更改

wKiom1VaHuTigj0pAADsD_mjuAI229.jpg

6.此處填寫PPTP服務器的IP地址或者域名。

wKioL1VaIKqQOtVsAAE8mOGTN28101.jpg

7.完成新建連接嚮導。

wKiom1VaH2nwP-2SAAGZ7kvrzZE022.jpg

8.點擊“完成”後輸入用戶名和密碼,剛剛設置的用戶名和密碼都是cisco。

wKioL1VaIP_DBrpTAAFX-22oakU323.jpg

9.可以看到正在連接的狀態。

wKiom1VaH7jz7NqWAAA7B1U-2o4576.jpg

10.可以看到×××已經連接上了。

wKioL1VaITLgXQskAADmOqrD-t0414.jpg

11.察看×××,已經拿到了剛剛地址池分發的地址。

wKioL1VaIWPzqrvHAAJRdXZ8SLg698.jpg

12.測試,ping R1身向的網絡172.16.1.1,可以ping通,×××工作正常。

wKioL1VaIWOxepczAAE_bLYAUo4339.jpg


Windows 7 配置


1.打開“控制面板”-->“網絡和共享中心”


wKioL1Vi76GzhznbAAPkqBLyZK4289.jpg

2.點擊“設置新的連接或網絡”

wKiom1Vi7hSxM6yGAALQ2-mg4MQ630.jpg

3.選擇“連接到工作區”

wKioL1Vi76LTPJHUAAG8dimoazU949.jpg

4.選擇“使用我的Internet連接(×××)”

wKiom1Vi7hTDxT0zAAGG8sDULds147.jpg

5.點擊“我將稍後設置Internet連接”

wKioL1Vi76LjNx4eAAFjefv1Mfg718.jpg

6.在Inetnet地址處填寫PPTP服務器的IP地址

wKioL1Vi76KhIV8QAAGMo1WPPCg343.jpg

7.輸入用戶名和密碼,創建連接,然後撥號就可以了。

wKiom1Vi7hSwi9TdAAEUpqKZbzE117.jpg

PPTP服務器的配置不變,Win7 ping 12.1.1.1也正常,我們發現卻撥不上去。再仔細看,發現WIN7只支持MS-CHAP V2,而我們在服務器端只配置了MS-CHAP,因此PPP協調不成功。

wKioL1Vi96LTWX0TAAEMii7GELQ780.jpg

可以看到默認×××的類型是自動,Windows 7支持 PPTP、L2TP、SSTP、IKEv2 四種自帶客戶端。

在數據加密部分可以看到默認的配置是“需要加密”,並且如果服務器拒絕將斷開連接。意思是服務器不支持加密就斷開。

在認證類型中可以看到默認支持CHAP和MS-CHAP V2,沒有MS-CHAP。自Windows Vista 起,微軟的操作系統不再支持MS-CHAP V1,只支持MS-CHAP V2。這一點配置的時候需要注意。

wKiom1Vi9hWzyXxKAAG-icJfU4k504.jpg

處理辦法:在Cisco路由器上加上MS-CHAP V2的認證方式

interface virtual-template 1

ppp authentication ms-chap ms-chap-v2

再次在Windows 7上撥號,成功。

wKioL1Vi-VOToeQ8AACXBljX_KU637.jpg  

可以看到Windows 7客戶端拿到了192.168.1.1的地址

wKiom1Vi-CDQ8Z2sAAFGsfSQrM4788.jpg

進行ping測試,可以ping通R1身後的172.16.1.1.

wKiom1Vi-HPTgnpCAAEQu35YtXI815.jpg

在路由器進行驗證:

wKioL1Vi-tPz1mDLAAIUbVTB7oU666.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章