1.1 IPSec VPN概述

企业对网络安全性的需求日益提升,而传统的TCP/IP协议缺乏有效的安全认证和保密机制。IPSec(Internet Protocol Security)作为一种开放标准的安全框架结构,可以用来保证IP数据报文在网络上传输的机密性、完整性和防重放。

1.2 IPSec VPN应用场景

image.png

  • IPSec是IETF定义的一个协议组。通信双方在IP层通过加密、完整性验证、数据源认证等方式,保证了IP数据报文在网络上传输的机密性、完整性和防重放。
  1. 机密性(Confidentiality)指对数据进行加密保护,用密文的形式传送数据。
  2. 完整性(Data Integrity)指对接收的数据进行认证,以判断报文是否被篡改。
  3. 防重放(Anti-replay)指防止恶意用户通过重复发送捕获到的数据包所进行的认证,即接收方会拒绝旧的或重复的数据包。
  • 企业远程分支机构可以通过使用IPSec VPN建立安全传输通道,接入到企业总部网络。

1.3 IPSec架构

image.png

  • IPSec VPN体系结构主要由AH(Authentication Header)、ESP(Encapsulating Security Payload)和IKE(Internet Key Exchange)协议套件组成。
  1. AH协议:主要提供的功能有数据源验证、数据完整性和防报文重放功能。然而,AH并不加密所保护的数据报
  2. ESP协议:提供AH协议的所有功能外(但其数据完整性校验不包含IP头),还可提供对IP报文的加密功能。
  3. IKE协议:用于自动协商AH和ESP所使用的密码算法。

1.4 安全联盟SA

image.png

  • SA(Security Association)安全联盟定义了IPSec通信对等体间将使用的数据封装模式、认证和加密算法、密钥等参数。SA是单向的,两个对等体之间的双向通信,至少需要两个SA。如果两个对等体希望同时使用AH和ESP安全协议来进行通信,则对等体针对每一种安全协议都需要协商一对SA。
  • SA由一个三元组来唯一标识,这个三元组包括安全参数索引SPI(Security Parameter Index)、目的IP地址、安全协议(AH或ESP)。
  • 建立SA的方式有以下两种:
    • 手工方式:安全联盟所需的全部信息都必须手工配置。手工方式建立安全联盟比较复杂,但优点是可以不依赖IKE而单独实现IPSec功能。当对等体设备数量较少时,或是在小型静态环境中,手工配置SA是可行的
    • IKE动态协商方式:只需要通信对等体间配置好IKE协商参数,由IKE自动协商来创建和维护SA。动态协商方式建立安全联盟相对简单些。对于中、大型的动态网络环境中,推荐使用IKE协商建立SA。

1.5 IPSec传输模式

image.png

  • IPSec协议有两种封装模式:传输模式和隧道模式。
  • 传输模式中,在IP报文头和高层协议之间插入AH或ESP头。传输模式中AH或ESP主要对上层协议数据提供保护
  • 传输模式中的AH:在IP头部之后插入AH头,对整个IP数据包进行完整性校验。
  • 传输模式中的ESP:在IP头部之后插入ESP头,在数据字段后插入尾部以及认证字段。对高层数据和ESP尾部进行加密。对IP数据包中的ESP报文头,高层数据和ESP尾部进行完整性校验。
  • 传输模式中的AH+ESP:在IP头部之后插入AH和ESP头,在数据字段后插入尾部以及认证字段。

1.6 IPSec隧道模式

image.png

  • 隧道模式中,AH或ESP头封装在原始IP报文头之前,并另外生成一个新的IP头封装到AH或ESP之前。隧道模式可以完全地对原始IP数据报进行认证和加密,而且,可以使用IPSec对等体的IP地址来隐藏客户机的IP地址。
  • 隧道模式中的AH:对整个原始IP报文提供完整性检查和认证,认证功能优于ESP。但AH不提供加密功能,所以通常和ESP联合使用。
  • 隧道模式中的ESP:对整个原始IP报文和ESP尾部进行加密,对ESP报文头、原始IP报文和ESP尾部进行完整性校验。
  • 隧道模式中的AH+ESP:对整个原始IP报文和ESP尾部进行加密、AH、ESP分别会对不同部分进行完整性校验

1.7 IPSec VPN配置步骤

image.png

  • 配置IPSec VPN的步骤如下:
  1. 首先需要检查报文发送方和接收方之间的网络层可达性,确保双方只有建立IPSec VPN隧道才能进行IPSec通信
  2. 第二步是定义数据流。因为部分流量无需满足完整性和机密性要求,所以需要对流量进行过滤,选择出需要进行IPSec处理的兴趣流。可以通过配置ACL来定义和区分不同的数据流。
  3. 第三步是配置IPSec安全提议。IPSec提议定义了保护数据流所用的安全协议、认证算法、加密算法和封装模式。安全协议包括AH和ESP,两者可以单独使用或一起使用,AH支持MD5和SHA-1认证算法,ESP支持两种认证算法(MD5和SHA-1)和三种加密算法(DES、3DES和AES)。为了能够正常传输数据流,安全隧道两端的对等体必须使用相同的安全协议、认证算法、加密算法和封装模式。如果要在两个安全网关之间建立IPSec隧道,建议将IPSec封装模式设置为隧道模式,以便隐藏通信使用的实际源IP地址和目的IP地址。
  4. 第四步是配置IPSec安全策略。IPSec策略中会应用IPSec提议中定义的安全协议、认证算法、加密算法和封装模式。每一个IPSec安全策略都使用唯一的名称和序号来标识。IPSec策略可分成两类:手工建立SA的策略和IKE协商建立SA的策略。
  5. 第五步是在一个接口上应用IPSec安全策略。

1.8 IPSec VPN配置

image.png

  • 本示例中的IPSec VPN连接是通过配置静态路由建立的,下一跳指向RTB。需要配置两个方向的静态路由保证双方通信可达。建立一条高级ACL,用于确定哪些感兴趣流需要通过IPSec VPN隧道,高级ACL能够依据特定参数过滤流量,继而对流量执行丢弃、通过和保护操作。

  • 执行ipsec proposal命令,可以创建IPSec提议并进入IPSec提议视图。缺省情况下,使用ipsec proposal命令创建的IPSec提议采用ESP协议、MD5认证算法和隧道封装。IPSec提议视图下执行下列命令可以修改这些参数。

  • 执行transform [ah|ah-esp|esp]命令,可以重新配置隧道采用的安全协议。
  • 执行encapsulation-mode{transport|tunnel}命令,可以配置报文的封装模式。
  • 执行esp authentication-algorithm[md5|sha1|sha2-256|sha2-384|sha2-512]命令,可以配置ESP协议使用的认证算法。
  • 执行esp encryption-algorithm[des|3des|ase-128|aes-192|aes-256]命令,可以配置ESP加密算法。
  • 执行ah authentication-algorithm[md5|sha1|sha2-256|sha2-384|sha2-512]命令,可以配置AH协议使用的认证算法。


image.png
image.png
image.png
image.png
image.png