PPTP VPN在Cisco Router上的应用

接下来的几天我们将一起来学习VPDN技术,包括PPTP、L2TP、PPPOE的基本原理及在Cisco IOS上的实现。今天先来学习PPTP技术。

技术分享


概述:

PPTP(Point-to-Point Tunnel Protocol 点对点隧道协议)不是一个标准协议。它由microsoft,Alcatel-Lucent和3COM联合开发。PPTP由两个协议组成,控制层面使用TCP的1723端口进行封装,用来协商一些认证、加密等参数,类似于IPSEC VPN中的IKE协商阶段;数据层面(即实际的数据流)使用GRE协议进行封装,类似于IPSEC VPN第二阶段中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配置和注意事项。


封装:

控制信道的数据包封装:

技术分享

抓包如下:技术分享


实际数据包的封装:

技术分享

未加密的数据包

技术分享

经过加密的数据包


通过Omnipeek抓包的截图:

技术分享



注意事项:

  1. PPTP本身是可以不加密的,但微软操作系统(包括XP和Win7等)的PPTP客户端默认开启了加密,因此如果想要使用向导配置客户端后不做修改的情况下拨通VPN,一定要在Server端开启加密。PPTP只支持微软的MCCP加密。

  2. PPTP由于是PPP封装,因此PPTP的认证支持PAP、CHAP,但默认微软操作系统(包括XP和WIN7等)默认都只勾选了MS-CHAP,因此如果想要使用向导配置客户端后不做修改的情况下拨通VPN,需要在Server端使用MS-CHAP。

  3. 在WINXP中默认是MS-CHAP V1,而在Win7中只支持MS-CHAP V2,如果在Server端只开启了MS-CHAP V1,则WIN7会无法拨通。(可以通过实验证明)

  4. 注意PPTP建立连接分为两个阶段,控制信道用的是目标端口TCP 1723端口,如果1723端口被阻止,则无法拨通PPTP VPN。(在下面的实验中会演示到)

  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来模拟思科路由器。大家只有多做实验才能更加深刻的理解和吃透技术。纸上得来终觉浅,觉知此事要躬行。


网络拓扑:


技术分享

思科官方文档配置实例链接:

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


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   //开启VPND技术,一定要先敲这条命令。

!--- 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的VPN,当然其他配置会有所不同。

!--- 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 vpn-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 vpn-address-pool   //调用刚才创建的地址池
R1(config-if)#ip unnumbered Loopback     //借用IP地址,此处注意,Loopback接口上只要配置一个地址即可,也可以是物理接口        
R1(config-if)#ppp encrypt mppe auto     //"required" 关键字可以加也可以不加,不加表示可以加密,也可以不加密,加上表示强制使用MPPE加密,如果没有则失败
R1(config-if)#ppp authentication pap chap ms-chap  // 使用的认为方式
R1(config)#username cisco password cisco      //创建用户


Clients配置(Windows XP)

1.点击开始菜单->所有程序->连接到->显示所有连接

技术分享

2.单击“新建连接向导”-->在弹出的对话框中选择下一步。

技术分享

3.在向导中选择“连接到我的工作场所的网络”

技术分享

4.选择“虚拟专用网络连接”

技术分享

5.在此输入的名字会是最后显示在网络邻居和桌面上的VPN的显示名字,可后期更改

技术分享

6.此处填写PPTP服务器的IP地址或者域名。

技术分享

7.完成新建连接向导。

技术分享

8.点击“完成”后输入用户名和密码,刚刚设置的用户名和密码都是cisco。

技术分享

9.可以看到正在连接的状态。

技术分享

10.可以看到VPN已经连接上了。

技术分享

11.察看VPN,已经拿到了刚刚地址池分发的地址。

技术分享

12.测试,ping R1身向的网络172.16.1.1,可以ping通,VPN工作正常。

技术分享



本文出自 “杨森的IT之路” 博客,请务必保留此出处http://senyang.blog.51cto.com/3427514/1652654

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。