VPN的典型隧道协议.docx
《VPN的典型隧道协议.docx》由会员分享,可在线阅读,更多相关《VPN的典型隧道协议.docx(18页珍藏版)》请在冰豆网上搜索。
VPN的典型隧道协议
VPN的典型隧道协议
2007-04-2721:
38:
00来源:
关键字:
VPN隧道协议
1、点对点隧道协议(PPTP)
点对点隧道协议(PPTP,Point-to-pointTunnelingProtocol)是一种用于让远程用户拨号连接到本地ISP,通过因特网安全远程访问公司网络资源的新型技术。
PPTP对PPP协议本身并没有做任何修改,只是使用PPP拨号连接,然后获取这些PPP包,并把它们封装进GRE头中。
PPTP使用PPP协议的PAP或CHAP(MS-CHAP)进行认证,另外也支持Microsoft公司的点到点加密技术(MPPE)。
PPTP支持的是一种客户-LAN型隧道的VPN实现。
传统网络接入服务器(NAS)执行以下功能:
它是PSTN或ISDN的本地接口,控制着外部的MODEM或终端适配器:
它是PPP链路控制协议会话的逻辑终点;它是PPP认证协议的执行者;它为PPP多链路由协议进行信道汇聚管理;它是各种PPP网络控制协议的逻辑终点。
PPTP协议将上述功能分解成由两部分即PAC(PPTP接入集中器)和PNS(PPTP网络服务器)来分别执行。
这样一来,拨号PPP链路的终点就延伸至PNS。
PPTP协议正是利用了“NAS功能的分解”这样的机制支持在因特网上的VPN实现。
ISP的NAS将执行PPTP协议中指定的PAC的功能。
而企业VPN中心服务器将执行PNS的功能,通过PPTP,远程拥护首先拨号到本地ISP的NAS,访问企业的网络和应用,而不再需要直接拨号至企业的网络,这样,由GRE将PPP报文封装成IP报文就可以在PAC-PNS之间经由因特网传递,即在PAC和PNS之间为用户的PPP会话建立一条PPTP隧道。
建立PPTP连接,首先需要建立客户端与本地ISP的PPP连接。
一旦成功的接入因特网,下一步就是建立PPTP连接。
从最顶端PPP客户端、PAC和PNS服务器之间开始,由已经安装好PPTP的PAC建立并管理PPTP任务。
如果PPP客户端将PPTP添加到它的协议中,所有列出来的PPTP通信都会在支持PPTP的客户端上开始与终止。
由于所有的通信都将在IP包内通过隧道,因此PAC只起着通过PPP连接进因特网的入口点的作用。
从技术上讲,PPP包从PPTP隧道的一端传输到另一端,这种隧道对用户是完全透明的。
PPTP具有两种不同的工作模式,即被动模式和主动模式。
被动模式的PPTP会话通过一个一般是位于ISP处的前端处理器发起,在客户端不需要安装任何与PPTP有关的软件。
在拨号连接到ISP的过程中,ISP为用户提供所有的相应服务和帮助。
被动方式的好处是降低了对客户的要求,缺点是限制了客户对因特网其他部分的访问。
主动方式是由客户建立一个与网络另外一端服务器直接连接的PPTP隧道,这种方式不需要ISP的参与,不再需要位于ISP处的前端处理器,ISP只提供透明的传输通道。
这种方式的优点是客户拥有对PPTP的绝对控制,缺点是对用户的要求较高,并需要在客户端安装支持PPTP的相应软件。
通过PPTP,远程用户经由因特网访问企业的网络和应用,而不再需要直接拨号至企业的网络。
这样大大的减少了建立和维护专用远程线路的费用。
且为企业提供了充分的安全保证。
另外,PPTP还在IP网络中支持IP协议。
PPTP“隧道”将IP、IPX、APPLE-TALK等协议封装在IP包中,使用户能够运行基于特定网络协议的应用程序。
同时,“隧道”采用现有的安全检测和认证策略,还允许管理员和用户对数据进行加密,使数据更加安全。
PPTP还提供了灵活的IP地址管理。
如果企业专用的网络使用未经注册的IP地址,那么PNS将把此地址和企业专用地址联系起来。
PPTP协议是一个为中小企业提供的VPN解决方案,但PPTP协议在实现上存在着重大安全隐患。
有研究表明其安全性甚至比PPP还要弱,因此不适用于需要一定安全保证的通信。
如果条件允许,用户最好选择完全能够替代PPTP的下一代二层协议L2TP。
2、第二层转发(L2F)
L2F由Cisco公司在1998年5月提交给IETF,RFC2341对L2F有详细的阐述。
L2F可以在多种介质(如AMT、帧中继、IP网)上建立多协议的安全虚拟专用网。
它将链路层的协议(如HDLC,PPP,ASYNC等)封装起来传送。
因此,网络的链路层完全独立于用户的链路层协议。
L2F远端用户能够通过任何拨号方式接入公共IP网络,首先按常规方式拨号到ISP的接入服务器(NAS),建立PPP连接:
NAS根据用户名等信息,发起第二重连接,呼叫用户网络的服务器。
在这种方式下隧道的建立和配置对用户是完全透明的。
L2F允许拨号接入服务器发送PPP帧传输并通过WAN连接到达L2F服务器。
L2F服务器将包去封装后把它们接入到公司自己的网络中。
3、二层隧道协议(L2TP)
L2TP协议的前身是Microsoft公司的点到点隧道协议(PPTP)和Cisco公司的二层转发协议(L2F)。
PPTP协议是一个为中小企业提供的VPN解决方案。
但PPTP协议在实现上存在着重大安全隐患,有研究表明其安全性甚至比PPP还要弱,因此不适用于需要一定安全保证的通信。
L2F协议是一种安全通信隧道协议,但它的主要缺陷是没有把标准加密方法包括在内,因此它也已经成为一个过时的隧道协议。
IETF的开放标准L2TP协议结合了PPTP协议和L2F的优点,特别适合组建远程接入方式的VPN,已经成为事实上的工业标准。
远程拨号的用户通过本地PSTN、ISDN或PLMN拨号,利用ISP提供的VPDN特服号,接入ISP在当地的接入服务器(NAS)。
NAS通过当地的VPDN的管理系统(如认证系统),对用户身份进行认证,并获得用户对应的企业安全网关(CPE)的隧道属性(如企业网关的IP地址等)。
NAS根据获得的这些信息,采用适当的隧道协议封装上层协,议建立一个位于NAS和LNS(本地网络服务器)之间的虚拟转网。
4、多协议标记交换(MPLS)
MPLS为每个IP包加上一个固定长度的标签,并根据标签值转发数据包。
MPLS实际上就是一种隧道技术,所以使用它来建立VPN隧道是十分容易的。
同时,MPLS是一种完备的网络技术,可以用它来建立起VPN成员之间简单而高效的VPN。
MPLSVPN适用于实现对服务质量、服务等级的划分以及网络资源的利用率、网络的可靠性有较高要求的VPN业务。
CE路由器是用于将一个用户站点接入服务提供者网络的用户边缘路由器。
CE路由器不使用MPLS,它可以只是一台IP路由器。
CE不必支持任何VPN的特定路由协议或信令。
PE路由器是与用户CE路由器相连的服务提供者边缘路由器。
PE实际上就是MPLS中的边缘标记交换路由器(LER),它需要能够支持BGP协议,一种或几种IGP路由协议以及MPLS协议,需要能够执行IP包检查、协议转换等功能。
用户站点是指这样一组网络或子网,它们是用户网络的一部分并且通过一条或多条PE/CE链路接至VPN。
一组共享相同路由信息的站点就构成了VPN。
一个站点可以同时位于不同的几个VPN之中。
从MPLSVPN网络的结构可以看到,与前几种VPN技术不同,MPLSVPN网络中的主角虽然仍然是边缘路由器(此时是MPLS网络的边缘LSR),但是它需要公共IP网内部的所有相关路由都能够支持MPLS,所以这种技术对网络有较为特殊的要求。
5、IP安全(IPSec)
IPSec是专门为IP设计提供安全服务的一种协议(其实是一种协议族)。
IPSec可有效保护IP数据报的安全,所采取的具体保护形式包括:
数据源验证、无连接数据的完整性验证、数据内容的机密性保护、抗重播保护等。
IPSec主要由AH(认证头)、ESP(封装安全载荷)、IKE(因特网密钥交换)三个协议组成,各协议之间的关系如下图所示
①AH为IP数据包提供无连接的数据完整性和数据源身份认证,同时具有防重放攻击的能力。
数据完整性校验通过消息认证码(如MD5)产生的校验来保证;数据源身份认证通过在待认证数据中加入一个共享密钥来实现;AH报头中的序列号可以防止重放攻击。
②ESP为IP数据包提供数据的保密性(加密)、无连接的数据完整性、数据源身份认证以及防重放攻击保护。
其中的数据保密性是ESP的基本功能,而数据源身份证、数据完整性检验以及重放保护都是可选的。
③AH和ESP可以单独使用,也可以结合使用,甚至嵌套使用。
通过这些组合方式,可以在两台主机、两台安全网关(防火墙和路由器),或者主机与安全网关之间使用。
④解释域(DOI)将所有的IPSec协议捆绑在一起,是IPSec安全参数的主要数据库。
⑤密钥管理包括IKE协议和安全联盟(SA)等部分。
IKE提供密钥确定、密钥管理。
它在通信系统之间建立安全联盟,是一个产生和交换密钥材料并协调IPSec参数框架。
IPSec可以在主机、路由器/防火墙(创建一个安全网关)或两者中同时实施和部署。
用户可以根据对安全服务的要求决定究竟在什么地方实施。
6、通用路由封装(GRE)
通用路由协议封装(GRE)是由Cisco和NetSmiths等公司1994年提交给IETF的,标号为RFC1701和RFC1702。
目前有多数厂商的网络设备均支持GER隧道协议。
GER规定了如何用一种网络协议去封装另一种网络协议的方法。
GER的隧道由两端的源IP和目的IP来定义,允许用户使用IP包封装IP、IPX、AppleTalk包,并支持全部的路由协议(如RIP2、OSPF等)。
通过GER,用户可以利用公共IP网络连接IPX网络、AppleTalk网络,还可以使用保留地址进行网络互联,或者对公网隐藏企业网的IP地址。
GER只提供了数据包的封装,并没有加密功能来防止网络侦听和攻击,所以在实际环境中经常与IPSec在一起使用,由IPSec提供用户数据的加密,从而给用户提供更好的安全性。
GER的实施策略以及网络结构与IPSec非常相似,只需要网络边缘的接入设备支持GER协议即可。
GER封装的格式如下图。
WindowsServer2003下VPN服务器架设与VPN穿透测试(PPTP、L2TP、L2TPIPSec)
上周五因手上任务中间环节有些问题,就闲下来看看很久很久以前留下的问题——VPN穿透。
当然,借助网络,实战。
结果OK。
PPTP和L2TP是用WindowsServer2003环境下架设VPN服务器,WindowsXP作客户端连接测试。
L2TPIPSec的服务器与客户端都是用WindowsServer2003。
整理出来晒晒太阳\(^o^)/~
一、连接图
此处的ONU也就相当于Router啦,呵呵
二、VPN服务器的架设
1、windows2003 VPN服务端安装配置
在windows2003中VPN服务称之为“路由和远程访问”,默认状态已经安装。
只需对此服务进行必要的配置使其生效即可。
第一步:
依次选择“开始”-“管理工具”-“路由和远程访问”,打开“路由和远程访问”服务窗口;再在窗口右边右击本地计算机名,选择“配置并启用路由和远程访问”,如下图所示:
先禁用再配置和启用
第二步:
在出现的配置向导窗口点下一步,进入服务选择窗口,如下图所示。
如果你的服务器如某此资料所说的那样只有一块网卡,那只能选择“自定义配置”;而标准VPN配置是需要两块网卡的,如果你服务器有两块网卡,则可有针对性的选择第一项或第三项。
然后一路点击下一步,完成开启配置后即可开始VPN服务了。
这里选择自定义配置——下一步——VPN访问——完成
第三步:
到这里还没完,以上两步只是开启了VPN服务,还要经过必要的设置才能符合我们的实际使用环境。
设置一为关于IP地址的问题,右击树形目录里的本地服务器名,选择“属性”并切换到IP选项卡(如下图所示)
配置IP从192.168.10.1到192.168.10.255
三、远程访问策略配置
用户的拨入权限默认即设置为通过远程访问策略控制访问。
现在我们在路由和远程访问服务器上打开路由和远程访问管理控制台,展开服务器,然后右击远程访问策略,选择新建远程访问策略;
在弹出的欢迎使用新建远程访问策略向导页,点击下一步;
在策略配置方法页,在此选择设置自定义策略,然后输入策略名。
你可以选择使用向导,但是你以后会发现,使用自定义方式来创建策略更为简单快捷;点击下一步;
在策略状况页,点击添加按钮来添加匹配条件;在弹出的选择属性对话框,首先选择Day-And-Time-Restrictions添加日期和时间限制,然后点击添加;
在弹出的时间限制对话框,选中星期一到星期五8:
00~19:
00的时间范围,然后点击允许,再点击确定;
在策略状况页,再次点击添加按钮;在弹出的选择属性对话框,选择Windows-Groups添加Windows用户组条件,然后点击添加;
在弹出的组对话框上点击添加——添加——高级——立即查找——这里选择wifigroup(或其它组),点击确定,完成后如下图所示,点击确定,然后在策略状况页点击下一步;
注:
这里是之前已经加入域NIHAO了,且系统当前是在域NIHAO登录的,故会自动显示当前域名。
加域这部分省略。
当然该域下的一个账户(此处用的账户是“haohao”)是有拨入权限的。
在权限页,选择授予远程访问权限,点击下一步;
在配置文件页,接受默认设置,点击下一步;
在正在完成新建远程访问策略向导页,点击完成。
此时新的远程访问策略就创建好了,并放置在远程访问策略的第一位,如下图所示。
三、VPN客户端配置
网上邻居——创建一个新的连接——连接到我的工作场所的网络——虚拟专用网络——公司名(firstmile)——不拨初始连接——本机(即VPN服务器)IP——只是我使用——完成
双击建立的网络,
现在我们来测试一下此远程访问策略。
首先,我们在创建的远程访问策略所限制的时间内使用属于wifigroup用户组的账号haohao进行远程拨入(密码是111111)
拨入成功,如下图所示:
四、测试VPNPPTP穿透
打开PPTPPassThrough,则重新在客户端连接VPNServ——可以正常连接
关闭PPTPPassThrough,则重新在客户端连接VPNServ——不能连接
五、烹饪L2TP
对于L2TP,要在PPTP上有一些改变
在网络连接—属性—网络——VPN类型中选择“L2TPIPSecVPN”—连接——失败了。
。
。
这时我遇到的一个问题是“错误代码781,连接需要证书,但是没有找到有效的证书......”
在网上找的各种解决办法,终究是连上了,欢呼一下:
-D。
现将方法列出配置WindowsXP计算机,使其成为L2TP客户端。
1.配置L2TP拨号连接:
1)进入WindowsXP的“开始”“设置”“控制面板”,选择“切换到分类视图”。
2)选择“网络和Internet连接”。
3)选择“建立一个您的工作位置的网络连接”。
4)选择“虚拟专用网络连接”,单击“下一步”。
5)为连接输入一个名字为“l2tp”,单击“下一步”。
6)选择“不拨此初始连接”,单击“下一步”。
7)输入准备连接的L2TP服务器的IP地址“202.101.35.218”,单击“下一步”。
8)单击“完成”。
9)双击“l2tp”连接,在l2tp连接窗口,单击“属性”。
10)选择“安全”属性页,选择“高级(自定义设置)”,单击“设置”。
11)在“数据加密”中选择“可选加密(没有加密也可以连接)”。
12)在“允许这些协议”选中“不加密的密码(PAP)”、“质询握手身份验证协议
(CHAP)”、“MicrosoftCHAP(MS-CHAP)”,单击“确定”。
13)选择“网络”属性页面,在“VPN类型”选择“L2TPIPSecVPN”。
14)确认“Internet协议(TCP/IP)”被选中。
15)确认“NWLinkIPX/SPX/NetBIOSCompatibleTransportPrococol”、“微软网络文件
和打印共享”、“微软网络客户”协议没有被选中。
16)单击“确定”,保存所做的修改。
2.修改注册表(这步在VPN服务器上也配置一下,当然要重启一下下)
缺省的WindowsXPL2TP传输策略不允许L2TP传输不使用IPSec加密。
可以通过修改
WindowsXP注册表来禁用缺省的行为:
手工修改:
1)进入WindowsXP的“开始”“运行”里面输入“Regedt32”,打开“注册表编辑
器”,定位“HKEY_Local_Machine\System\CurrentControlSet\Services\RasMan\
Parameters”主键。
2)为该主键添加以下键值:
键值:
ProhibitIpSec
数据类型:
reg_dword
值:
1
3)保存所做的修改,重新启动电脑以使改动生效。
提示:
必须添加“ProhibitIpSec”注册表键值到每个要使用L2TP的运行WindowsXP操
作系统的电脑。
六、配置NAT路由
这里选择本地连接4
此时,在VPN客户端,,会发现数据包是从VPN的ip地址:
流出的。
基于Windows2003的PPTP或者L2TP的VPN,客户端拨通后,默认的流量全部走VPN连接,而非本地原来的连接。
到这里为止,初步配置成功。
如果,只让服务器内网的流量走VPN,而其他流量走客户端本来的互联网连接,那么必须更改客户端本地路由表。
七、最后一道菜——L2TPIPSec
IPSec协议是一个范围广泛、开放的VPN安全协议,工作子在OSI模型中的第三层——网络层。
它提供所有在网络层上的数据保护和透明的安全通信。
Windows2000和2003系列除了支持PPTP外,还支持L2TP和L2TPIPSec协议这两种创建更安全的VPN的方法。
上文中VPN服务器已经配置好,现在专心看剩下的问题吧。
L2TPIPSECVPN通信时双方需要先验证对方的计算机身份,通常有三种验证方法:
一是用kerberos协议进行计算机身份验证,但kerberos不适合这种网络访问环境。
二是预共享密钥方式,预共享密钥方式需要同时在VPN服务器和VPN客户端上配置使用预定义的
共享密钥。
由于所有的VPN客户都需要配置为使用相同的L2TP共享密钥,这会极大地降低L2TP/IPSec
的安全性,所以在商用网络中较少使用预共享密钥的L2TP连接。
三是计算机证书方式,计算机证书方式为VPN服务器和VPN客户端分别申请服务器身份验证和客
户端验证证书。
当通信开始时,双方都要向对方出示证书以证明自己的合法身份。
废话少说,下面来配置基于证书的L2TPIPSecVPN。
。
。
。
。
。
第一步,配置CA服务器
选择用计算机证书来验证身份时,需要在网络中有发布计算机证书的CA服务器。
CA服务器配置可
以通过控制面板中的“添加/删除程序”,选择“添加/删除Windows组件”,选择“应用服务器”中的“Intemet
信息服务(IIS)”以及“证书服务”。
在CA类型中选择“独立根CA”,因为独立根CA不需要域的支持,
这正适合那些可能不是域成员的外部VPN客户端,另外通过WEB方式申请计算机用的客户端证书或服
务器端证书时使用独立CA更方便。
安装完Windows组件后,网络用户就可以通过WEB浏览器申请证
书了。
第二步,申请VPN服务器证书。
在VPN服务器的浏览器中访问CA服务器,在欢迎页面中选择“申请一个证书”,如图所示。
在“证书类型”页面选择“高级证书申请”项,在“高级证书申请”页面选择“创建并向此CA提
交一个申请”,在表格页面中填写上VPN服务器的相关信息,在证书类型栏,选择服务器身份验证证书;
然后在下部勾选将证书保存在本地计算机存储中,其他项可以保持默认设置,点击“提交”。
在弹出的警
告提示框上点击“是”,完成证书申请。
第三步,颁发证书。
上面只是完成了证书申请过程,还需要CA服务器管理员审核此证书请求并手动颁发证书。
开始——管理工具——证书颁发机构,双击挂起的申请——右击刚申请的证书——所有任务——颁发。
双击颁发的证书,会看到成功颁发了。
问题:
出现的问题是颁发不成功,申请的证书会自动转到失败的申请中,提示信息是:
由于吊销服务器已脱机,吊销功能无法检验吊销。
。
。
解决:
开始——运行——cmd——certutil.exe-setregca\CRLFLags+CRLF_REVCHECK_IGNORE_OFFLINE——返回执行颁发的操作——顺利颁发成功。
测试颁发、吊销、撤销吊销功能一切正常。
如果要再次开启验证吊销服务器,可以将+变成-:
certutil.exe-setregca\CRLFLags-CRLF_REVCHECK_IGNORE_OFFLINE
第四步,VPN服务器安装证书。
安装VPN服务器证书仍然通过浏览器访问CA服务器,此时在首页面中选择“查看挂起的证书申请
的状态”项,然后根据向导安装即可。
VPN服务器证书安装完成后,还需要安装CA根证书,这样才能验证CA所颁发证书的合法性,比
如将来验证客户端证书的合法性时就要同时验证根CA的证书,因为只有上层合法才能保证最底层的计
算机证书合法。
此时仍然通过CA服务器页面进行,在图2所示的首页面中选择“下载一个CA证书,证
书链或CRL”项,然后在页面中点击“下载CA证书”链接,并把下载的证书保存到桌面上。
CA证书下载完成后,需要把它导入相应的证书存储区。
在运行中输入mmc,添加“证书”管理插
件,并选择“计算机账户”和“本地计算机”项。
在证书管理单元中展开“个人”,选择“证书”项,可以在右窗格中看到刚才安装的服务器证书。
展开“受信任的根证书颁发机构”,右击“证书”项,选择“所有任务”中的“导入”,导入保存到桌面
上的CA根证书,导入完成后检查CA根证书是否已在此证书区域存在。
第五步,VPN客户端创建VPN连接并测试
同VPN服务器一样,L2TPdPSECVPN客户端也需要安装同一个CA颁发的计算机证书,申请方法
同VPN服务器一样,只是证书类型选择“客户端身份验证证书”项。
与VPN服务器一样,也需要手动
颁发此证书并安装,同时也需要安装CA根证书,这样才能验证其合法性。
右击VPN客户端——属性——网络——VPN类型选择L2TPIPSecVPN;常规——设置VPNServer的IP
连接——输入账户名和密码——成功。
比较之前的PPTP和L2TP的VPN连接状态,会发现除了设备名、设备类型(vpn)、服务器类型(PPP)、传输(TCP/IP)、身份验证(MSCHAPV2)、压缩、PPP多重链接帧、服务器IP地址和客户端IP地址外,还多了一个IPSec加密
申明:
L2TPIPSec因没有系统是2003的笔记本,故没有实际操作,以后有条件会试试的。
(