IPsecVPN

  • 1 引言
    • 1.1 加密技术概述
    • 1.2 VPN概述
    • 1.3 VPN分类
      • 1.3.1 远程访问VPN
      • 1.3.2 点到点VPN
  • 2 IPsecVPN
    • 2.1 IPsecVPN概述
    • 2.2 IPsecVPN传输模式工作原理
    • 2.3 IPsecVPN隧道模式工作原理
    • 2.4 路由器工作顺序
  • 3 IPsecVPN配置方法
    • 3.1 第一阶段:管理连接
    • 3.2 第二阶段:数据连接
    • 3.3 创建MAP映射
  • 4 总结

1 引言

1.1 加密技术概述

  1. 对称加密:

    • 秘钥:加密与解密使用相同的秘钥。
    • 缺点:秘钥是通信双方协商生成的,生成过程时明文通信,导致秘钥容易泄露。
    • 常用算法:DES、3DES、AES。
  2. 非对称加密算法:
    • 使用公私钥加密数据。
    • 公私钥承兑生成、互为加解密关系。
    • 公私钥不能互相推算。
    • 双方交换公钥。
    • 使用对方公钥加密以实现机密性、使用自己的私钥进行签名以实现身份验证。
    • 常见算法:RSA、DH。
  3. 完整性算法/hash值算法:MD5、SHA。
  4. 详细请参考《第17节 PKI公钥基础设施》

1.2 VPN概述

  1. VPN:Virtual Private Network,虚拟专有网络。
  2. 作用:VPN可以实现在不安全的网络上,安全地传输数据,就好像专线网络一样。
  3. 专线网络的优点:稳定、可靠、安全。VPN仅能实现安全这一优点。
  4. VPN只是一个技术,使用PKI技术来保证数据的安全三要素(机密性、完整性、身份验证及操作的不可否认性)。
  5. 条件:要求路由器支持VPN。

1.3 VPN分类

1.3.1 远程访问VPN

  1. Remote Access VPN
  2. 适用性:一般用于个人安全连接到企业内部。
  3. 一般需要公司部署VPN服务器,员工在外拨号连接VPN即可。
  4. 常见RA-VPN协议:PPTPVPN、L2TP VPN、SSTP VPN、EZVPN/easyVPN、SSL VPN(最常用)。

1.3.2 点到点VPN

  1. 适用性:一般用在企业对企业的安全连接。
  2. 一般需要在两个企业总出口设备之间建立VPN通道。
  3. 常见的点到点VPN协议:IPsecVPN。

2 IPsecVPN

2.1 IPsecVPN概述

  1. 定义:指采用IPSec协议来实现远程接入的一种VPN技术,IPSec全称为Internet Protocol Security,在公网上为两个私有网络提供安全通信通道,通过加密通道保证连接的安全——在两个公共网关间提供私密数据封包服务。
  2. IPsecVPN优点:
    1. 安全性。
    2. 合并两家企业内网。
  3. IPsecVPN技术:重新封装技术+加密认证技术。
    1. 传输模式:只加密上层数据,不加密私有IP包头与公有IP包头。速度相对快。
    2. 隧道模式(默认、常用):加密整个私有IP包,包括IP包头,不加密公有IP包头。相对安全,速度相对慢。
    3. 需要两家公司都购买静态公有IP地址。如果只有一家是静态,则只能由动态公有IP地址所在端主动向静态公有IP地址所在端发起通信。

2.2 IPsecVPN传输模式工作原理

  1. 两家企业或公司在两地的分部网络连接如下图所示,两家企业在各自总路由出出口端接口均设置IPsecVPN,当A向D发送发送数据时。数据帧经过以下过程。
  2. 主机A向主机D发送数据,经内部层层封装后,数据帧结构如下图所示。其中源IP地址是主机A本身,目标IP地址是主机D。
  3. 数据帧传到路由器,路由器对数据帧解封装,识别到MAC地址是本身后,将数据路由至出口端,IPsecVPN对数据进行处理并封装。(1)先对数据利用PKI技术进行加密;(2)在数据段前后加上标签,表示加密开始和结束;(3)将源IP地址和目标IP地址放到可选项中隐藏起来,更换成两家公司总路由的IP地址。
  4. 当数据帧经过互联网传达到另一家公司路由器时,该路由器对数据帧解封装,判断数据是否是发给自己,如是则路由器利用IPsecVPN技术开始对数据帧进行解密和封装,再路由给主机D所在接口。解密与封装过程为:(1)识别IP包头,将两家公司的公有IP包头替换为可选项中的私有IP包头;(2)将数据进行解密并验证数据的安全性,如没问题则封装并路由。
  5. 数据帧安全送达主机D,实现两个私有地址之间的通信。主机D对A进行回包,则是将IP对换位置,其余过程一致。
  6. 注意上述过程每次封装后,MAC帧头与帧尾都会发送变化。

2.3 IPsecVPN隧道模式工作原理

  1. 当以上例子中主机A向D发送数据时,数据帧到达A公司路由器出口端时,路由器检查数据帧是否是发给自己,如是则应用IPsecVPN技术进行路由及封装。封装过程如下:(1)对整个IP包进行加密;(2)封装上VPN头与尾。
  2. 数据帧经过互联网传达到另一家公司路由器时,该路由器对数据帧解封装,判断数据是否是发给自己,如是则路由器利用IPsecVPN技术开始对数据帧进行解密和封装,再路由给主机D所在接口。解密与封装过程为:(1)去掉VPN头与尾;(2)验证数据的安全性;(3)按原来的IP包头封装并路由到主机D对应的接口上。

2.4 路由器工作顺序

当路由器上已配置了NAT与VPN时,路由器对数据帧逐个匹配,先匹配NAT、再匹配VPN最后发出去。因此部署NAT时需要考虑VPN的网段需求,两者需要互补,即NAT豁免技术。

3 IPsecVPN配置方法

大部分时间是在数据传输阶段,假设两家公司希望在数据传输阶段可以采用对称算法进行加密(速度快),在管理阶段先利用非对称算法让双方建立对称算法的秘钥,同时每隔一段时间更换一次秘钥。

3.1 第一阶段:管理连接

  1. 目的:利用非对称算法加密对称加密算法所使用的对称秘钥,以达到安全地协商对称加密算法秘钥的目的。
  2. 命令:配置在路由器外网接口处。
en
conf t
crypto isakmp policy 1      #进入传输及策略配置模式,配置策略集1号。isakmp(IKE,网络密钥交换协议)
encryption des/3des/aes     #常用aes
hash md5/sha
group 1/2/5                 #指定非对称加密算法,默认采用DH算法,1 2 5指定公私钥长度。
anthentication pre-share    #使用“预共享密钥”算法验证身份,预共享密钥需要在两家公司的设备上配置,不能泄露。
lifetime 秒                  #指定秘钥更新周期。可以不配,默认是86400秒即一天。两家公司设备宜设置一致,如不一致以间隔时间短的为准。
exit
crypto isakmp key 预共享密钥 addresss 对方的公网IP地址
  1. 当两公司中有一方发起通信时,将策略表1发送给另一个公司,双方需要将表格内容协商一致后才能进行通信,各个公司可以配置多个表。
  2. 策略集中,允许不一致的地方有:(1)表号;(2)秘钥更新间隔时间建议一致,有些设备要求一定要一致。

3.2 第二阶段:数据连接

  1. 目的:利用上一阶段产生的对称加密算法秘钥,采用对称加密算法加密实际所要传输的私网数据。
  2. 命令:
en
conf t
# 定义VPN触发条件,用于限定哪些流量走VPN。
access-list 100 permit ip 192.168.0.0 0.0.255.255 172.16.0.0 0.0.255.255        #ACL表用于匹配,表示192.168发给172.16的数据帧走VPN。
# 定义加密及验证方式,通信双方需要一致。
# esp-des/3des/aes定义了加密方式,esp/ah-md5/sha-hmac定义了身份验证及完整性验证。
# des/3des/aes,三选一。阶段一无论用哪个算法产生的秘钥,三个都可用。
# esp/ah,二选一。
# md5/sha二选一。
# md5/sha-hmac:表示将阶段一中的预共享密钥作为哈希算法的部分内容,一起算hash值。可验证身份。
# 传输模式名表示自定义名,建议英文名,当调用该模式时就是调用后面的加密认证方式。
crypto ipsec transform-set 传输模式名 esp-des/3des/aes esp/ah-md5/sha-hmac
# 例子
crypto ipsec transform-set QQtran esp-aes esp-sha-hmac
  1. ESP:支持加密及身份认证。(身份验证+完整性)
  2. AH:只支持认证。(身份验证+完整性)AH的认证强度比ESP强。

3.3 创建MAP映射

  1. 目的:阶段一创建了传输集,阶段二定义了ACL表与加密验证模式,创建MAP映射表将上述内容应用到路由器外网接口上。
  2. 命令:
en
conf t
crypto map map名 1 ipsec-isakmp      #进入MAP表配置模式。创建一个map表并命名,数字1表示表号。isakmp表示应该阶段一所有策略集。
match address 100               #应用阶段二的ACL表,表号是100的那个。
set stansform-set 传输模式名     #设置前面阶段二应用的传输模式名。
set peer 对方公网IP1
exitcrypto map map组名 2 ipsec-isakmp     #在这个一个map表组里,可以有多个表号。以支持同时对多个公司开通VPN。
match address 200               #不同map表号的ACL表规则应该相互独立,不然数据帧将不知听谁指挥。
set stansform-set 传输模式名
set peer 对方公网IP2
exitint f0/1                        #假设f0/1就是接外网的接口
crypto map map组名                #应用该map表。
exit
  1. 注意:一个接口只能应用一个map组名,用不同map表号来同时与多个公司建立VPN。
  2. 对以上各阶段表号的理解:
    1. 一个接口上仅能应用一个map组,一个map组可以对应多个map表号,一个map表号就是一张完整的map表,不同map表对应不同匹配、加密、认证规则。
    2. 数据帧匹配自己是属于该map组中众多map表的哪一个,应用该表。
    3. 该表中属于阶段一的策略集含有多个策略,公司双方需要在阶段一明确该策略,在阶段利用阶段一生成的秘钥进行通信。

4 总结

  1. 了解加密技术的种类及常用算法;
  2. 了解VPN技术的作用及分类;
  3. 理解掌握两种IPsecVPN模式的工作原理;
  4. 理解map表组、map表号、ACL表号、策略集之间的关系;
  5. 理解掌握IPsecVPN配置方法。

第25节 虚拟专有网络原理及配置命令相关推荐

  1. 华为端口隔离实现原理及配置命令

      端口隔离具有很多优点,在某些场景中可以用来提高网络安全性能,也可以用来隔离广播报文.本文将详细介绍华为设备的端口隔离,希望读完后能让您有所收获 一.端口隔离原理   在前面我们说了端口隔离的用处, ...

  2. 静态路由原理与配置命令

    ## 标题目录 1.理解路由的原理 路由器工作原理 路由表的形成 2.静态路由和默认路由 3.路由器转发数据包的封装过程 4.静态路由配置 数据包从主机A到达主机B有很多条路径可供选择,但是很显然,这 ...

  3. 华为超级虚拟交换网技术SVF配置命令

    [Huawei]as-mode diable //将设备的工作模式切换为Parent模式,默认是AS模式 [Huawei]uni-mng //使能SVF功能并进入uni-mng视图,缺省未使能 [Hu ...

  4. 第25节 IPsec虚拟专网工作原理与配置详解

    IPsecVPN目录 1 加密技术概述 2 虚拟专网(VPN)概述 3 虚拟专网(VPN)分类 3.1 远程访问VPN 3.2 点到点VPN 4 IPsecVPN技术 4.1 IPsecVPN概述 4 ...

  5. 第五章 路由器的工作原理及其配置

    第五章 路由器的工作原理及其配置 5.1 广域网服务 WAN连接的目的是在两个远离的网络之间尽可能高效率传递数据.连接的效率越高,到最终用户的连接就越透明.WAN连接通常比L A N连接要慢.例如,一 ...

  6. 【重识云原生】第六章容器基础6.4.5.3节——Deployment实现原理解析

    <重识云原生系列>专题索引: 第一章--不谋全局不足以谋一域 第二章计算第1节--计算虚拟化技术总述 第二章计算第2节--主流虚拟化技术之VMare ESXi 第二章计算第3节--主流虚拟 ...

  7. Linux服务篇之DHCP原理与配置

    文章目录 1 了解DHCP服务 1.1 定义 1.2 DHCP好处 1.3 DHCP的分配方式 2 DHCP工作原理 2.1 四个步骤 2.2 重新登录 2.3 更新租约 3 DHCP动态主机地址配置 ...

  8. 3.4.1 VIO虚拟以太网原理

    最后更新2021/08/12 VIO Server在此完全实现了一个标准的以太网交换机的功能,现在业界都有了高大上的名称:SDN(Software Defined Network),如果没有足够的网络 ...

  9. Android零基础入门第25节:最简单最常用的LinearLayout线性布局

    原文:Android零基础入门第25节:最简单最常用的LinearLayout线性布局 良好的布局设计对于UI界面至关重要,在前面也简单介绍过,目前Android中的布局主要有6种,创建的布局文件默认 ...

最新文章

  1. 【Harvest源码分析】GetF0CandidateContour函数
  2. delete指针之后应该赋值NULL
  3. 友情链接交换看的不是“真友情”!
  4. centos 安装搜狗输入法_Ubuntu 20.04 安装搜狗输入法
  5. 汇编语言 乘法和除法指令
  6. WebBrowser控件的常用方法、属性和事件
  7. solaris配置php,Solaris下安装Oracle_启动Oracle及监听
  8. 微软认知语音服务 语音识别
  9. Python爬取你好李焕英豆瓣短评生成词云
  10. pku 1325 Machine Schedule(匈牙利算法)
  11. Android AndroidNSSP的简单说明
  12. Eclipse Community Survey 2012
  13. 10月27号、28号、29号、30四天PC端云音乐项目总结
  14. Rust : Attribute 属性 作者:Mike Tang
  15. 程序中美元符号$是什么
  16. krpano限制场景视角
  17. win10下装win7双系统_Win10用不惯?试试Win10加Win7双系统吧
  18. 敏捷转型行动笔记:内部敏捷教练培训资料分享——认知篇(认识敏捷教练,摆正角色认知)
  19. 【毕业设计】基于单片机的智能水箱系统 - 物联网 嵌入式 stm32
  20. 网龙携先进教育技术出海非洲

热门文章

  1. 文件关联注册表项都有哪些?
  2. JavaScript学习笔记(条件判断)
  3. java.lang.IllegalArgumentException 如何解决这个异常
  4. 慕课软件质量保证与测试(第九章.程序中隐藏错误数量估计)
  5. 【脚本】网页端微信读书书架中书籍详细信息
  6. 台式计算机国标码,在计算机中,国标码是属于什么码?
  7. Windows安装Apache(解决问题Set the 'ServerName' directive globally to suppress this message)
  8. ds18b20温度报警C语言程序,单片机中使用DS18B20温度传感器C语言程序(参考4)
  9. 本地策略和组策略,更改安全设置和用户权限分配兼容性问题
  10. note4x rom android p,红米Note4x安卓8.0刷机包