VPN技术(IPsec/L2TP/SSLVPN/PPTP)学习笔记
yuyutoo 2024-10-11 23:58 7 浏览 0 评论
常见的VPN技术
- IPsec VPN: 多机房互联(即一般在GW与GW之间建立隧道)
- L2TP/IPsec VPN: 支持多隧道,配置IPsec使用
- PPTP VPN: 只能两端点间建立单一隧道,可选配合IPsec使用
- SSL VPN: 数据私密性、端点验证、信息完整性,自协议:握手协议、记录协议
SSL VPN
SSL VPN是无需安装客户端软件,通过远程建立的SSL隧道访问内部服务器的代理技术,并对服务器内容提供基于用户认证、远程站点检查的资源访问控制。
SSL VPN现已成为远程访问VPN的新宠。除了具备与IPsec VPN相当的安全性外,认证功能更强,还增加了基于内容的访问控制机制。客户端只需要拥有支持SSL的浏览器即可
SSL VPN由于处在TCP层,所以可以进行丰富的业务控制,如行为审计,可以记录每名用户的所有操作,为更好地管理VPN提供了有效统计数据。
当使用者退出SSL VPN登陆页面时,所有会话会全部释放。
SSLVPN的技术分为以下四种
- Web代理(proxying)
- 应用转换(application translation)
- 端口转发(port forwarding)
- 网络扩展(network extension)
每种技术支持的应用与控制粒度会有所不同。
Web代理(proxying)
来自客户端的发往SSL VPN Server得页面请求在VPN Server内部替换,发往VPN后面的真正Web服务器,然后再将Web服务器的响应回传给终端用户.
WEB代理是最为简单的应用,也是控制粒度最细的SSL VPN应用,可以精确地控制每个链接。
应用转换(application translation)
有些通过HTML、Java程序,有些通过HTTPS页面中的客户端下载实现
- 对于非Web页面的文件访问,要借助于应用转换。
- 在浏览器中用HTML或JAVA来实现模拟客户端程序。通过SSL VPN的协议连接器,访问指定资源。
- 应用:文件共享、telnet、ssh、远程桌面、ftp。
端口转发(port forwarding)
端口映射是粒度仅次于WEB代理的应用,它通过TCP端口映射的方式(原理上类似于NAT内部服务器应用),为使用者提供远程接入TCP的服务,它需要专门的、与服务器配套的SSL VPN客户端程序帮忙(在页面中一般提供下载方式)或是通过HTML代码实现。
- 端口转发用于端口定义明确的应用(如FTP,SSH等)。
- 终端系统上运行一个非常小的Java或ActiveX程序作为端口转发器,监听某个端口上的连接。当数据包进入 这个端口时,它们通过SSL连接中的隧道被传送到SSL VPN网关,SSL VPN网关解开封装的数据包,将它们转发给目的应用服务器。
- 使用端口转发器,需要终端用户指向他希望运行的本地应用程序(127.0.0.1),而不必指向真正的应用服务器。
网络扩展(network extension)
网络扩展是SSL VPN中粒度最粗的服务,但也是使用最广泛的,它实现了类似于L2TP的特性,所有客户端都可以从服务器获得一个VPN地址,然后直接访问内部服务器,它也需要专门的SSL VPN客户端程序帮忙.
- 远程端点可以具有完全的网络连接,并动态获取内部地址。
- 在用法上和IPsec等同。
- 需要插件和网络驱动的支持。
- 优点:适应性好,所有的IP应用都可以。
- 缺点:控制的粒度太粗,跟IPsec非常相似。
L2TP/IPsec VPN
实际上是,终端与接入服务器之间先建立IPsec隧道,然后再进行L2TP协商(UDP端口1701)。依靠Internet协议安全性(IPsec)技术提供加密服务,在建立的IPsec加密通道上承载L2TP的控制和数据协商并传输通过L2TP封装的用户报文。 L2TP与IPsec的结合产物称为L2TP/IPsec。VPN客户端与VPN服务器都必须支持L2TP和IPsec。L2TP将随同路由与远程访问服务一道自动进行安装。
在IPsec数据包基础上所进行的L2TP封装由两个层次组成:
- L2TP封装:PPP帧(IP或IPX数据包)将通过L2TP报头和UDP报头进行封装。
- IPsec封装:上述封装后所得到的L2TP报文将通过IPsec封装安全性有效载荷(ESP)报头、用以提供消息完整性与身份验证的IPsec身份验证报尾以及IP报头再次进行封装。IP报头中将提供与VPN客户端和VPN服务器相对应的源IP地址和目标IP地址。IPsec加密机制将通过由IPsec身份验证过程所生成的加密密钥对L2TP报文进行加密。
L2TP控制报文封装格式:(UDP 1701)
若经过IPsec NAT穿越,则在外层IP与ESP Header之间再增加一个UDP头(端口为4500)
L2TP数据报文封装(UDP 1701):
若经过IPsec NAT穿越,则在外层IP与ESP Header之间再增加一个UDP头(端口为4500)
L2TP/IPsec Tunnel的不足之处:
- 使用Windows终端(Win10/Win8等),进行L2TP/IPsec第一次拨号时,必须先添加如下注册表项,否则无法顺利接入
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent]
"AssumeUDPEncapsulationContextOnSendRule"=dword:00000002
2. L2TP/IPsec接入时,无法自动下发路由信息,终端用户必须手动添加路由才能访问Server提供的子网访问路劲
3. L2TP/IPsec配置复杂,且性能很低下,大多不会采用这个隧道方式
PPTP VPN
PPTP(Point to Point Tunneling Protocol),即点对点隧道协议。该协议是在PPP协议的基础上开发的一种新的增强型安全协议,支持多协议虚拟专用网,可以通过密码验证协议,可扩展认证协议等方法增强安全性。远程用户可以通过ISP、直接连接Internet或者其他网络安全地访问企业网;
PPTP实现需要完成2个动作:协商PPTP/GRE隧道和协商建立PPTP虚拟链路,PPTP和FTP类似,是一种多通道协议,具体而言,即PPTP存在控制通道和数据通道。控制通道建立在PPTP客户端和服务器之间,PPTP客户机使用动态分配的TCP端口号,而PPTP则使用保留TCP端口号1723。控制通道用于PPTP隧道的协商和维护。PPTP控制通道协商数据包包括一个IP包头,一个TCP报头和PPTP控制消息:
PPTP控制报文格式:
PPTP数据报文封装:
由MS-CHAP、MS-CHAP v2或EAP-TLS身份验证过程所生成的加密密钥对PPP帧进行加密
PPTP控制连接的建立流程分析
PPTP控制连接建立过程可以分为以下几步:
- 建立TCP连接
- PPTP控制连接和GRE隧道建立
3. PPP协议的LCP协商
4. PPP协议的身份验证
5. PPP协议的NCP协商
NCP协议是PPP协议的网络控制协议,主要用来协商双方网络层接口参数,配置虚拟端口,分配IP,DNS等信息。图中的IPCP是NCP基于TCP/IP的接口协商协议。Server和Client都要把自己的Miniport信息发送给对方
6. PPP协议的CCP协商
CCP协议协商PPP通讯中数据加密的协议
L2TP和PPTP区别:
- L2TP:公有协议、UDP1701、支持隧道验证,支持多个协议,多个隧道,压缩字节
- PPTP:私有协议、TCP1723、不支持隧道验证,只支持IP、只支持点到点
PPTP只能在两端间建立单一隧道,L2TP支持在两端点间使用多隧道,这样可以针对不同的用户创建不同的服务质量
L2TP可以提供隧道验证机制,而PPTP不能提供这样的机制,但当L2TP或PPTP与IPsec共同使用时,可以由IPsec提供隧道验证,不需要在第二层协议上提供隧道验证机制
PPTP要求互联网络为IP网络,而L2TP只要求隧道媒介提供面向数据包的点对点连接,L2TP可以在IP(使用UDP),FR,ATM,x.25网络上使用
L2TP可以提供包头压缩。当压缩包头时,系统开销(overhead)占用4个字节,而PPTP协议下要占用6个字节
IPsec VPN
IPsec协议的设计目标:是在IPV4和IPV6环境中为网络层流量提供灵活的安全服务。
IPsec VPN:是基于IPsec协议族构建的在IP层实现的安全虚拟专用网。通过在数据包中插入一个预定义头部的方式,来保障OSI上层协议数据的安全,主要用于保护TCP、UDP、ICMP和隧道的IP数据包。
相关推荐
- Mysql和Oracle实现序列自增(oracle创建序列的sql)
-
Mysql和Oracle实现序列自增/*ORACLE设置自增序列oracle本身不支持如mysql的AUTO_INCREMENT自增方式,我们可以用序列加触发器的形式实现,假如有一个表T_WORKM...
- 关于Oracle数据库12c 新特性总结(oracle数据库19c与12c)
-
概述今天主要简单介绍一下Oracle12c的一些新特性,仅供参考。参考:http://docs.oracle.com/database/121/NEWFT/chapter12102.htm#NEWFT...
- MySQL CREATE TABLE 简单设计模板交流
-
推荐用MySQL8.0(2018/4/19发布,开发者说同比5.7快2倍)或同类型以上版本....
- mysql学习9:创建数据库(mysql5.5创建数据库)
-
前言:我也是在学习过程中,不对的地方请谅解showdatabases;#查看数据库表createdatabasename...
- MySQL面试题-CREATE TABLE AS 与CREATE TABLE LIKE的区别
-
执行"CREATETABLE新表ASSELECT*FROM原表;"后,新表与原表的字段一致,但主键、索引不会复制到新表,会把原表的表记录复制到新表。...
- Nike Dunk High Volt 和 Bright Spruce 预计将于 12 月推出
-
在街上看到的PandaDunk的超载可能让一些球鞋迷们望而却步,但Dunk的浪潮仍然强劲,看不到尽头。我们看到的很多版本都是为女性和儿童制作的,这种新配色为后者引入了一种令人耳目一新的新选择,而...
- 美国多功能舰载雷达及美国海军舰载多功能雷达系统技术介绍
-
多功能雷达AN/SPY-1的特性和技术能力,该雷达已经在美国海军服役了30多年,其修改-AN/SPY-1A、AN/SPY-1B(V)、AN/SPY-1D、AN/SPY-1D(V),以及雷神...
- 汽车音响怎么玩,安装技术知识(汽车音响怎么玩,安装技术知识视频)
-
全面分析汽车音响使用或安装技术常识一:主机是大多数人最熟习的音响器材,有关主机的各种性能及规格,也是耳熟能详的事,以下是一些在使用或安装时,比较需要注意的事项:LOUDNESS:几年前的主机,此按...
- 【推荐】ProAc Response系列扬声器逐个看
-
有考牌(公认好声音)扬声器之称ProAcTablette小音箱,相信不少音响发烧友都曾经,或者现在依然持有,正当大家逐渐掌握Tablette的摆位设定与器材配搭之后,下一步就会考虑升级至表现更全...
- #本站首晒# 漂洋过海来看你 — BLACK&DECKER 百得 BDH2000L无绳吸尘器 开箱
-
作者:初吻给了烟sco混迹张大妈时日不短了,手没少剁。家里有了汪星人,吸尘器使用频率相当高,偶尔零星打扫用卧式的实在麻烦(汪星人:你这分明是找借口,我掉毛是满屋子都有,铲屎君都是用卧式满屋子吸的,你...
- 专题|一个品牌一件产品(英国篇)之Quested(罗杰之声)
-
Quested(罗杰之声)代表产品:Q212FS品牌介绍Quested(罗杰之声)是录音监听领域的传奇品牌,由英国录音师RogerQuested于1985年创立。在成立Quested之前,Roger...
- 常用半导体中英对照表(建议收藏)(半导体英文术语)
-
作为一个源自国外的技术,半导体产业涉及许多英文术语。加之从业者很多都有海外经历或习惯于用英文表达相关技术和工艺节点,这就导致许多英文术语翻译成中文后,仍有不少人照应不上或不知如何翻译。为此,我们整理了...
- Fyne Audio F502SP 2.5音路低音反射式落地音箱评测
-
FyneAudio的F500系列,有新成员了!不过,新成员不是新的款式,却是根据原有款式提出特别版。特别版产品在原有型号后标注了SP字样,意思是SpecialProduction。Fyne一共推出...
- 有哪些免费的内存数据库(In-Memory Database)
-
以下是一些常见的免费的内存数据库:1.Redis:Redis是一个开源的内存数据库,它支持多种数据结构,如字符串、哈希表、列表、集合和有序集合。Redis提供了快速的读写操作,并且支持持久化数据到磁...
- RazorSQL Mac版(SQL数据库查询工具)
-
RazorSQLMac特别版是一款看似简单实则功能非常出色的SQL数据库查询、编辑、浏览和管理工具。RazorSQLformac特别版可以帮你管理多个数据库,支持主流的30多种数据库,包括Ca...
你 发表评论:
欢迎- 一周热门
-
-
前端面试:iframe 的优缺点? iframe有那些缺点
-
带斜线的表头制作好了,如何填充内容?这几种方法你更喜欢哪个?
-
漫学笔记之PHP.ini常用的配置信息
-
其实模版网站在开发工作中很重要,推荐几个参考站给大家
-
推荐7个模板代码和其他游戏源码下载的网址
-
[干货] JAVA - JVM - 2 内存两分 [干货]+java+-+jvm+-+2+内存两分吗
-
正在学习使用python搭建自动化测试框架?这个系统包你可能会用到
-
织梦(Dedecms)建站教程 织梦建站详细步骤
-
【开源分享】2024PHP在线客服系统源码(搭建教程+终身使用)
-
2024PHP在线客服系统源码+完全开源 带详细搭建教程
-
- 最近发表
-
- Mysql和Oracle实现序列自增(oracle创建序列的sql)
- 关于Oracle数据库12c 新特性总结(oracle数据库19c与12c)
- MySQL CREATE TABLE 简单设计模板交流
- mysql学习9:创建数据库(mysql5.5创建数据库)
- MySQL面试题-CREATE TABLE AS 与CREATE TABLE LIKE的区别
- Nike Dunk High Volt 和 Bright Spruce 预计将于 12 月推出
- 美国多功能舰载雷达及美国海军舰载多功能雷达系统技术介绍
- 汽车音响怎么玩,安装技术知识(汽车音响怎么玩,安装技术知识视频)
- 【推荐】ProAc Response系列扬声器逐个看
- #本站首晒# 漂洋过海来看你 — BLACK&DECKER 百得 BDH2000L无绳吸尘器 开箱
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)