思科***之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

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