知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系!
- 企业对网络安全性的需求日益提升,而传统的TCP/IP协议缺乏有效的安全认证和保密机制。IPSec(Internet Protocol Security)作为一种开放标准的安全框架结构,可以用来保证IP数据报文在网络上传输的机密性、完整性和防重放。
IPSec VPN应用场景
- 企业分支可以通过IPSec VPN接入到企业总部网络。
- IPSec是IETF定义的一个协议组。通信双方在IP层通过加密、完整性校验、数据源认证等方式,保证了IP数据报文在网络上传输的机密性、完整性和防重放。
- 企业远程分支机构可以通过使用IPSec VPN建立安全传输通道,接入到企业总部网络。
IPSec架构
- IPSec不是一个单独的协议,它通过AH和ESP这两个安全协议来实现IP数据报文的安全传送。
- IKE协议提供密钥协商,建立和维护安全联盟SA等服务。
- IPSec VPN体系结构主要由AH(Authentication Header)、ESP(Encapsulating Security Payload)和IKE(Internet Key Exchange)协议套件组成。
安全联盟SA
- 安全联盟定义了IPSec对等体间将使用的数据封装模式、认证和加密算法、密钥等参数。
- 安全联盟是单向的,两个对等体之间的双向通信,至少需要两个SA。
- SA(Security Association)安全联盟定义了IPSec通信对等体间将使用的数据封装模式、认证和加密算法、秘钥等参数。SA是单向的,两个对等体之间的双向通信,至少需要两个SA。如果两个对等体希望同时使用AH和ESP安全协议来进行通信,则对等体针对每一种安全协议都需要协商一对SA。
- SA由一个三元组来唯一标识,这个三元组包括安全参数索引SPI(Security Parameter Index)、目的IP地址、安全协议(AH或ESP)。
- 建立SA的方式有以下两种:
IPSec传输模式
- 在传输模式下, AH或ESP报头位于IP报头和传输层报头之间。
- IPSec协议有两种封装模式:传输模式和隧道模式。
- 传输模式中,在IP报文头和高层协议之间插入AH或ESP头。传输模式中的AH或ESP主要对上层协议数据提供保护。
- 传输模式中的AH:在IP头部之后插入AH头,对整个IP数据包进行完整性校验。
- 传输模式中的ESP:在IP头部之后插入ESP头,在数据字段后插入尾部以及认证字段。对高层数据和ESP尾部进行加密,对IP数据包中的ESP报文头,高层数据和ESP尾部进行完整性校验。
- 传输模式中的AH+ESP:在IP头部之后插入AH和ESP头,在数据字段后插入尾部以及认证字段。
IPSec隧道模式
- 在隧道模式下,IPSec会另外生成一个新的IP报头,并封装在AH或ESP之前。
- 隧道模式中,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分别会对不同部分进行完整性校验。
IPSec VPN 配置步骤
配置IPSec VPN的步骤如下:
IPSec VPN 配置
[RTA]ip route-static 10.1.2.0 24 20.1.1.2
[RTA]acl number 3001
[RTA-acl-adv-3001]rule 5 permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
[RTA]ipsec proposal tran1
[RTA-ipsec-proposal-tran1]esp authentication-algorithm sha1
- 本示例中的IPSec VPN连接是通过配置静态路由建立的,下一跳指向RTB。需要配置两个方向的静态路由确保双向通信可达。建立一条高级ACL,用于确定哪些感兴趣流需要通过IPSec VPN隧道。高级ACL能够依据特定参数过滤流量,继而对流量执行丢弃、通过或保护操作。
- 执行ipsec proposal命令,可以创建IPSec提议并进入IPSec提议视图。配置IPSec策略时,必须引用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 | aes-128 | aes-192 | aes-256 ]命令,可以配置ESP加密算法。
- 执行ah authentication-algorithm [md5 | sha1 | sha2-256 | sha2-384 | sha2-512 ]命令,可以配置AH协议使用的认证算法。
配置验证
[RTA]display ipsec proposal
Number of proposals: 1
IPSec proposal name: tran1
Encapsulation mode: Tunnel
Transform : esp-new
ESP protocol : Authentication SHA1-HMAC-96
Encryption DES
- IPSec VPN对等体配置的安全提议参数必须一致。
- 执行display ipsec proposal [name <proposal-name>]命令,可以查看IPSec提议中配置的参数。
- Number of proposals字段显示的是已创建的IPSec提议的个数。
- IPSec proposal name字段显示的是已创建IPSec提议的名称。
- Encapsulation mode字段显示的指定提议当前使用的封装模式,其值可以为传输模式或隧道模式。
- Transform字段显示的是IPSec所采用的安全协议,其值可以是AH、ESP或AH-ESP。
- ESP protocol字段显示的是安全协议所使用的认证和加密算法。
IPSec VPN 配置
[RTA]ipsec policy P1 10 manual
[RTA-ipsec-policy-manual-P1-10]security acl 3001
[RTA-ipsec-policy-manual-P1-10]proposal tran1
[RTA-ipsec-policy-manual-P1-10]tunnel remote 20.1.1.2
[RTA-ipsec-policy-manual-P1-10]tunnel local 20.1.1.1
[RTA-ipsec-policy-manual-P1-10]sa spi outbound esp 54321
[RTA-ipsec-policy-manual-P1-10]sa spi inbound esp 12345
[RTA-ipsec-policy-manual-P1-10]sa string-key outbound esp simple huawei
[RTA-ipsec-policy-manual-P1-10]sa string-key inbound esp simple huawei
- 安全策略将要保护的数据流和安全提议进行绑定。
- ipsec policy policy-name seq-number命令用来创建一条IPSec策略,并进入IPSec策略视图。安全策略是由policy-name和seq-number共同来确定的,多个具有相同policy-name的安全策略组成一个安全策略组。在一个安全策略组中最多可以设置16条安全策略,而seq-number越小的安全策略,优先级越高。在一个接口上应用了一个安全策略组,实际上是同时应用了安全策略组中所有的安全策略,这样能够对不同的数据流采用不同的安全策略进行保护。
- IPSec策略除了指定策略的名称和序号外,还需要指定SA的建立方式。如果使用的是IKE协商,需要执行ipsec-policy-template命令配置指定参数。如果使用的是手工建立方式,所有参数都需要手工配置。本示例采用的是手工建立方式。
- security acl acl-number命令用来指定IPSec策略所引用的访问控制列表。
- proposal proposal-name命令用来指定IPSec策略所引用的提议。
- tunnel local { ip-address | binding-interface }命令用来配置安全隧道的本端地址。
- tunnel remote ip-address命令用来设置安全隧道的对端地址。
- sa spi { inbound | outbound } { ah | esp } spi-number命令用来设置安全联盟的安全参数索引SPI。在配置安全联盟时,入方向和出方向安全联盟的安全参数索引都必须设置,并且本端的入方向安全联盟的SPI值必须和对端的出方向安全联盟的SPI值相同,而本端的出方向安全联盟的SPI值必须和对端的入方向安全联盟的SPI值相同。
- sa string-key { inbound | outbound } { ah | esp } { simple | cipher } string-key命令用来设置安全联盟的认证密钥。入方向和出方向安全联盟的认证密钥都必须设置,并且本端的入方向安全联盟的密钥必须和对端的出方向安全联盟的密钥相同;同时,本端的出方向安全联盟密钥必须和对端的入方向安全联盟的密钥相同。
[RTA]interface GigabitEthernet 0/0/1
[RTA-GigabitEthernet0/0/1]ipsec policy P1
[RTA-GigabitEthernet0/0/1]quit
- ipsec policy policy-name命令用来在接口上应用指定的安全策略组。手工方式配置的安全策略只能应用到一个接口。
配置验证
[RTA]display ipsec policy
===========================================
IPSec policy group: “P1"
Using interface: GigabitEthernet 0/0/1
===========================================
Sequence number: 10
Security data flow: 3001
Tunnel local address: 20.1.1.1
Tunnel remote address: 20.1.1.2
Qos pre-classify: Disable
Proposal name:tran1
...
……
Inbound ESP setting:
ESP SPI: 12345 (0x3039)
ESP string-key: huawei
ESP encryption hex key:
ESP authentication hex key:
Outbound ESP setting:
ESP SPI: 54321 (0xd431)
ESP string-key: huawei
ESP encryption hex key:
ESP authentication hex key:
……
- 执行display ipsec policy [brief | name policy-name [ seq-number ]]命令,可以查看指定IPSec策略或所有IPSec策略。命令的显示信息中包括:策略名称、策略序号、提议名称、ACL、隧道的本端地址和隧道的远端地址等。
- 执行display ipsec policy命令,还可以查看出方向和入方向SA相关的参数。
本章总结
问:安全联盟的作用是什么?
答:SA(Security Association)安全联盟定义了IPSec通信对等体间将使用的数据封装模式、认证和加密算法、密钥等参数。
问:IPSec VPN将会对过滤后的感兴趣数据流如何操作?
答:经过IPSec过滤后的感兴趣数据流将会通过SA协商的各种参数进行处理并封装,之后通过IPSec隧道转发。