目录
Internet Protocol Security Virtual Private Network : IP 安全协议 虚拟专用网络
前言
IPSec VPN应用场景
IPSec 架构
安全联盟 SA
IPSec 传输模式
IPSec 隧道模式
IPSec VPN 配置步骤
IPSec VPN 配置
配置验证
IPSec VPN 配置
IPSec VPN 配置
配置验证
配置验证
总结
华为HCIA 基础实验-IPSec VPN & eNSP
练习题:IPSec VPN
企业对网络安全性的需求日益提升,而传统的TCP/IP协议缺乏有效的安全认证和保密机制。lPSec (Internet Protocol Security)作为一种开放标准的安全框架结构,可以用来保证lIP数据报文在网络上传输的机密性、完整性和防重放。
⦁ IPSec是IETF定义的一个协议组。通信双方在IP层通过加密、完整性校验、数据源认证等方式,保证了IP数据报文在网络上传输的机密性、完整性和防重放。
⦁ 机密性(Confidentiality)指对数据进行加密保护,用密文的形式传送数据。
⦁ 完整性(Data integrity)指对接收的数据进行认证,以判定报文是否被篡改。
⦁ 防重放(Anti-replay)指防止恶意用户通过重复发送捕获到的数据包所进行的攻击,即接收方会拒绝旧的或重复的数据包。
⦁ 企业远程分支机构可以通过使用IPSec VPN建立安全传输通道,接入到企业总部网络。
⦁ IPSec VPN体系结构主要由AH(Authentication Header)、ESP(Encapsulating Security Payload)和IKE(Internet Key Exchange)协议套件组成。
⦁ AH协议:主要提供的功能有数据源验证、数据完整性校验和防报文重放功能。然而,AH并不加密所保护的数据报。
⦁ ESP协议:提供AH协议的所有功能外(但其数据完整性校验不包括IP头),还可提供对IP报文的加密功能。
⦁ IKE协议:用于自动协商AH和ESP所使用的密码算法。
⦁ 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。
⦁ IPSec协议有两种封装模式:传输模式和隧道模式。
⦁ 传输模式中,在IP报文头和高层协议之间插入AH或ESP头。传输模式中的AH或ESP主要对上层协议数据提供保护。
⦁ 传输模式中的AH:在IP头部之后插入AH头,对整个IP数据包进行完整性校验。
⦁ 传输模式中的ESP:在IP头部之后插入ESP头,在数据字段后插入尾部以及认证字段。对高层数据和ESP尾部进行加密,对IP数据包中的ESP报文头,高层数据和ESP尾部进行完整性校验。
⦁ 传输模式中的AH+ESP:在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通信。
⦁ 第二步是定义数据流。因为部分流量无需满足完整性和机密性要求,所以需要对流量进行过滤,选择出需要进行IPSec处理的兴趣流。可以通过配置ACL来定义和区分不同的数据流。
⦁ 第三步是配置IPSec安全提议。IPSec提议定义了保护数据流所用的安全协议、认证算法、加密算法和封装模式。安全协议包括AH和ESP,两者可以单独使用或一起使用。AH支持MD5和SHA-1认证算法;ESP支持两种认证算法(MD5和SHA-1)和三种加密算法(DES、3DES和AES)。为了能够正常传输数据流,安全隧道两端的对等体必须使用相同的安全协议、认证算法、加密算法和封装模式。如果要在两个安全网关之间建立IPSec隧道,建议将IPSec封装模式设置为隧道模式,以便隐藏通信使用的实际源IP地址和目的IP地址。
⦁ 第四步是配置IPSec安全策略。IPSec策略中会应用IPSec提议中定义的安全协议、认证算法、加密算法和封装模式。每一个IPSec安全策略都使用唯一的名称和序号来标识。IPSec策略可分成两类:手工建立SA的策略和IKE协商建立SA的策略。
⦁ 第五步是在一个接口上应用IPSec安全策略。
⦁ 本示例中的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协议使用的认证算法。
⦁ 执行display ipsec proposal [name
⦁ Number of proposals字段显示的是已创建的IPSec提议的个数。
⦁ IPSec proposal name字段显示的是已创建IPSec提议的名称。
⦁ Encapsulation mode字段显示的指定提议当前使用的封装模式,其值可以为传输模式或隧道模式。
⦁ Transform字段显示的是IPSec所采用的安全协议,其值可以是AH、ESP或AH-ESP。
⦁ ESP protocol字段显示的是安全协议所使用的认证和加密算法。
⦁ 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命令用来设置安全联盟的认证密钥。入方向和出方向安全联盟的认证密钥都必须设置,并且本端的入方向安全联盟的密钥必须和对端的出方向安全联盟的密钥相同;同时,本端的出方向安全联盟密钥必须和对端的入方向安全联盟的密钥相同。
⦁ ipsec policy policy-name命令用来在接口上应用指定的安全策略组。手工方式配置的安全策略只能应用到一个接口。
⦁ 执行display ipsec policy [brief | name policy-name [ seq-number ]]命令,可以查看指定IPSec策略或所有IPSec策略。命令的显示信息中包括:策略名称、策略序号、提议名称、ACL、隧道的本端地址和隧道的远端地址等。
⦁ 执行display ipsec policy命令,还可以查看出方向和入方向SA相关的参数。
1.SA(Security Association)安全联盟定义了IPSec通信对等体间将使用的数据封装模式、认证和加密算法、密钥等参数。
2.经过IPSec过滤后的感兴趣数据流将会通过SA协商的各种参数进行处理并封装,之后通过IPSec隧道转发。
IPSec VPN 实验
基础配置, 在R1、R2和R3上配置OSPF
R1:
undo ter mo
sy
sys R1
int loo0
ip add 1.1.1.1 24
int loo1
ip add 10.10.10.10 24
int g0/0/0
ip add 192.168.12.1 24
q
ospf 1 router-id 1.1.1.1
area 0
net 1.1.1.1 0.0.0.0
net 10.10.10.10 0.0.0.0
net 192.168.12.1 0.0.0.0
q
R2:
undo ter mo
sy
sys R2
int g0/0/0
ip add 192.168.12.2 24
int g0/0/1
ip add 192.168.23.2 24
q
ospf 1 router-id 2.2.2.2
area 0
net 192.168.12.2 0.0.0.0
net 192.168.23.2 0.0.0.0
q
R3:
undo ter mo
sy
sys R3
int lo0
ip add 3.3.3.3 24
int loo1
ip add 30.30.30.30 24
int g0/0/1
ip add 192.168.23.3 24
q
ospf 1 router-id 3.3.3.3
area 0
net 3.3.3.3 0.0.0.0
net 30.30.30.30 0.0.0.0
net 192.168.23.3 0.0.0.0
q
待OSPF收敛完成后,查看OSPF邻居以及路由表
R1 R3 之间可以通信
==========
配置ACL定义感兴趣流
配置高级ACL来定义IPsec VPN的感兴趣流。高级ACL能够基于特定的参数来匹配流量
R1 R3 的源地址,目的地址相反
R1:
acl 3001
rule permit ip source 1.1.1.0 0.0.0.255 destination 3.3.3.0 0.0.0.255
R3:
acl 3001
rule permit ip source 3.3.3.0 0.0.0.255 destination 1.1.1.0 0.0.0.255
==========
配置IPSec VPN提议
创建IPSec提议,并进入IPSec提议视图来指定安全协议。注意确保隧道两端的设备使用相同的安全协议
esncapsulation-mode (transport ) (tunnel) 配置报文的封装模式,默认为 tunnel 模式
esp authetication-algorithm sha1 配置EPS协议使用的认证算法
esp encryption-algorithm 3des 配置ESP加密算法
R1 R3 配置相同
R1:
ipsec proposal tranl
esp authentication-algorithm sha1
esp encryption-algorithm 3des
R3:
ipsec proposal tranl
esp authentication-algorithm sha1
esp encryption-algorithm 3des
执行display ipsec proposal命令,验证配置结果
==========
创建 IPSec 策略
手工创建IPSec策略,每一个IPSec安全策略都使用唯一的名称和序号来标识,IPSec策略中会应用IPSec提议中定义的安全协议、认证算法、加密算法和封装模式,手工创建的IPSec策略还需配置安全联盟(SA)中的参数
执行ipsec policy 创建策略
执行ipsec-policy 指定SA建立方式 可使用IKE或是手工建立
执行security ACL 指定IPSEC策略所引用的访问控制列表
执行proposal 指定IPSEC策略所引用的提议
执行tunnel local 用来指定安全隧道的本端地址
执行tunnel remote 指定隧道的对端地址
执行sa spi 指定安全索引参数
执行 sa string-key 指定安全联盟的认证密钥
R1:
ipsec policy p1 10 manual
security acl 3001
proposal tranl
tunnel remote 192.168.23.3
tunnel local 192.168.12.1
sa spi outbound esp 54321
sa spi inbound esp 12345
sa string-key outbound esp simple huawei
sa string-key inbound esp simple huawei
q
R3:
ipsec policy p1 10 manual
security acl 3001
proposal tranl
tunnel remote 192.168.12.1
tunnel local 192.168.23.3
sa spi outbound esp 12345
sa spi inbound esp 54321
sa string-key outbound esp simple huawei
sa string-key inbound esp simple huawei
q
执行display ipsec policy命令,验证配置结果
==========
在接口下应用IPSec策略
在物理接口应用IPSec策略,接口将对感兴趣流量进行IPSec加密处理
R1:
int g0/0/0
ipsec policy p1
R3:
int g0/0/1
ipsec policy p1
验证设备将对感兴趣流量进行IPSec加密处理
R1:ping -a 1.1.1.1 3.3.3.3
R1:display ipsec statistics esp
ping 之后,会有加密解密的报文
不是感兴趣流量不加解密
ping -a 10.10.10.10 30.30.30.30
加密解密的报文 还是 5
=========
配置动态 IKE v2 IPSec VPN
R1:
int g0/0/0
undo ipsec policy
q
undo ipsec policy p1 10
undo ipsec proposal tran
R3:
int g0/0/1
undo ipsec policy
q
undo ipsec policy p1 10
undo ipsec proposal tran
=========
R1:
ipsec proposal tran1
ike peer huawei v2
pre-shared-key simple huawei
remote-address 192.168.23.3
q
ipsec policy p1 10 isakmp
security acl 3000
proposal tran1
ike-peer huawei
q
int g0/0/0
ipsec policy p1
R3:
ipsec proposal tran1
ike peer huawei v2
pre-shared-key simple huawei
remote-address 192.168.12.1
q
ipsec policy p1 10 isakmp
security acl 3000
proposal tran1
ike-peer huawei
q
int g0/0/1
ipsec policy p1
=========
dis ike proposal
display ipsec sa
图所示的数据包中,下列哪些字段将会被IPsec VPN的ESP协议加密?
A. TCP Header,Data,ESP Trailer
B. ESP Header,TCP Header,Data
C. ESP Header,TCP Header,Data,ESP Trailer
D. ESP Header,TCP Header,Data,ESP Trailer,ESP Auth
Correct Answer: A
两台路由器之间建立IPsec隧道时,下列哪项参数在IPsec对等体之间不需要确保一致?
A. 所使用的安全协议
B. 数据封装模式
C. Proposal名字
D. 认证算法
Correct Answer: C