23
2021
08
23:14:46

h3c 基于IPsec虚拟隧道接口建立IPsec安全隧道



推荐点击下面图片,通过本站淘宝优惠价购买:

image.png

http://www.h3c.com/cn/d_201401/812557_30005_0.htm#_Ref229537746


  录

1 IPsec

1.1 IPsec简介

1.1.1 IPsec基本概念

1.1.2 IPsec虚拟隧道接口

1.1.3 使用IPsec保护IPv6路由协议

1.1.4 IPsec反向路由注入功能

1.1.5 协议规范

1.2 建立IPsec隧道的配置方式

1.3 基于ACL建立IPsec安全隧道

1.3.1 IPsec配置任务简介

1.3.2 配置访问控制列表

1.3.3 配置IPsec安全提议

1.3.4 配置IPsec安全策略

1.3.5 在接口上应用IPsec安全策略组

1.3.6 使能加密引擎功能

1.3.7 配置会话空闲超时时间

1.3.8 使能解封装后IPsec报文的ACL检查功能

1.3.9 配置IPsec抗重放功能

1.3.10 配置共享源接口安全策略组

1.3.11 配置报文信息预提取功能

1.3.12 配置IPsec无效SPI恢复功能

1.3.13 配置IPsec反向路由注入功能

1.3.14 使能接口下的NAT业务将报文透传给IPSec业务处理

1.3.15 使能加密前/加密后分片功能

1.4 基于IPsec虚拟隧道接口建立IPsec安全隧道

1.4.1 IPsec虚拟隧道接口配置任务简介

1.4.2 配置IPsec安全框架

1.4.3 配置IPsec虚拟隧道接口

1.4.4 IPsec虚拟隧道接口上配置报文信息预提取功能

1.4.5 IPsec虚拟隧道接口上应用QoS策略

1.5 配置IPsec保护IPv6路由协议

1.6 IPsec显示和维护

1.7 IPsec典型配置举例

1.7.1 采用手工方式建立IPsec安全隧道

1.7.2 采用IKE方式建立IPsec安全隧道

1.7.3 配置IPsec接口备份

1.7.4 使用IPsec虚拟隧道接口建立IPsec安全隧道

1.7.5 配置IPsec保护RIPng报文

1.7.6 IPsec反向路由注入功能典型配置举例

 


IPsec

1.1  IPsec简介

IPsec(IP Security)是IETF制定的三层隧道加密协议,它为Internet上传输的数据提供了高质量的、可互操作的、基于密码学的安全保证,是一种传统的实现三层VPN(Virtual Private Network,虚拟专用网络)的安全技术。特定的通信方之间通过建立IPsec隧道来传输用户的私有数据,并在IP层提供了以下安全服务:

·     数据机密性(Confidentiality):IPsec发送方在通过网络传输包前对包进行加密。

·     数据完整性(Data Integrity):IPsec接收方对发送方发送来的包进行认证,以确保数据在传输过程中没有被篡改。

·     数据来源认证(Data Authentication):IPsec在接收端可以认证发送IPsec报文的发送端是否合法。

·     防重放(Anti-Replay):IPsec接收方可检测并拒绝接收过时或重复的报文。

IPsec具有以下优点:

·     支持IKE(Internet Key Exchange,互联网密钥交换),可实现密钥的自动协商功能,减少了密钥协商的开销。可以通过IKE建立和维护SA(Security Association,安全联盟)的服务,简化了IPsec的使用和管理。

·     所有使用IP协议进行数据传输的应用系统和服务都可以使用IPsec,而不必对这些应用系统和服务本身做任何修改。

·     对数据的加密是以数据包为单位的,而不是以整个数据流为单位,这不仅灵活而且有助于进一步提高IP数据包的安全性,可以有效防范网络攻击。

IPsec协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议AH(Authentication Header,认证头)、ESP(Encapsulating Security Payload,封装安全载荷)、IKE(Internet Key Exchange,互联网密钥交换)和用于网络认证及加密的一些算法等。其中,AH协议和ESP协议用于提供安全服务,IKE协议用于密钥交换。关于IKE的详细介绍请参见“VPN配置指导”中的“IKE配置”,本节不做介绍。

IPsec提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行加密运算来保证数据的机密性,以防数据在传输过程中被窃听。

说明

若无特殊说明,本文中的IKE均指第1版本的IKE协议。

 

1.1.1  IPsec基本概念

1. 安全协议

AH协议和ESP协议的功能及工作原理如下:

·     AH协议(IP协议号为51)定义了认证的应用方法,提供数据源认证、数据完整性校验和防报文重放功能,它能保护通信免受篡改,但不能防止窃听,适合用于传输非机密数据。AH的工作原理是在每一个数据包上添加一个身份验证报文头,此报文头插在标准IP包头后面,对数据提供完整性保护。可选择的认证算法有MD5(Message Digest)、SHA-1(Secure Hash Algorithm)等。

·     ESP协议(IP协议号为50)定义了加密和可选认证的应用方法,提供加密、数据源认证、数据完整性校验和防报文重放功能。ESP的工作原理是在每一个数据包的标准IP包头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾。与AH协议不同的是,ESP将需要保护的用户数据进行加密后再封装到IP包中,以保证数据的机密性。常见的加密算法有DES、3DES、AES等。同时,作为可选项,用户可以选择MD5、SHA-1算法保证报文的完整性和真实性。

在实际进行IP通信时,可以根据实际安全需求同时使用这两种协议或选择使用其中的一种。AH和ESP都可以提供认证服务,不过,AH提供的认证服务要强于ESP。同时使用AH和ESP时,设备支持的AH和ESP联合使用的方式为:先对报文进行ESP封装,再对报文进行AH封装,封装之后的报文从内到外依次是原始IP报文、ESP头、AH头和外部IP头。

2. 安全联盟(Security Association,SA)

IPsec在两个端点之间提供安全通信,端点被称为IPsec对等体。

SA是IPsec的基础,也是IPsec的本质。SA是通信对等体间对某些要素的约定,例如,使用哪种协议(AH、ESP还是两者结合使用)、协议的封装模式(传输模式和隧道模式)、加密算法(DES、3DES和AES)、特定流中保护数据的共享密钥以及密钥的生存周期等。建立SA的方式有手工配置和IKE自动协商两种。

SA是单向的,在两个对等体之间的双向通信,最少需要两个SA来分别对两个方向的数据流进行安全保护。同时,如果两个对等体希望同时使用AH和ESP来进行安全通信,则每个对等体都会针对每一种协议来构建一个独立的SA。

SA由一个三元组来标识,这个三元组包括SPI(Security Parameter Index,安全参数索引)、目的IP地址、安全协议号(AH或ESP)。

SPI是用于唯一标识SA的一个32比特数值,它在AH和ESP头中传输。在手工配置SA时,需要手工指定SPI的取值。使用IKE协商产生SA时,SPI将随机生成。

通过IKE协商建立的SA具有生存周期,手工方式建立的SA永不老化。IKE协商建立的SA的生存周期有两种定义方式:

·     基于时间的生存周期,定义了一个SA从建立到失效的时间;

·     基于流量的生存周期,定义了一个SA允许处理的最大流量。

生存周期到达指定的时间或指定的流量,SA就会失效。SA失效前,IKE将为IPsec协商建立新的SA,这样,在旧的SA失效前新的SA就已经准备好。在新的SA开始协商而没有协商好之前,继续使用旧的SA保护通信。在新的SA协商好之后,则立即采用新的SA保护通信。

3. 封装模式

IPsec有如下两种工作模式:

·     隧道(tunnel)模式:用户的整个IP数据包被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被封装在一个新的IP数据包中。通常,隧道模式应用在两个安全网关之间的通讯。

·     传输(transport)模式:只是传输层数据被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被放置在原IP包头后面。通常,传输模式应用在两台主机之间的通讯,或一台主机和一个安全网关之间的通讯。

不同的安全协议在tunnel和transport模式下的数据封装形式如图1-1所示。

图1-1 安全协议数据封装格式

 

4. 认证算法与加密算法

(1)     认证算法

认证算法的实现主要是通过杂凑函数。杂凑函数是一种能够接受任意长的消息输入,并产生固定长度输出的算法,该输出称为消息摘要。IPsec对等体计算摘要,如果两个摘要是相同的,则表示报文是完整未经篡改的。IPsec使用两种认证算法:

·     MD5:MD5通过输入任意长度的消息,产生128bit的消息摘要。

·     SHA-1:SHA-1通过输入长度小于2的64次方bit的消息,产生160bit的消息摘要。

MD5算法的计算速度比SHA-1算法快,而SHA-1算法的安全强度比MD5算法高。

(2)     加密算法

加密算法实现主要通过对称密钥系统,它使用相同的密钥对数据进行加密和解密。目前设备的IPsec实现三种加密算法:

·     DES(Data Encryption Standard):使用56bit的密钥对一个64bit的明文块进行加密。

·     3DES(Triple DES):使用三个56bit的DES密钥(共168bit密钥)对明文进行加密。

·     AES(Advanced Encryption Standard):使用128bit、192bit或256bit密钥长度的AES算法对明文进行加密。

这三个加密算法的安全性由高到低依次是:AES、3DES、DES,安全性高的加密算法实现机制复杂,运算速度慢。对于普通的安全要求,DES算法就可以满足需要。

5. 协商方式

有如下几种协商方式建立SA:

·     手工方式(manual)配置比较复杂,创建SA所需的全部信息都必须手工配置,而且不支持一些高级特性(例如定时更新密钥),但优点是可以不依赖IKE而单独实现IPsec功能。

·     IKE自动协商(isakmp)方式相对比较简单,只需要配置好IKE协商安全策略的信息,由IKE自动协商来创建和维护SA。

·     GDOI方式用于构建GET VPN(Group Encrypted Transport Virtual Private Network,组加密传输虚拟专用网络),SA和密钥由KS(Key Server,密钥服务器)集中管理并下发给GM(Group Member,组成员)。

当与之进行通信的对等体设备数量较少时,或是在小型静态环境中,手工配置SA是可行的。对于中、大型的动态网络环境中,推荐使用IKE协商建立SA。

6. 安全隧道

安全隧道是建立在本端和对端之间可以互通的一个通道,它由一对或多对SA组成。

1.1.2  IPsec虚拟隧道接口

1. 概述

IPsec虚拟隧道接口是一种支持路由的三层逻辑接口,它可以支持动态路由协议,所有路由到IPsec虚拟隧道接口的报文都将进行IPsec保护。使用IPsec虚拟隧道接口建立IPsec隧道具有以下优点:

·     简化配置:通过路由来确定对哪些数据流进行IPsec保护。与通过ACL指定数据流范围的方式相比,这种方式简化了用户在部署IPsec安全策略时配置上的复杂性,使得IPsec的配置不会受到网络规划的影响,增强了网络规划的可扩展性,降低了网络维护成本。

·     减少开销:在保护远程接入用户流量的组网应用中,在IPsec虚拟隧道接口处进行报文封装,与IPsec over GRE或者IPsec over L2TP方式的隧道封装相比,无需额外为入隧道流量加封装GRE头或者L2TP头,减少了报文封装的层次,节省了带宽。

·     业务应用更灵活:IPsec虚拟隧道接口在实施过程中明确地区分出“加密前”和“加密后”两个阶段,用户可以根据不同的组网需求灵活选择其它业务(例如NAT、QoS)实施的阶段。例如,如果用户希望对IPsec封装前的报文应用QoS,则可以在IPsec虚拟隧道接口上应用QoS策略;如果希望对IPsec封装后的报文应用QoS,则可以在物理出接口上应用QoS策略。

2. 工作原理

IPsec虚拟隧道接口对报文的加封装/解封装发生在隧道接口上。用户流量到达实施IPsec配置的设备后,需要IPsec处理的报文会被转发到IPsec虚拟隧道接口上进行加封装/解封装。

图1-2所示,IPsec虚拟隧道接口对报文进行加封装的过程如下:

图1-2 IPsec虚接口隧道加封装原理图

 

(1)     Router将从入接口接收到的IP明文送到转发模块进行处理;

(2)     转发模块依据路由查询结果,将IP明文发送到IPsec虚拟隧道接口进行加封装:原始IP报文被封装在一个新的IP报文中,新IP头中的源地址和目的地址分别为隧道接口的源地址和目的地址。

(3)     IPsec虚拟隧道接口完成对IP明文的加封装处理后,将IP密文送到转发模块进行处理;

(4)     转发模块进行第二次路由查询后,将IP密文通过隧道接口的实际物理出接口转发出去。

图1-3所示,IPsec虚拟隧道接口对报文进行解封装的过程如下:

图1-3 IPsec虚接口隧道解封装原理图

 

(1)     Router将从入接口接收到的IP密文送到转发模块进行处理;

(2)     转发模块识别到此IP密文的目的地为本设备的隧道接口地址且IP协议号为AH或ESP时,会将IP密文送到相应的IPsec虚拟隧道接口进行解封装:将IP密文的外层IP头去掉,对内层IP报文进行解密处理。

(3)     IPsec虚拟隧道接口完成对IP密文的解封装处理之后,将IP明文重新送回转发模块处理;

(4)     转发模块进行第二次路由查询后,将IP明文从隧道的实际物理出接口转发出去。

从上面描述的加封装/解封装过程可见,IPsec虚拟隧道接口将报文的IPsec处理过程区分为两个阶段:“加密前”和“加密后”。需要应用到加密前的明文上的业务(例如NAT、QoS),可以应用到隧道接口上;需要应用到加密后的密文上的业务,则可以应用到隧道接口对应的物理出接口上。

1.1.3  使用IPsec保护IPv6路由协议

使用IPsec保护IPv6路由协议是指,使用AH/ESP协议对IPv6路由协议报文进行加/解封装处理,并为其提供认证和加密的安全服务,目前支持OSPFv3、RIPng路由协议。

IPsec对IPv6路由协议报文进行保护的处理方式和目前基于接口的IPsec处理方式不同,是基于业务的IPsec,即IPsec保护某一业务的所有报文。该方式下,设备产生的所有需要IPsec保护的IPv6路由协议报文都要被进行加封装处理,而设备接收到的不受IPsec保护的以及解封装(解密或验证)失败的IPv6路由协议报文都要被丢弃。

在基于接口的IPsec处理方式下,设备对配置了IPsec安全功能的接口上发送的每个报文都要判断是否进行IPsec处理。目前,该方式有两种实现,一种是基于ACL的IPsec,只要到达接口的报文与该接口的IPsec安全策略中的ACL规则匹配,就会受到IPsec保护;另一种是基于路由的IPsec,即IPsec虚拟隧道接口方式,只要被路由到虚拟隧道接口上的报文都会受到IPsec保护。

相对于基于接口的IPsec,基于业务的IPsec既不需要ACL来限定要保护的流的范围,也不需要指定IPsec隧道的起点与终点,IPsec安全策略仅与具体的业务绑定,不管业务报文从设备的哪个接口发送出去都会被IPsec保护。

由于IPsec的密钥交换机制仅仅适用于两点之间的通信保护,在广播网络一对多的情形下,IPsec无法实现自动交换密钥,因此必须使用手工配置密钥的方式。同样,由于广播网络一对多的特性,要求各设备对于接收、发送的报文均使用相同的SA参数(相同的SPI及密钥)。因此,目前仅支持手工安全策略生成的SA对IPv6路由协议报文进行保护。

1.1.4  IPsec反向路由注入功能

图1-4所示,某企业在企业分支与企业总部之间的所有流量通过IPsec进行保护,当企业分支众多时,企业总部网关需要配置大量静态路由,将总部发往分支的数据引到应用IPsec策略的接口上来,另外,当企业分支内部网络规划发生变化时,同时需要调整总部网关上的静态路由,工作量巨大且容易出现配置错误。

RRI(Reverse Route Injection,反向路由注入)功能的出现,可以很好得解决这些问题。RRI是一种自动添加到达IPsec VPN私网或IPsec隧道网关静态路由的机制,可实现为受IPsec保护的流量自动添加静态路由的功能。

图1-4 IPsec VPN组网图

 

如上IPsec VPN组网中,在总部网关设备Device A上配置RRI功能后,Device A上将自动添加一条到达分支所在私网网段192.168.2.0/24的路由,等价于在其上手工配置目的IP/掩码为192.168.2.0/24、下一跳为2.2.2.2的静态路由:

通过RRI创建的路由表项可以在路由表中查询到,其目的地址为受保护的对端网络,下一跳地址为IPsec隧道对端地址或指定的地址,它使得发往对端的流量将被强制通过IPsec加密后转发。

RRI创建的静态路由和手工配置的静态路由一样,可以向内网设备进行广播,允许内网设备选择合适的路由对IPsec VPN流量进行转发。该功能在企业总部有多台网关设备的组网应用中,如进行负载均衡的情况下,甚至是IPsec VPN流量通过默认网关无法到达对端网关设备的时候,都能及时生成新的路由来转发IPsec VPN流量,因此非常有用。

在大规模组网中,这种自动添加静态路由的机制可以简化用户配置,减少在企业总部网关上配置静态路由的工作量,并且可以根据IPsec SA的创建和删除进行静态路由的动态增加和删除,大大增强VPN网络的可扩展性。

1.1.5  协议规范

与IPsec相关的协议规范有:

·     RFC2401:Security Architecture for the Internet Protocol

·     RFC2402:IP Authentication Header

·     RFC2406:IP Encapsulating Security Payload

·     RFC4552:Authentication/Confidentiality for OSPFv3

1.2  建立IPsec隧道的配置方式

IPsec隧道的建立有多种配置方式,请根据实际组网中对IPsec隧道的使用需求来选择配置方式:

·     基于ACL方式:由ACL来指定要保护的数据流范围,通过配置安全策略并将安全策略绑定在实际的物理接口上来完成IPsec的配置。这种方式可以利用ACL的丰富配置功能,结合实际的组网环境灵活制定IPsec安全策略。具体配置请参见“1.3  基于ACL建立IPsec安全隧道”。

·     基于路由方式:即基于IPsec虚拟隧道接口建立IPsec安全隧道。这种方式下,由路由来选择需要保护的数据流,通过配置安全框架并在IPsec虚拟隧道接口上应用安全框架来完成IPsec的配置。这种方式简化了网络配置及网络管理上的复杂度,增强了大型VPN网络的可扩展性。具体配置请参见“1.4  基于IPsec虚拟隧道接口建立IPsec安全隧道”。

·     基于业务方式:IPsec安全策略直接与具体的业务绑定,保护某一业务的所有报文,无需ACL或者路由来指定要保护的数据流。目前,支持对IPv6路由协议的保护。通过配置手工方式的IPsec安全策略,并在IPv6路由协议上应用安全策略来完成IPsec的配置。具体配置请参见“1.5  配置IPsec保护IPv6路由协议”。

1.3  基于ACL建立IPsec安全隧道

1.3.1  IPsec配置任务简介

基于ACL建立IPsec安全隧道的基本配置思路如下:

(1)     通过配置访问控制列表,用于匹配需要保护的数据流;

(2)     通过配置IPsec安全提议,指定安全协议、认证算法和加密算法等;

(3)     通过配置IPsec安全策略,将要保护的数据流和IPsec安全提议进行关联(即定义对何种数据流实施何种保护),并指定SA的协商方式、对等体IP地址(即保护路径的起/终点)、所需要的密钥和SA的生存周期等;

(4)     最后在设备接口上应用IPsec安全策略即可完成IPsec隧道的配置。若通过软件实现,则在接口IPsec上应用安全策略即可。

表1-1 IPsec配置任务简介

配置任务

说明

详细配置

IPsec基本配置

配置访问控制列表

必选

1.3.2 

配置IPsec安全提议

1.3.3 

配置IPsec安全策略

1.3.4 

在接口上应用IPsec安全策略组

1.3.5  

使能加密引擎

可选

1.3.6 

配置会话空闲超时时间

可选

1.3.7 

使能解封装后IPsec报文的ACL检查开关

可选

1.3.8 

配置IPsec抗重放功能

可选

1.3.9 

配置共享源接口安全策略组

可选

1.3.10 

配置报文信息预提取功能

可选

1.3.11 

配置IPsec无效SPI恢复功能

可选

1.3.12 

配置IPsec反向路由注入功能

可选

1.3.13 

使能接口下的NAT业务将报文透传给IPSec业务处理

可选

1.3.14 

使能加密前/加密后分片功能

可选

1.3.15 

 

提示

通常情况下,由于IKE协议采用UDP的500端口进行通信,IPsec的AH和ESP协议分别使用51或50号协议来工作,因此为保障IKE和IPsec的正常运行,需要确保应用了IKE和IPsec配置的接口上没有禁止掉属于以上端口和协议的流量。

 

1.3.2  配置访问控制列表

ACL(Access Control List,访问控制列表)是用来实现流识别功能的。网络设备为了过滤报文,需要配置一系列的匹配条件对报文进行分类,当设备的端口接收到报文后,即根据当前端口上应用的ACL规则对报文进行分析、识别之后,根据预先设定的策略对报文进行不同的处理。

1. ACL规则中关键字的使用

IPsec通过配置ACL来定义需要过滤的数据流。在IPsec的应用中,ACL规则中的permit关键字表示与之匹配的流量需要被IPsec保护,而规则中的deny关键字则表示与之匹配的那些流量不需要保护。一个ACL中可以配置多条规则,首个与数据流匹配上的规则决定了对该数据流的处理方式,如果该规则为permit,则该规则就定义了需要建立SA来保护的数据流量的范围。

在IPsec策略中定义的ACL既可用于过滤接口入方向数据流,也可用于过滤接口出方向数据流。

·     设备出入方向的数据流都使用IPsec策略中定义的ACL规则来做匹配依据。具体是,出方向的数据流正向匹配ACL规则,入方向的数据流反向匹配ACL规则。例如,对于应用于IPsec策略中的某ACL规则:rule 0 permit ip source 1.1.1.0 0.0.0.255 destination 2.2.2.0 0.0.0.255,设备使用其正向过滤出方向上从1.1.1.0/24网段到2.2.2.0/24网段的数据流,反向过滤入方向上从2.2.2.0/24网段到1.1.1.0/24网段的数据流。

·     在出方向上,与ACL的permit规则匹配的报文将被IPsec保护,未匹配上任何规则或与deny规则匹配上的报文将不被IPsec保护。

·     在入方向上,与ACL的permit规则匹配上的未被IPsec保护的报文将被丢弃,目的地址为本机的IPsec报文将被进行解封装处理,解封装后的IP报文若能与ACL的permit规则匹配上则采取后续处理,否则丢弃。

需要注意的是:

·     仅对确实需要IPsec保护的数据流配置permit规则,避免盲目地使用关键字any。这是因为,在一个permit规则中使用any关键字就代表所有指定范围上出方向的流量都需要被IPsec保护,所有对应入方向上被保护的IPsec报文将被接收并处理,入方向上未被保护的IPsec报文将被丢弃。这种情况下,一旦入方向收到的某流量是未被IPsec保护的,那么该流量就会被丢弃,这会造成一些本不需要IPsec处理的流量丢失,影响正常的业务流传输。

·     合理使用deny规则,尤其是在一个安全策略下有多条优先级不同的子安全策略时,避免本应该与优先级较低的子安全策略的ACL permit规则匹配而被IPsec保护的出方向报文,因为先与优先级较高的子安全策略的ACL deny规则匹配上,而在接收端被当作未被IPsec保护的报文丢弃。

deny规则的错误配置示例:(以下配置信息仅截取了ACL的相关内容,其它步骤省略)

Router A连接的1.1.2.0/24网段到Router B连接的3.3.3.0/24网段之间的报文,在应用了IPsec策略test的出接口上,优先与顺序号为1的安全策略进行匹配,并匹配上了ACL 3000的rule 1 deny ip,因此Router A认为它不需要IPsec保护,到达Router B后将被丢弃。

Router A上的配置如下:

acl number 3000

 rule 0 permit ip source 1.1.1.0 0.0.0.255 destination 2.2.2.0 0.0.0.255

 rule 1 deny ip

acl number 3001

 rule 0 permit ip source 1.1.2.0 0.0.0.255 destination 3.3.3.0 0.0.0.255

 rule 1 deny ip

#

ipsec policy test 1 isakmp

 security acl 3000

 ike-peer aa

 transform-set 1

#

ipsec policy test 2 isakmp

 security acl 3001

 ike-peer bb

 transform-set 1

Router B上的配置如下:

acl number 3001

 rule 0 permit ip source 3.3.3.0 0.0.0.255 destination 1.1.2.0 0.0.0.255

 rule 1 deny ip

#

ipsec policy test 1 isakmp

 security acl 3001

 ike-peer aa

 transform-set 1

2. ACL规则的配置

为保证SA的成功建立,建议将IPsec对等体上的访问控制列表镜像配置,即保证两端要保护的数据流范围是镜像的。例如,图1-5中Router A和Router B上的ACL配置都是完全镜像对称的,因此用于保护主机Host A与主机Host C之间、子网Network 1与子网Network 2之间流量的SA均可成功建立。

图1-5 镜像ACL配置

 

若IPsec对等体上的访问控制列表配置非镜像,那么只有一种情况下,SA的协商是可以建立的。这种情况就是,一端的访问控制列表规则定义的范围是另外一端的子集。如图1-6所示,Router A上的访问控制列表允许的范围(Host A->Host C)是Router B上访问控制列表(Network 2->Network 1)的子集。

图1-6 非镜像ACL配置

 

但需要注意的是,在这种ACL配置下,并不是任何一端发起的SA协商都可以成功,仅当保护范围小(细粒度)的一端向保护范围大(粗粒度)的一端发起的协商才能成功,反之则协商失败。这是因为,协商响应方要求协商发起方发送过来的数据必须在响应方可以接受的范围之内。其结果就是,从细粒度一端向粗粒度一端发起的协商是可以成功的,例如Host A->Host C;从粗粒度一方向细粒度一方发起的协商是不能成功的,例如Host C->Host B、Host D->Host A等。

3. 数据流的保护方式

目前,设备支持的数据流的保护方式包括以下两种:

·     标准方式:一条隧道保护一条数据流。ACL中的每一个规则对应的数据流都会由一条单独创建的隧道来保护;

·     聚合方式:一条隧道保护ACL中定义的所有数据流。ACL中的所有规则对应的数据流只会由一条创建的隧道来保护。该方式仅在IKE协商安全策略的情况下可配。

·     ACL的具体配置请参见“访问控制配置指导”中的“ACL配置”。

·     若在接口上同时使能IPsec和QoS,同一个IPsec安全联盟的数据流如果被QoS分类进入不同队列,会导致部分报文发送乱序。由于IPsec具有防重放功能,IPsec入方向上对于防重放窗口之外的报文会进行丢弃,从而导致丢包现象。因此当IPsec与QoS结合使用时,必须保证IPsec分类与QoS分类规则配置保持一致。IPsec的分类规则完全由引用的ACL规则确定,QoS分类规则的配置请参考“网络管理配置指导”中的“QoS配置”。

 

1.3.3  配置IPsec安全提议

IPsec安全提议是IPsec安全策略或者IPsec安全框架的一个组成部分,它用于保存IPsec需要使用的特定安全协议、加密/认证算法等,为IPsec协商SA提供各种安全参数。

表1-2 配置IPsec安全提议

操作

命令

说明

进入系统视图

system-view

-

创建IPsec安全提议,并进入IPsec安全提议视图

ipsec transform-set transform-set-name

必选

缺省情况下,没有任何IPsec安全提议存在

系统中最多可以创建10000个IPsec安全提议

配置IPsec安全提议采用的安全协议

transform { ah | ah-esp | esp }

可选

缺省情况下,采用ESP协议

配置安全算法

配置ESP协议采用的加密算法

esp encryption-algorithm { 3des | aes-cbc-128 | aes-cbc-192 | aes-cbc-256 | des }

三者至少选其一

缺省情况下,未指定安全算法

只有选择了相应的IPsec安全协议后,该安全协议所需的安全算法才可配置。例如,如果使用transform命令选择了esp,那么只有ESP所需的安全算法才可配置,而AH所需的安全算法则不能配置。ESP协议允许对报文同时进行加密和认证,或只加密,或只认证

配置ESP协议采用的认证算法

esp authentication-algorithm md5 | sha1 }

配置AH协议采用的认证算法

ah authentication-algorithm md5 | sha1 }

配置安全协议对IP报文的封装形式

encapsulation-mode { transport | tunnel }

可选

缺省情况下,安全协议采用隧道模式对IP报文进行封装

传输模式必须应用于数据流的源地址和目的地址与安全隧道两端地址相同的情况下

若要配置应用于IPv6路由协议的手工安全策略,则该安全策略引用的安全提议仅支持传输模式的封装模式

 

可对IPsec安全提议进行修改,但对已协商成功的SA,新修改的IPsec安全提议并不起作用,即SA仍然使用原来的IPsec安全提议(除非使用reset ipsec sa命令重置),只有新协商的SA将使用新的IPsec安全提议。

 

1.3.4  配置IPsec安全策略

IPsec安全策略规定了对什么样的数据流采用什么样的安全提议。一条IPsec安全策略由“名字”和“顺序号”共同唯一确定。

IPsec安全策略分为以下几种类型:

·     手工配置方式:需要用户手工配置密钥、SPI等参数,在隧道模式下还需要手工配置安全隧道两个端点的IP地址。

·     IKE协商方式:由IKE自动协商生成各参数。

·     GDOI方式:由GM从KS上获取所在GDOI组的安全策略信息(保护的数据流信息、加密算法、认证算法、封装模式等)。

1. 手工配置IPsec安全策略

(1)     配置准备

手工配置IPsec安全策略时,除完成该安全策略需要引用的访问控制列表及IPsec安全提议的配置之外,为保证SA的协商成功,安全隧道两端的配置必须符合以下要求:

·     IPsec安全策略引用的IPsec安全提议应采用相同的安全协议、安全算法和报文封装形式;

·     当前端点的对端地址与对端的本端地址应保持一致;

·     应分别设置出方向SA和入方向SA的参数,且保证SA的唯一性,即不同SA必须对应不同的SPI;

·     本端和对端SA的SPI及密钥必须是完全匹配的。即,本端的入方向SA的SPI及密钥必须和对端的出方向SA的SPI及密钥相同;本端的出方向SA的SPI及密钥必须和对端的入方向SA的SPI及密钥相同;

·     两端SA使用的密钥应当以相同的方式输入。即,一端以字符串方式输入密钥,另一端必须也以字符串方式输入密钥。而且,任何一端出入方向的SA使用的密钥也应当以相同的方式输入。

对于要应用于IPv6路由协议的IPsec安全策略,无需配置访问控制列表和隧道地址,但是应该符合以下要求:

·     本端出方向SA的SPI及密钥必须和本端入方向SA的SPI及密钥保持一致;

·     同一个范围内的,所有设备上的安全策略所引用的安全提议采用的安全协议、安全算法和报文封装形式要相同,而且所有设备上的SA的SPI及密钥均要保持一致。该范围与协议相关:对于OSPFv3,它是OSPFv3邻居之间或一个OSPFv3区域内;对于RIPng,它是RIPng直连邻居之间或一个RIPng进程内。

(2)     手工配置IPsec安全策略

表1-3 手工配置IPsec安全策略

操作

命令

说明

进入系统视图

system-view

-

用手工方式创建一条IPsec安全策略,并进入IPsec安全策略视图

ipsec policy policy-name seq-number manual

必选

缺省情况下,没有任何IPsec安全策略存在

配置IPsec安全策略引用的访问控制列表

security acl acl-number

若IPsec安全策略要应用于IPv6路由协议,则无需此配置,其它情况必选

缺省情况下,IPsec安全策略没有指定访问控制列表

可支持保护VPN实例间的数据流

一条IPsec安全策略只能引用一条访问控制列表,如果设置IPsec安全策略引用了多于一个访问控制列表,最后引用的那条访问控制列表才有效

配置IPsec安全策略所引用的IPsec安全提议

transform-set transform-set-name

必选

缺省情况下,IPsec安全策略没有引用任何IPsec安全提议

配置隧道的起点与终点

配置安全隧道的本端地址

tunnel local ip-address

若IPsec安全策略要应用于IPv6路由协议,则无需此配置,其它情况必选

缺省情况下,没有配置安全隧道的本端地址和对端地址

通过手工方式建立SA,一条IPsec安全策略只能引用一个安全提议,并且如果已经引用了IPsec安全提议,必须先取消原先的IPsec安全提议才能引用新的IPsec安全提议

配置安全隧道的对端地址

tunnel remote ip-address

配置SA的安全参数索引参数

sa spi { inbound | outbound } { ah | esp } spi-number

必选

配置SA使用的密钥

配置AH协议的认证密钥(以16进制方式输入)

sa authentication-hex { inbound | outbound } ah cipher | simple hex-key

二者必选其一

配置AH协议的认证密钥(以字符串方式输入)

sa string-key { inbound | outbound } ah cipher | simple string-key

配置ESP协议的认证密钥和加密密钥(以字符串方式输入)

sa string-key { inbound | outbound } esp cipher | simple string-key

至少选其一

以字符串方式输入密钥时,系统会自动地同时生成认证算法的密钥和加密算法的密钥

配置ESP协议的认证密钥(以16进制方式输入)

sa authentication-hex { inbound | outbound } esp cipher | simple hex-key

配置ESP协议的加密密钥(以16进制方式输入)

sa encryption-hex { inbound | outbound } esp cipher | simple hex-key

 

如果先后以不同的方式输入了密钥,则最后设定的密钥有效。

 

2. 配置使用IKE协商方式的IPsec安全策略

在采用IKE方式配置IPsec安全策略时,有以下两种方式:

·     直接配置IPsec安全策略,在IPsec安全策略视图中定义需要协商的各参数;

·     引用IPsec安全策略模板创建IPsec安全策略,在IPsec安全策略模板中定义需要协商的各参数。应用了该类安全策略的设备不能发起协商,仅可以响应远端设备的协商请求。由于策略模板中未定义的可选参数由发起方来决定,而响应方会接受发起方的建议,因此这种方式适用于通信对端(例如对端的IP地址)未知的情况下,允许这些对端设备向本端设备主动发起协商。

(1)     配置准备

在配置IKE协商IPsec安全策略之前,需要完成以下配置:

·     配置所引用的访问控制列表和IPsec安全提议。

·     配置IKE对等体。具体配置请参见“VPN配置指导”中的“IKE配置”。

为保证IKE协商成功,安全策略中所有配置的参数必须在本端和对端相匹配。

(2)     配置使用IKE协商方式的安全策略

·     直接配置使用IKE协商方式的IPsec安全策略

表1-4 直接配置使用IKE协商方式的IPsec安全策略

操作

命令

说明

进入系统视图

system-view

-

创建一条IPsec安全策略,并进入IPsec安全策略视图

ipsec policy policy-name seq-number isakmp

必选

缺省情况下,没有IPsec安全策略存在

配置用于描述IPsec安全策略的IPsec连接名

connection-name name

可选

缺省情况下,无IPsec连接名

配置IPsec安全策略引用的访问控制列表

security acl acl-number aggregation ]

必选

缺省情况下,IPsec安全策略没有指定访问控制列表

配置IPsec安全策略所引用的IPsec安全提议

transform-set transform-set-name&<1-6>

必选

缺省情况下,IPsec安全策略没有引用任何提议

通过IKE协商建立SA,一条IPsec安全策略最多可以引用六个IPsec安全提议,IKE协商将在安全隧道的两端搜索能够完全匹配的IPsec安全提议。如果IKE在两端找不到完全匹配的IPsec安全提议,则SA不能建立,需要被保护的报文将被丢弃

在IPsec安全策略中引用IKE对等体

ike-peer peer-name

必选

配置使用此IPsec安全策略发起协商时使用PFS特性

pfs { dh-group1 | dh-group2 | dh-group5 | dh-group14 }

可选

缺省情况下,IPsec安全策略发起协商时没有使用PFS特性

如果本端配置了PFS特性,则发起协商的对端也必须配置PFS特性,而且本端和对端指定的DH组必须一致,否则协商会失败

PFS(Perfect Forward Secrecy,完善的前向安全性)特性请参见“VPN配置指导”中的“IKE配置”

配置SA的生存周期

sa duration time-based seconds | traffic-based kilobytes }

可选

缺省情况下,IPsec安全策略的SA生存周期为当前全局的SA生存周期值

IKE为IPsec协商建立SA时,采用本地设置的和对端提议的生存周期中较小的一个

使能IPsec安全策略

policy enable

可选

缺省情况下,IPsec安全策略处于使能状态

退回系统视图

quit

-

配置全局SA的生存周期

ipsec sa global-duration time-based seconds | traffic-based kilobytes }

可选

缺省情况下,SA基于时间的生存周期为3600秒,基于流量的生存周期为1843200千字节

 

·     引用IPsec安全策略模板配置IKE协商方式的IPsec安全策略

IPsec安全策略模板可配置的参数与IKE方式的IPsec安全策略相同,只是很多参数是可选的。

·     必须配置的参数:IPsec安全提议和IKE对等体,

·     可选配的参数:访问控制列表、PFS特性和生存周期。与直接方式不同的是,用于定义保护对象范围的访问控制列表在这种方式下是可选的,该参数在未配置的情况下,相当于支持最大范围的保护,即接受协商发起端的访问控制列表设置。

表1-5 引用IPsec安全策略模板配置IKE协商方式的IPsec安全策略

操作

命令

说明

进入系统视图

system-view

-

创建一个IPsec安全策略模板,并进入IPsec安全策略模板视图

ipsec policy-template template-name seq-number

必选

缺省情况下,没有任何IPsec安全策略模板存在

配置IPsec安全策略引用的访问控制列表

security acl acl-number

可选

缺省情况下,IPsec安全策略没有指定访问控制列表

配置IPsec安全策略所引用的安全提议

transform-set transform-set-name&<1-6>

必选

缺省情况下,IPsec安全策略没有引用任何提议

通过IKE协商建立SA,一条IPsec安全策略最多可以引用六个IPsec安全提议,IKE协商将在安全隧道的两端搜索能够完全匹配的IPsec安全提议。如果IKE在两端找不到完全匹配的IPsec安全提议,则SA不能建立,需要被保护的报文将被丢弃

在IPsec安全策略中引用IKE对等体

ike-peer peer-name

必选

配置使用此IPsec安全策略发起协商时使用PFS特性

pfs { dh-group1 | dh-group2 | dh-group5 | dh-group14 }

可选

缺省情况下,IPsec安全策略发起协商时没有使用PFS特性

如果本端配置了PFS特性,则发起协商的对端也必须配置PFS特性,而且本端和对端指定的DH组必须一致,否则协商会失败

PFS(Perfect Forward Secrecy,完善的前向安全性)特性请参见“VPN配置指导”中的“IKE配置”

配置SA的生存周期

sa duration { time-based seconds | traffic-based kilobytes }

可选

缺省情况下,IPsec安全策略的SA生存周期为当前全局的SA生存周期值

IKE为IPsec协商建立SA时,采用本地设置的和对端提议的生存周期中较小的一个

使能IPsec安全策略

policy enable

可选

缺省情况下,IPsec安全策略处于使能状态

退回系统视图

quit

-

配置全局SA的生存周期

ipsec sa global-duration { time-based seconds | traffic-based kilobytes }

可选

缺省情况下,SA基于时间的生存周期为3600秒,基于流量的生存周期为1843200千字节

引用IPsec安全策略模板创建一条IPsec安全策略

ipsec policy policy-name seq-number isakmp template template-name

必选

缺省情况下,没有IPsec安全策略存在

 

1.3.5  在接口上应用IPsec安全策略组

IPsec安全策略组是所有具有相同名字、不同顺序号的IPsec安全策略的集合。在同一个IPsec安全策略组中,顺序号越小的IPsec安全策略,优先级越高。

为使定义的SA生效,应在每个要加密的数据流和要解密的数据流所在接口(逻辑的或物理的)上应用一个IPsec安全策略组,以对数据进行保护。当取消IPsec安全策略组在接口上的应用后,此接口便不再具有IPsec的安全保护功能。

当从一个接口发送数据时,将按照从小到大的顺序号查找IPsec安全策略组中每一条安全策略。如果数据匹配了一条IPsec安全策略引用的访问控制列表,则使用这条IPsec安全策略对数据进行处理;如果数据没有匹配IPsec安全策略引用的访问控制列表,则继续查找下一条IPsec安全策略;如果数据与所有IPsec安全策略引用的访问控制列表都不匹配,则直接被发送(IPsec不对数据加以保护)。

IPsec安全策略除了可以应用到以太网口等实际物理接口上之外,还能够应用到Tunnel、Virtual Template等虚接口上。这样就可以根据实际组网要求,在如GRE、L2TP等隧道上应用。

表1-6 在接口上应用IPsec安全策略组

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

应用指定的IPsec安全策略组

ipsec policy policy-name

必选

 

一个接口只能应用一个IPsec安全策略组。通过IKE方式创建的IPsec安全策略可以应用到多个接口上,通过手工创建的IPsec安全策略只能应用到一个接口上。

 

1.3.6  使能加密引擎功能

加密引擎是设备上的一个协处理器,为IPsec的处理提供一个加/解密算法接口,分为两种情况:

·     若加密引擎功能处于使能状态,则由加密引擎进行IPsec处理;

·     若加密引擎功能处于禁止状态或加密引擎异常,并且主体软件备份功能处于使能状态,则由主体软件IPsec模块进行IPsec处理;若主体软件备份功能处于禁止状态,则报文被丢弃。

表1-7 使能加密引擎功能

操作

命令

说明

进入系统视图

system-view

-

使能加密引擎功能

cryptoengine enable

可选

 

1.3.7  配置会话空闲超时时间

数据包首次匹配IPsec策略后创建IPsec会话,并根据匹配结果创建IPsec会话表项,会话表项中记录了报文的五元组(源IP地址、目的IP地址、协议号、源端口、目的端口)和匹配的IPsec隧道。

IPsec会话的删除由IPsec会话的空闲超时时间决定。IPsec会话在超过它的空闲超时时间之后,被自动删除。

属于该会话的后续数据流根据报文的五元组,来查找会话表项。如果找到匹配的会话表项,则根据会话表项中的隧道信息来处理;如果没有找到匹配的会话表项,则按照IPsec原来的处理流程来处理,即从接口下查找策略组、策略,最后查找匹配的隧道来处理。

IPsec流程中增加的会话处理机制,节省了大量的中间匹配过程,提高了IPsec的转发效率。

表1-8 配置会话空闲超时时间

操作

命令

说明

进入系统视图

system-view

-

配置IPsec会话的空闲超时时间

ipsec session idle-time seconds

可选

缺省情况下,IPsec会话的空闲超时时间为300秒

 

1.3.8  使能解封装后IPsec报文的ACL检查功能

在隧道模式下,对于解封装之后的入方向IPsec报文,有可能出现报文的内部IP头不在当前IPsec安全策略配置的ACL保护范围内的情况,如网络中恶意构造的攻击报文头可能不在此范围,所以需要重新检查报文内部IP头是否在ACL保护范围内。使能该功能后可以保证ACL检查不通过的报文被丢弃,从而提高网络安全性。

表1-9 使能解封装后IPsec报文的ACL检查功能

操作

命令

说明

进入系统视图

system-view

-

使能解封装后IPsec报文的ACL检查功能

ipsec decrypt check

可选

缺省情况下,解封装后IPsec报文的ACL检查功能处于使能状态

 

1.3.9  配置IPsec抗重放功能

通常,重放报文是指已经处理过的报文。IPsec通过滑动窗口(抗重放窗口)机制检测重放报文。AH和ESP协议报文中带有序列号,如果收到报文的序列号与已经解封装过的报文序列号相同,或报文的序列号出现得较早,即已经超过了抗重放窗口的范围,则认为该报文为重放报文。

由于对重放报文的解封装无实际作用,并且解封装过程涉及密码学运算,会消耗设备大量的资源,导致业务可用性下降,实际上构成了拒绝服务攻击。通过使能IPsec抗重放检测功能,将检测到的重放报文在解封装处理之前丢弃,可以降低设备资源的消耗。

另外,在某些特定环境下,业务数据报文的序列号顺序可能与正常的顺序差别较大,虽然并非有意的重放攻击,但会被抗重放检测认为是重放报文,导致业务数据报文被丢弃,影响业务的正常运行。因此,这种情况下就可以通过关闭IPsec抗重放检测功能来避免业务数据报文的错误丢弃,也可以通过适当地增大抗重放窗口的宽度,来适应业务正常运行的需要。

表1-10 配置IPsec抗重放功能

操作

命令

说明

进入系统视图

system-view

-

使能IPsec抗重放检测功能

ipsec anti-replay check

可选

缺省情况下,IPsec抗重放检测功能处于使能状态

配置IPsec抗重放窗口宽度

ipsec anti-replay window width

可选

缺省情况下,IPsec抗重放窗口宽度为32

 

提示

·     IPsec抗重放检测功能缺省是使能的,是否关闭该功能请根据实际需求慎重使用。

·     使用较大的抗重放窗口宽度会引起系统开销增大,导致系统性能下降,与抗重放检测用于降低系统在接收重放报文时的开销的初衷不符,因此建议在能够满足业务运行需要的情况下,使用较小的抗重放窗口宽度。

 

按照IPsec协议,只有IKE协商的IPsec SA才能够支持抗重放检测,手工方式生成的IPsec SA不支持抗重放检测。因此该功能使能与否与对手工方式生成的IPsec SA没有影响。

 

1.3.10  配置共享源接口安全策略组

为了提高网络的可靠性,通常核心设备到ISP(Internet Service Provider,互联网服务提供商)都会有两条出口链路,它们互为备份或者负载分担的关系。如果两个出接口上都配置了IPsec,并采用相同的加密策略,那么就需要IPsec SA能够平滑切换。

当在不同业务接口应用IPsec安全策略组时,各个接口将分别协商生成IPsec SA,在主备链路切换时,接口会出现up/down状态变化,需要重新进行IKE协商,而导致数据流的暂时中断。

通过配置IPsec安全策略组为共享源接口IPsec安全策略组,可以实现在主备链路切换时业务不中断。应用IPsec业务的多个物理接口共同使用一个共享源接口动态协商的IPsec SA,当这些物理接口对应的链路切换时,如果源接口的状态并没有变化,就不会删除IPsec SA,也不需要重新触发IKE协商,直接使用相同的IPsec SA继续保护业务流量。目前,共享源接口只能是Loopback接口。

表1-11 配置安全策略组为共享源接口IPsec安全策略组

操作

命令

说明

进入系统视图

system-view

-

配置IPsec安全策略组为共享源接口IPsec安全策略组

ipsec policy policy-name local-address loopback number

必选

缺省情况下,IPsec安全策略组不是共享源接口IPsec安全策略组

 

·     共享源接口IPsec安全策略组必须和源接口一一对应。如果一个共享源接口IPsec安全策略组同时绑定多个源接口,或者多个共享源接口IPsec安全策略组同时绑定一个源接口,配置均不会成功。

·     删除与共享源接口IPsec安全策略组绑定的Loopback接口时,将会取消共享源接口IPsec安全策略组的配置,即该共享源接口IPsec安全策略组恢复为普通IPsec安全策略组。

·     在配置了共享源接口IPsec安全策略组,但未配置IKE-peer视图下的local-address的情况下,IKE将使用共享源接口地址作为IPsec隧道的安全网关地址进行协商;如果同时配置共享源接口IPsec安全策略组和IKE-peer视图下local-address,将选用IKE-peer视图下配置的地址作为IPsec隧道的安全网关地址进行协商。

 

1.3.11  配置报文信息预提取功能

当在接口上同时应用了Ipsec安全策略与QoS策略时,缺省情况下,QoS使用被封装报文的外层IP头信息来对报文进行分类。但如果希望QoS基于被封装报文的原始IP头信息对报文进行分类,则需要配置报文信息预提取功能来实现。

关于QoS策略及QoS分类的相关介绍请参见“网络管理配置指导”中的“QoS配置”。

表1-12 配置报文信息预提取功能

操作

命令

说明

进入系统视图

system-view

-

进入安全策略视图/安全策略模板视图

ipsec policy policy-name seq-number [ isakmp | manual ]

二者必选其一

ipsec policy-template template-name seq-number

配置报文信息预提取功能

qos pre-classify

必选

缺省情况下,报文信息预提取功能处于关闭状态

 

1.3.12  配置IPsec无效SPI恢复功能

当IPsec隧道一端的安全网关出现问题(例如安全网关重启)导致本端IPsec SA丢失时,会造成IPsec流量黑洞现象:一端(接收端)的IPsec SA已经完全丢失,而另一端(发送端)还持有对应的IPsec SA且不断地向对端发送报文,当接收端收到发送端使用此IPsec SA封装的IPsec报文时,就会因为找不到对应的SA而持续丢弃报文,形成流量黑洞。该现象造成IPsec通信链路长时间得不到恢复(只有等到发送端旧的IPsec SA生命周期超时,并重建IPsec SA后,两端的IPsec流量才能得以恢复),因此需要采取有效的IPsec SA恢复手段来快速恢复中断的IPsec通信链路。

SA由SPI唯一标识,接收方根据IPsec报文中的SPI在SA数据库中查找对应的SA,若接收方找不到处理该报文的SA,则认为此报文的SPI无效。使能了IPsec无效SPI恢复功能的接收端收到无效SPI的IPsec报文后,就触发本端IKE向对端发送INVALID SPI NOTIFY消息。发送端IKE接收到此通知消息后,就会立即删除此无效SPI对应的IPsec SA。之后,当发送端需要继续向接收端发送报文时,就会触发两端重建IPsec SA,使得中断的IPsec通信链路得以恢复。

由于IKE向对方发送INVALID SPI NOTIFY消息有可能会给设备带来发生DoS(Denial of Sevice)攻击的风险,因此缺省情况下的IPsec无效SPI恢复功能是关闭的,接收端将默认丢弃无效SPI的IPsec报文。

表1-13 配置IPsec无效SPI恢复功能

操作

命令

说明

进入系统视图

system-view

-

使能IPsec无效SPI恢复功能

ipsec invalid-spi-recovery enable

可选

缺省情况下,IPsec无效SPI恢复功能处于关闭状态

 

1.3.13  配置IPsec反向路由注入功能

RRI只需要在企业总部网关设备上的IPsec策略视图或者IPsec安全策略模板视图下配置。

RRI有静态和动态两种工作机制,配置了RRI的设备采用哪种工作机制,由reverse-route命令中是否指定了参数static决定。

·     静态工作机制(指定static参数):RRI基于IPsec安全策略引用的ACL中各规则的目的配置信息来静态生成静态路由(对ACL规则中的不同目的信息会生成不同的路由)。该静态路由的下一跳地址可以通过reverse-route命令中的参数remote-peer ip-address来指定,不指定该参数的情况下为配置的隧道对端的IP地址。当IPsec策略中的RRI功能被关闭,或者策略中引用的ACL、对端安全网关的IP地址配置被删除时,该IPsec策略下由RRI生成的所有静态路由表项会被删除。当企业分支网络结构基本不变时,可以配置此类型的RRI添加到达分支的静态路由。

·     动态工作机制(未指定static参数):RRI基于与分支通信的IPsec SA的建立而动态生成静态路由。该静态路由的目的地址为本端学习到的被保护的分支网络地址,下一跳地址可通过reverse-route命令中的参数remote-peer ip-address来指定,不指定该参数的情况下为本端在IPsec SA协商过程中学习到的隧道的对端地址。当IPsec SA被删除时,相应的静态路由表项也会同时被删除。当企业分支结构容易发生变化时,如分支用户使用拨号方式动态获取IP地址接入Internet,则可以配置此类型的RRI动态添加到达分支的静态路由,可减少因分支变动而对总部网关配置的频繁调整。

对于RRI生成的静态路由,可以为其配置优先级,从而更灵活地应用路由管理策略。例如:当设备上还有其它方式配置的到达相同目的地的路由时,如果为它们指定相同优先级,则可实现负载分担,如果指定不同优先级,则可实现路由备份。同时,还可以通过修改静态路由的Tag属性值,使得设备能够在路由策略中根据Tag值对这些RRI生成的静态路由进行灵活的控制。

表1-14 配置IPsec反向路由注入功能

操作

命令

说明

进入系统视图

system-view

-

进入安全策略视图/安全策略模板视图

ipsec policy policy-name seq-number [ isakmp | manual ]

二者必选其一

ipsec policy-template template-name seq-number

开启IPsec反向路由注入功能

reverse-route remote-peer ip-address [ gateway | static ] | static ]

必选

缺省情况下,IPsec反向路由注入功能处于关闭状态

配置IPsec反向路由注入生成的静态路由的优先级

reverse-route preference preference-value

可选

缺省情况下,IPsec反向路由注入功能生成的静态路由的优先级为60

配置IPsec反向路由注入生成的静态路由的Tag值

reverse-route tag tag-value

可选

缺省情况下,IPsec反向路由注入功能生成的静态路由的Tag值为0

 

·     IPsec反向路由注入功能在隧道模式和传输模式下都支持。

·     若对IPsec反向路由注入静态路由属性进行修改,则在静态工作机制下的RRI会根据新的路由属性重新生成静态路由,而在动态工作机制下的RRI不会修改已生成的静态路由的路由属性,修改后的静态路由属性仅对新增的静态路由有效。

 

1.3.14  使能接口下的NAT业务将报文透传给IPSec业务处理

缺省状态下,如果接口下同时配置了NAT和IPSec,则接口发送的报文,会依次经过NAT业务和IPSec业务的处理。

在某些特殊的应用环境下,用户要求需要被IPSec业务处理的报文,不经过NAT业务处理,即不做NAT地址转换,而直接由IPSec业务进行处理。对于这种情况,可以通过使能本命令,允许接口下的NAT业务将报文透传给IPSec业务处理,不进行NAT转换。

表1-15 使能接口下的NAT业务将报文透传给IPSec业务处理

操作

命令

说明

进入系统视图

system-view

-

使能接口下的NAT业务将报文透传给IPSec业务处理

ipsec no-nat-process enable

可选

缺省状态下,如果接口下同时配置了NAT和IPSec,则接口发送的报文,会依次经过NAT业务和IPSec业务的处理

 

1.3.15  使能加密前/加密后分片功能

加密前分片功能是指,如果待封装报文封装后的大小超过接口MTU值,则对报文先分片再封装。

加密后分片功能是指,对待封装报文先进行封装,封装后的报文尺寸如果超过接口MTU值,则再进行分片。

表1-16 使能加密前/加密后分片功能

操作

命令

说明

进入系统视图

system-view

-

使能加密前分片功能

ipsec fragmentation before-encryption enable

二者可选其一

缺省情况下,加密后分片功能处于开启状态

使能加密后分片功能

undo ipsec fragmentation before-encryption enable

 

1.4  基于IPsec虚拟隧道接口建立IPsec安全隧道

1.4.1  IPsec虚拟隧道接口配置任务简介

基于IPsec虚拟隧道接口建立IPsec安全隧道的基本配置思路如下:

(1)     通过配置IPsec安全提议,指定安全协议、认证算法和加密算法、封装模式等;

(2)     通过配置IPsec安全框架,选择保护数据流时使用的安全提议,设置IKE对等体的参数(即IKE协商的模式、所需要的密钥等)和SA的生存周期等;

(3)     通过配置IPsec虚拟隧道接口,并在IPsec虚拟隧道接口视图下应用IPsec安全框架使得IPsec虚拟隧道的配置生效。

与使用IPsec安全策略建立IPsec隧道相比,定义IPsec安全框架时无须指定需要保护的数据流的范围,即IPsec安全框架默认保护流的范围是所有流。

 

表1-17 IPsec虚拟隧道接口配置任务简介

配置任务

说明

详细配置

配置IPsec安全提议

必选

IPsec虚拟隧道接口引用的IPsec安全提议只能支持隧道模式

1.3.3 

配置IPsec安全框架

必选

1.4.2 

配置IPsec虚拟隧道接口

必选

1.4.3 

在IPsec虚拟隧道接口上配置QoS报文信息预提取功能

可选

1.4.4 

在IPsec虚拟隧道接口上配置QoS策略

可选

1.4.5 

使能加密引擎功能

可选

1.3.6 

配置会话空闲超时时间

可选

1.3.7 

使能解封装后IPsec报文的ACL检查功能

可选

1.3.8 

配置IPsec抗重放功能

可选

1.3.9 

 

1.4.2  配置IPsec安全框架

由前文可知,IPsec安全策略由“名字”和“顺序号”共同唯一确定,相同名字的策略为一个IPsec策略组。每条策略可以通过ACL配置来保护不同的数据流。将IPsec安全策略组应用到接口上后,当有用户流量经该接口转发时,IPsec会根据各策略来筛选感兴趣的流来进行保护,这样在一个接口下会生成多条IPsec隧道。

一个IPsec安全框架相当于一个IPsec安全策略,与IPsec安全策略不同的是,IPsec安全框架由“名字”唯一确定,且不支持配置ACL。IPsec安全框架定义了对数据流进行IPsec保护所使用的IPsec安全提议,以及用于自动协商SA所需要的IKE协商参数。在IPsec虚拟隧道接口下应用IPsec安全框架后只会生成一条IPsec隧道,并对所有路由到该隧道接口的数据流进行IPsec保护。

目前,IPsec安全框架只能应用于DVPN虚拟隧道接口和IPsec虚拟隧道接口下,根据IPsec安全框架协商出的SA将会对所有路由到隧道接口下的IP流量进行IPsec保护。

在配置IPsec安全框架之前,需要完成以下任务:

·     配置需要引用的IPsec安全提议。具体配置请参见“1.3.3  配置IPsec安全提议”。

·     配置IKE对等体。具体配置请参见“VPN配置指导”中的“IKE配置”。

为保证IKE协商成功,IPsec安全框架中所有配置的参数必须在本端和对端相匹配。

·     根据IPsec安全框架进行IKE协商时,选用的本端地址是通过IPsec虚拟隧道接口的源地址来指定的,IPsec安全框架所引用的IKE对等体中的local-address配置不生效。

·     根据IPsec安全框架进行IKE协商时,使用的对端地址是通过IPsec虚拟隧道接口的目的地址指定的,IPsec安全框架所引用的IKE对等体中的remote-address配置不生效。当IPsec虚拟隧道接口的目的地址未配置的时候,本端不能作为发起方主动发起IKE协商,只能被动接受对端发起的协商。

 

表1-18 配置IPsec安全框架

操作

命令

说明

进入系统视图

system-view

-

创建一个IPsec安全框架,并进入IPsec安全框架视图

ipsec profile profile-name

必选

缺省情况下,没有IPsec安全框架存在

配置IPsec安全框架引用的IPsec安全提议

transform-set transform-name&<1-6>

必选

缺省情况下,IPsec安全框架没有引用任何IPsec安全提议

在IPsec安全框架中引用IKE对等体

ike-peer peer-name

必选

配置使用此IPsec安全框架发起协商时使用PFS特性

pfs { dh-group1 | dh-group2 | dh-group5 | dh-group14 }

可选

缺省情况下,IPsec安全框架发起协商时没有使用PFS特性

PFS(Perfect Forward Secrecy,完善的前向安全性)特性请参见“VPN配置指导”中的“IKE配置”

配置SA的生存周期

sa duration { time-based seconds | traffic-based kilobytes }

可选

缺省情况下,IPsec安全框架的SA生存周期为当前全局的SA生存周期值

退回系统视图

quit

-

配置全局SA的生存周期

ipsec sa global-duration time-based seconds | traffic-based kilobytes }

可选

缺省情况下,SA基于时间的生存周期为3600秒,基于流量的生存周期为1843200千字节

 

1.4.3  配置IPsec虚拟隧道接口

IPsec虚拟隧道接口就是采用IPsec协议对报文进行封装的隧道接口。

使用IPsec虚拟隧道接口保护数据流的基本配置思路如下:

(1)     创建一个Tunnel接口,并在Tunnel接口视图下指定当前隧道的封装模式为IPsec虚拟隧道接口;

(2)     配置IPsec虚拟隧道接口的源地址,此地址将作为IKE协商时本端身份的标识;

(3)     若希望本端IPsec虚拟隧道接口主动发起IKE协商,则需要配置Tunnel接口的目的地址;若只希望被动接纳对端发起的IKE协商,则可以不配置Tunnel接口目的地址。

(4)     在IPsec虚拟隧道接口上应用安全框架,使其具有IPsec的安全保护功能。当取消应用在IPsec虚拟隧道接口上的安全框架后,IPsec虚拟隧道接口将不再具有IPsec的安全保护功能。

仅当IPsec虚拟隧道接口链路状态up时,才能表示该接口具备了IPsec的安全保护功能。IPsec虚拟隧道接口链路状态up的条件包括:

·     Tunnel接口源地址为设备上有效的本地地址;

·     Tunnel接口上应用了配置正确的IPsec安全框架;

·     本端安全网关已经与对端安全网关协商生成了有效的SA(执行display ike sa能看到第一阶段IKE SA和第二阶段IPsec SA已经存在)。

表1-19 配置IPsec虚拟隧道接口

操作

命令

说明

进入系统视图

system-view

-

创建一个Tunnel接口,并进入Tunnel接口视图

interface tunnel number

必选

缺省情况下,设备上无隧道接口

配置Tunnel接口的IPv4私网地址

ip address ip-address { mask | mask-length } [ sub ]

必选

缺省情况下,Tunnel接口上没有设置IPv4私网地址

配置隧道封装模式为IPsec虚拟隧道

tunnel-protocol ipsec ipv4

必选

配置Tunnel接口的源地址或源接口,即发送IPsec报文的实际物理接口地址

source { ip-address | interface-type interface-number }

必选

缺省情况下,Tunnel接口上未配置源地址或源接口

若采用配置源接口的形式,则Tunnel接口的源地址为源接口的主IP地址

配置Tunnel接口的目的地址

destination ip-address

可选

缺省情况下,Tunnel接口上未配置目的地址

对于IKE协商的发起方,目的地址必须配置;对于IKE协商的响应方,目的地址可选择配置

在Tunnel接口上应用安全框架

ipsec profile profile-name

必选

应用的安全框架必须是已经存在的,且未应用在DVPN隧道接口上

 

·     interface tunneltunnel-protocolsourcedestination命令的详细介绍请参见“VPN命令参考”中的“隧道命令”。

·     一个Tunnel接口上只能应用一个IPsec安全框架。

·     一个IPsec安全框架可应用在多个IPsec虚拟隧道接口上,但同时只能在一个IPsec虚拟隧道接口上生效,因此通常建议一个IPsec安全框架仅应用在一个IPsec虚拟隧道接口上。

 

1.4.4  IPsec虚拟隧道接口上配置报文信息预提取功能

由于IPsec的隧道封装将会隐藏原始IP数据流的五元组信息(源IP地址、目的IP地址、源端口、目的端口、协议类型),为了能够利用原始数据流的信息对加封装后的IPsec报文进行QoS处理,需要在隧道加封装之前提取出原始IP数据流的五元组信息。

通过在IPsec虚拟隧道接口上配置报文信息预提取功能,可以满足以上需求。IPsec虚拟隧道接口上预先提取出的报文信息可用来作为物理出接口上实施QoS策略(例如,进行流分类、设置IP报文的服务优先级、物理接口限速以及拥塞处理等)的依据。

需要注意的是,仅在IPsec虚拟隧道接口上单独使用报文信息预提取功能并无实际意义,必须与物理出接口上应用QoS策略一起组合使用才有效果,即需要满足以下两个配置才能真正实现对IPsec报文的QoS处理:

·     IPsec虚拟隧道接口配置报文信息预提取功能;

·     IPsec虚拟隧道接口对应的物理接口上应用QoS策略。关于接口上应用QoS策略的具体配置请参考“ACL和QoS配置指导”中的“QoS配置方式”。

表1-20 IPsec虚拟隧道接口上配置报文信息预提取功能

操作

命令

说明

进入系统视图

system-view

-

进入Tunnel接口视图

interface tunnel number

-

配置报文信息预提取功能

qos pre-classify

必选

缺省情况下,未配置报文信息预提取功能

该命令的详细介绍请参考“ACL和QoS命令参考”中的“QoS拥塞管理”

 

当应用在物理出接口上的QoS策略提供拥塞服务时,这种配合实施的QoS方案可能会导致IPsec报文乱序。其可能的影响是,未能以IPsec报文头中序列号要求的顺序到达对端IPsec网关的IPsec报文,会被对端IPsec网关进行的抗重放检测当作重放报文丢弃。关于IPsec抗重放功能的介绍及配置请参见“1.3.9  配置IPsec抗重放功能”。

 

1.4.5  IPsec虚拟隧道接口上应用QoS策略

“IPsec虚拟隧道接口上应用QoS策略”方案与“IPsec虚拟隧道接口上配置报文信息预提取+物理接口上应用QoS策略”方案的实施效果相同,但前者更为简洁有效。

在IPsec虚拟隧道接口上应用QoS策略后,QoS策略将在IPsec隧道加封装之前的原始报文上实施,并且内外层IP报文头的服务优先级设置相同。而且,由于QoS的拥塞服务是在IPsec隧道封装之前的报文上生效,因此加封装后的报文顺序与原始报文经过QoS拥塞处理后的顺序无关,会按照正常的顺序到达对端,也就不会因为QoS拥塞处理而产生乱序。

表1-21 在IPsec虚拟隧道接口上配置QoS策略

操作

命令

说明

进入系统视图

system-view

-

进入Tunnel接口视图

interface tunnel number

-

在Tunnel上应用QoS策略

qos apply policy policy-name { inbound | outbound }

必选

该命令的详细介绍请参考“ACL和QoS命令参考”中的“QoS配置方式”

 

1.5  配置IPsec保护IPv6路由协议

使用IPsec安全策略建立IPsec安全隧道保护IPv6路由协议的基本配置思路如下:

(1)     配置IPsec安全提议:指定安全协议、认证算法和加密算法、封装模式等;

(2)     配置手工方式的IPsec安全策略:指定SA的SPI和密钥;

(3)     在路由协议上应用IPsec安全策略。

表1-22 IPsec虚拟隧道接口配置任务简介

配置任务

说明

详细配置

配置IPsec安全提议

必选

1.3.3 

配置手工方式的IPsec安全策略

必选

无需配置访问控制列表和隧道地址

1.3.4  1.

在路由协议上应用IPsec安全策略

必选

参考“网络管理配置指导”中的 “IPv6路由配置”

 

1.6  IPsec显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后IPsec的运行情况,通过查看显示信息认证配置的效果。

在用户视图下执行reset命令可以清除IPsec统计信息。

表1-23 IPsec显示和维护

操作

命令

显示安全策略的信息

display ipsec policy [ brief | name policy-name [ seq-number ] ] [ | { begin | exclude | include } regular-expression ]

显示安全策略模板的信息

display ipsec policy-template [ brief | name template-name [ seq-number ] ] [ | { begin | exclude | include } regular-expression ]

显示安全框架的配置信息

display ipsec profile [ name profile-name ] [ | { begin | exclude | include } regular-expression ]

显示安全提议的信息

display ipsec transform-set [ transform-set-name ] [ | { begin | exclude | include } regular-expression ]

显示SA的相关信息

display ipsec sa [ brief | policy policy-name [ seq-number ] | remote ip-address ] [ | { begin | exclude | include } regular-expression ]

显示IPsec会话的信息

display ipsec session [ tunnel-id integer ] [ | { begin | exclude | include } regular-expression ]

显示IPsec处理报文的统计信息

display ipsec statistics [ tunnel-id integer ] [ | { begin | exclude | include } regular-expression ]

显示IPsec隧道的信息

display ipsec tunnel | { begin | exclude | include } regular-expression ]

清除已经建立的SA

reset ipsec sa [ parameters dest-address protocol spi | policy policy-name [ seq-number ] | remote ip-address ]

清除设备上IPsec隧道的会话

reset ipsec session [ tunnel-id integer ]

清除IPsec的报文统计信息

reset ipsec statistics

 

1.7  IPsec典型配置举例

1.7.1  采用手工方式建立IPsec安全隧道

1. 组网需求

·     在Firewall A和Firewall B之间建立一个安全隧道,对Host A所在的子网(10.1.1.0/24)与Host B所在的子网(10.1.2.0/24)之间的数据流进行安全保护。

·     安全协议采用ESP协议,加密算法采用DES,认证算法采用SHA1-HMAC-96。

2. 组网图

图1-7 IPsec配置组网图

 

3. 配置步骤

(1)     配置Firewall A

# 配置一个访问控制列表,定义由子网10.1.1.0/24去子网10.1.2.0/24的数据流。

<FirewallA> system-view

[FirewallA] acl number 3101

[FirewallA-acl-adv-3101] rule permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255

[FirewallA-acl-adv-3101] quit

# 配置到Host B的静态路由。

[FirewallA] ip route-static 10.1.2.0 255.255.255.0 ethernet 0/2

# 创建名为tran1的IPsec安全提议。

[FirewallA] ipsec transform-set tran1

# 报文封装形式采用隧道模式。

[FirewallA-ipsec-transform-set-tran1] encapsulation-mode tunnel

# 安全协议采用ESP协议。

[FirewallA-ipsec-transform-set-tran1] transform esp

# 选择算法。

[FirewallA-ipsec-transform-set-tran1] esp encryption-algorithm des

[FirewallA-ipsec-transform-set-tran1] esp authentication-algorithm sha1

[FirewallA-ipsec-transform-set-tran1] quit

创建一条IPsec安全策略,协商方式为manual

[FirewallA] ipsec policy map1 10 manual

引用访问控制列表。

[FirewallA-ipsec-policy-manual-map1-10] security acl 3101

# 引用IPsec安全提议。

[FirewallA-ipsec-policy-manual-map1-10] transform-set tran1

# 配置对端地址。

[FirewallA-ipsec-policy-manual-map1-10] tunnel remote 2.2.3.1

# 配置本端地址。

[FirewallA-ipsec-policy-manual-map1-10] tunnel local 2.2.2.1

# 配置SPI。

[FirewallA-ipsec-policy-manual-map1-10] sa spi outbound esp 12345

[FirewallA-ipsec-policy-manual-map1-10] sa spi inbound esp 54321

# 配置密钥。

[FirewallA-ipsec-policy-manual-map1-10] sa string-key outbound esp abcdefg

[FirewallA-ipsec-policy-manual-map1-10] sa string-key inbound esp gfedcba

[FirewallA-ipsec-policy-manual-map1-10] quit

# 配置接口的IP地址。

[FirewallA] interface ethernet 0/2

[FirewallA-Ethernet0/2] ip address 2.2.2.1 255.255.255.0

# 在接口上应用IPsec安全策略组。

[FirewallA-Ethernet0/2] ipsec policy map1

(2)     配置Firewall B

# 配置一个访问控制列表,定义由子网10.1.2.0/24去子网10.1.1.0/24的数据流。

<FirewallB> system-view

[FirewallB] acl number 3101

[FirewallB-acl-adv-3101] rule permit ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255

[FirewallB-acl-adv-3101] quit

# 配置到HostA的静态路由。

[FirewallB] ip route-static 10.1.1.0 255.255.255.0 ethernet 0/2

# 创建名为tran1的IPsec安全提议。

[FirewallB] ipsec transform-set tran1

# 报文封装形式采用隧道模式。

[FirewallB-ipsec-transform-set-tran1] encapsulation-mode tunnel

# 安全协议采用ESP协议。

[FirewallB-ipsec-transform-set-tran1] transform esp

# 选择算法。

[FirewallB-ipsec-transform-set-tran1] esp encryption-algorithm des

[FirewallB-ipsec-transform-set-tran1] esp authentication-algorithm sha1

[FirewallB-ipsec-transform-set-tran1] quit

# 创建一条IPsec安全策略,协商方式为manual。

[FirewallB] ipsec policy use1 10 manual

# 引用访问控制列表。

[FirewallB-ipsec-policy-manual-use1-10] security acl 3101

# 引用IPsec安全提议。

[FirewallB-ipsec-policy-manual-use1-10] transform-set tran1

# 配置对端地址。

[FirewallB-ipsec-policy-manual-use1-10] tunnel remote 2.2.2.1

# 配置本端地址。

[FirewallB-ipsec-policy-manual-use1-10] tunnel local 2.2.3.1

# 配置SPI。

[FirewallB-ipsec-policy-manual-use1-10] sa spi outbound esp 54321

[FirewallB-ipsec-policy-manual-use1-10] sa spi inbound esp 12345

# 配置密钥。

[FirewallB-ipsec-policy-manual-use1-10] sa string-key outbound esp gfedcba

[FirewallB-ipsec-policy-manual-use1-10] sa string-key inbound esp abcdefg

[FirewallB-ipsec-policy-manual-use1-10] quit

# 配置接口的IP地址。

[FirewallB] interface ethernet 0/2

[FirewallB-Ethernet0/2] ip address 2.2.3.1 255.255.255.0

# 在接口上应用IPsec安全策略组。

[FirewallB-Ethernet0/2] ipsec policy use1

4. 验证配置结果

以上配置完成后,Firewall A和Firewall B之间的安全隧道就建立好了,子网10.1.1.0/24与子网10.1.2.0/24之间的数据流将被加密传输。

1.7.2  采用IKE方式建立IPsec安全隧道

1. 组网需求

·     如图1-7所示,在Firewall A和Firewall B之间建立一个安全隧道,对Host A所在的子网(10.1.1.0/24)与Host B所在的子网(10.1.2.0/24)之间的数据流进行安全保护。

·     安全协议采用ESP协议,加密算法采用DES,认证算法采用SHA1-HMAC-96。

2. 组网图

图1-7

3. 配置步骤

(1)     配置Firewall A

# 配置一个访问控制列表,定义由子网10.1.1.0/24去子网10.1.2.0/24的数据流。

<FirewallA> system-view

[FirewallA] acl number 3101

[FirewallA-acl-adv-3101] rule permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255

[FirewallA-acl-adv-3101] quit

# 配置到Host B的静态路由。

[FirewallA] ip route-static 10.1.2.0 255.255.255.0 ethernet 0/2

# 创建名为tran1的IPsec安全提议。

[FirewallA] ipsec transform-set tran1

# 报文封装形式采用隧道模式。

[FirewallA-ipsec-transform-set-tran1] encapsulation-mode tunnel

# 安全协议采用ESP协议。

[FirewallA-ipsec-transform-set-tran1] transform esp

# 选择算法。

[FirewallA-ipsec-transform-set-tran1] esp encryption-algorithm des

[FirewallA-ipsec-transform-set-tran1] esp authentication-algorithm sha1

[FirewallA-ipsec-transform-set-tran1] quit

# 配置IKE对等体。

[FirewallA] ike peer peer

[FirewallA-ike-peer-peer] pre-shared-key abcde

[FirewallA-ike-peer-peer] remote-address 2.2.3.1

[FirewallA-ike-peer-peer] quit

# 创建一条IPsec安全策略,协商方式为isakmp。

[FirewallA] ipsec policy map1 10 isakmp

# 引用IPsec安全提议。

[FirewallA-ipsec-policy-isakmp-map1-10] transform-set tran1

# 引用访问控制列表。

[FirewallA-ipsec-policy-isakmp-map1-10] security acl 3101

# 引用IKE对等体。

[FirewallA-ipsec-policy-isakmp-map1-10] ike-peer peer

[FirewallA-ipsec-policy-isakmp-map1-10] quit

# 配置接口的IP地址。

[FirewallA] interface ethernet 0/2

[FirewallA-Ethernet0/2] ip address 2.2.2.1 255.255.255.0

# 在接口上应用IPsec安全策略组。

[FirewallA-Ethernet0/2 ipsec policy map1

(2)     配置Firewall B

# 配置一个访问控制列表,定义由子网10.1.2.0/24去子网10.1.1.0/24的数据流。

<FirewallB> system-view

[FirewallB] acl number 3101

[FirewallB-acl-adv-3101] rule permit ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255

[FirewallB-acl-adv-3101] quit

# 配置到Host A的静态路由。

[FirewallB] ip route-static 10.1.1.0 255.255.255.0 ethernet 0/2

# 创建名为tran1的IPsec安全提议。

[FirewallB] ipsec transform-set tran1

# 报文封装形式采用隧道模式。

[FirewallB-ipsec-transform-set-tran1] encapsulation-mode tunnel

# 安全协议采用ESP协议。

[FirewallB-ipsec- transform-set -tran1] transform esp

# 选择算法。

[FirewallB-ipsec-transform-set-tran1] esp encryption-algorithm des

[FirewallB-ipsec-transform-set-tran1] esp authentication-algorithm sha1

[FirewallB-ipsec-transform-set-tran1] quit

# 配置IKE对等体。

[FirewallB] ike peer peer

[FirewallB-ike-peer-peer] pre-shared-key abcde

[FirewallB-ike-peer-peer] remote-address 2.2.2.1

[FirewallB-ike-peer-peer] quit

# 创建一条IPsec安全策略,协商方式为isakmp。

[FirewallB] ipsec policy use1 10 isakmp

# 引用访问控制列表。

[FirewallB-ipsec-policy-isakmp-use1-10] security acl 3101

# 引用IPsec安全提议。

[FirewallB-ipsec-policy-isakmp-use1-10] transform-set tran1

# 引用IKE对等体。

[FirewallB-ipsec-policy-isakmp-use1-10] ike-peer peer

[FirewallB-ipsec-policy-isakmp-use1-10] quit

# 配置接口的IP地址。

[FirewallB] interface ethernet 0/2

[FirewallB-Ethernet0/2] ip address 2.2.3.1 255.255.255.0

# 在接口上应用IPsec安全策略组。

[FirewallB-Ethernet0/2] ipsec policy use1

4. 验证配置结果

以上配置完成后,Firewall A和Firewall B之间如果有子网10.1.1.0/24与子网10.1.2.0/24之间的报文通过,将触发IKE进行协商建立SA。IKE协商成功并创建了SA后,子网10.1.1.0/24与子网10.1.2.0/24之间的数据流将被加密传输。

1.7.3  配置IPsec接口备份

1. 组网需求

·     在Firewall A和Firewall B之间建立两条互为备份的IPsec隧道,对Host A所在的子网(10.1.1.0/24)与Host B所在的子网(10.1.2.0/24)之间的数据流进行安全保护。

·     使用IKE自动协商方式建立SA,安全协议采用ESP协议,加密算法采用DES,认证算法采用SHA1-HMAC-96。

·     配置共享源接口安全策略组,实现数据流量在不同接口间平滑切换。

2. 组网图

图1-8 IPsec接口备份配置组网图

 

3. 配置步骤

(1)     配置Firewall A

# 配置一个访问列表,定义由子网10.1.1.0/24去子网10.1.2.0/24的数据流。

<FirewallA> system-view

[FirewallA] acl number 3101

[FirewallA-acl-adv-3101] rule permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255

[FirewallA-acl-adv-3101] quit

# 配置IPsec安全提议tran1。

[FirewallA] ipsec transform-set tran1

[FirewallA-ipsec-transform-set-tran1] encapsulation-mode tunnel

[FirewallA-ipsec-transform-set-tran1] transform esp

[FirewallA-ipsec-transform-set-tran1] esp encryption-algorithm des

[FirewallA-ipsec-transform-set-tran1] esp authentication-algorithm sha1

[FirewallA-ipsec-transform-set-tran1] quit

配置IKE对等体peer

[FirewallA] ike peer peer

[FirewallA-ike-peer-peer] pre-shared-key abcde

[FirewallA-ike-peer-peer] remote-address 3.3.3.3

[FirewallA-ike-peer-peer] quit

配置IPsec安全策略map1,协商方式为isakmp

[FirewallA] ipsec policy map1 10 isakmp

[FirewallA-ipsec-policy-isakmp-map1-10] transform-set tran1

[FirewallA-ipsec-policy-isakmp-map1-10] security acl 3101

[FirewallA-ipsec-policy-isakmp-map1-10] ike-peer peer

[FirewallA-ipsec-policy-isakmp-map1-10] quit

# 配置Loopback接口。

[FirewallA] interface loopback 0

[FirewallA-LoopBack0] ip address 1.1.1.1 32

[FirewallA-LoopBack0] quit

# 配置IPsec安全策略组map1为共享源接口IPsec安全策略组。

[FirewallA] ipsec policy map1 local-address loopback 0

# 在以太网接口Ethernet0/1上应用IPsec安全策略组。

[FirewallA] interface ethernet 0/1

[FirewallA-Ethernet0/1] ip address 2.2.2.2 24

[FirewallA-Ethernet0/1] ipsec policy map1

[FirewallA-Ethernet0/1] quit

# 在以太网接口Ethernet0/2上应用IPsec安全策略组。

[FirewallA] interface ethernet 0/2

[FirewallA-Ethernet0/2] ip address 4.4.4.4 24

[FirewallA-Ethernet0/2] ipsec policy map1

[FirewallA-Ethernet0/2] quit

配置以太网接口Ethernet0/3

[FirewallA] interface ethernet 0/3

[FirewallA-Ethernet0/3] ip address 10.1.1.1 24

[FirewallA-Ethernet0/3] quit

配置到Host B的静态路由。

[FirewallA] ip route-static 10.1.2.0 255.255.255.0 ethernet 0/1 2.2.2.3

[FirewallA] ip route-static 10.1.2.0 255.255.255.0 ethernet 0/2 4.4.4.5

配置到Firewall B上接口Loopback0的静态路由。

[FirewallA] ip route-static 3.3.3.0 255.255.255.0 ethernet 0/1 2.2.2.3

[FirewallA] ip route-static 3.3.3.0 255.255.255.0 ethernet 0/2 4.4.4.5

(2)     配置Firewall B

# 配置一个访问列表,定义由子网10.1.2.0/24去子网10.1.1.0/24的数据流。

<FirewallB> system-view

[FirewallB] acl number 3101

[FirewallB-acl-adv-3101] rule permit ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255

[FirewallB-acl-adv-3101] quit

# 配置IPsec安全提议tran1。

[FirewallB] ipsec transform-set tran1

[FirewallB-ipsec-transform-set-tran1] encapsulation-mode tunnel

[FirewallB-ipsec-transform-set-tran1] transform esp

[FirewallB-ipsec-transform-set-tran1] esp encryption-algorithm des

[FirewallB-ipsec-transform-set-tran1] esp authentication-algorithm sha1

[FirewallB-ipsec-transform-set-tran1] quit

配置IKE对等体peer

[FirewallB] ike peer peer

[FirewallB-ike-peer-peer] pre-shared-key abcde

[FirewallB-ike-peer-peer] remote-address 1.1.1.1

[FirewallB-ike-peer-peer] quit

配置IPsec安全策略map1,协商方式为isakmp

[FirewallB] ipsec policy map1 10 isakmp

[FirewallB-ipsec-policy-isakmp-map1-10] transform-set tran1

[FirewallB-ipsec-policy-isakmp-map1-10] security acl 3101

[FirewallB-ipsec-policy-isakmp-map1-10] ike-peer peer

[FirewallB-ipsec-policy-isakmp-map1-10] quit

# 配置Loopback接口。

[FirewallB] interface loopback 0

[FirewallB-LoopBack0] ip address 3.3.3.3 32

[FirewallB-LoopBack0] quit

# 配置IPsec安全策略组map1为共享源接口IPsec安全策略组。

[FirewallB] ipsec policy map1 local-address loopback 0

#在以太网接口Ethernet0/1上应用IPsec安全策略组。

[FirewallB] interface ethernet 0/1

[FirewallB-Ethernet0/1] ip address 2.2.2.3 24

[FirewallB-Ethernet0/1] ipsec policy map1

[FirewallB-Ethernet0/1] quit

# 在以太网接口Ethernet0/2上应用IPsec安全策略组。

[FirewallB] interface ethernet 0/2

[FirewallB-Ethernet0/2] ip address 4.4.4.5 24

[FirewallB-Ethernet0/2] ipsec policy map1

[FirewallB-Ethernet0/2] quit

# 配置以太网接口Ethernet0/3。

[FirewallB] interface ethernet 0/3

[FirewallB-Ethernet0/3] ip address 10.1.2.1 24

[FirewallB-Ethernet0/3] quit

# 配置到Host A的静态路由。

[FirewallB] ip route-static 10.1.1.0 255.255.255.0 ethernet 0/1 2.2.2.2

[FirewallB] ip route-static 10.1.1.0 255.255.255.0 ethernet 0/2 4.4.4.4

# 配置到Firewall B上接口Loopback0的静态路由。

[FirewallB] ip route-static 1.1.1.0 255.255.255.0 ethernet 0/1 2.2.2.2

[FirewallB] ip route-static 1.1.1.0 255.255.255.0 ethernet 0/2 4.4.4.4

4. 验证配置结果

以上配置完成后,Firewall A和Firewall B之间如果有子网10.1.1.0/24与子网10.1.2.0/24之间的报文通过,将触发IKE进行协商建立SA。应用IPsec业务的两个物理接口Ethernet0/1和Ethernet0/2共同使用一个共享源接口动态协商的IPsec SA。

通过显示命令display ipsec sa可以查看生成IPsec SA的接口为Loopback0。IPsec隧道的本端地址和对端地址分别为隧道两端设备共享源接口的IP地址。

[FirewallA] display ipsec sa

===============================

Interface: LoopBack0

    path MTU: 1536

===============================

 

  -----------------------------

  IPsec policy name: "map1"

  sequence number: 10

  acl version: ACL4

  mode: isakmp

  -----------------------------

    PFS: N, DH group: none

    tunnel:

        local  address: 1.1.1.1

        remote address: 3.3.3.3

    flow :

        sour addr: 10.1.1.0/255.255.255.0  port: 0  protocol: IP

        dest addr: 10.1.2.0/255.255.255.0  port: 0  protocol: IP

……(略)

1.7.4  使用IPsec虚拟隧道接口建立IPsec安全隧道

1. 组网需求

图1-9所示,某企业分支使用拨号方式获取动态IP地址接入Internet,企业总部使用固定的IP地址接入Internet。现有如下组网要求:

·     企业分支与企业总部之间的所有流量通过IPsec安全隧道进行传送;

·     当企业分支的私网IP地址段调整时,不需要改变企业总部网关的IPsec配置。

为实现如上组网需求,可采用如下配置思路实现:

·     在Firewall A和Firewall B之间使用IPsec虚拟隧道接口建立IPsec连接,将发送给对端私网的数据流路由到IPsec虚拟隧道接口上,由IPsec虚拟隧道接口上动态协商建立的IPsec安全隧道对分支子网(172.17.17.0/24)与总部子网(192.168.1.0/24)之间的所有数据流进行安全保护。

2. 组网图

图1-9 IPsec虚拟隧道接口配置组网图

 

 

3. 配置步骤

(1)     配置Firewall A

# 配置本端安全网关的名字为Firewalla。

<FirewallA> system-view

[FirewallA] ike local-name Firewalla

# 配置IKE对等体atob。由于隧道本端的IP地址为动态获取,因此需要选择协商模式为aggressive

[FirewallA] ike peer atob

[FirewallA-ike-peer-atob] exchange-mode aggressive

[FirewallA-ike-peer-atob] pre-shared-key simple aabb

[FirewallA-ike-peer-atob] id-type name

[FirewallA-ike-peer-atob] remote-name Firewallb

[FirewallA-ike-peer-atob] quit

# 创建名字为method1的IPsec安全提议,采用缺省的参数设置:安全协议为ESP;加密算法为DES;认证算法为MD5。

[FirewallA] ipsec transform-set method1

[FirewallA-ipsec-transform-set-method1] transform esp

[FirewallA-ipsec-transform-set-method1] esp encryption-algorithm des

[FirewallA-ipsec-transform-set-method1] esp authentication-algorithm md5

[FirewallA-ipsec-transform-set-method1] quit

# 创建名字为atob的IPsec安全框架,用于保护Firewall A和Firewall B之间的数据流。

[FirewallA] ipsec profile atob

# 引用IKE对等体atob。

[FirewallA-ipsec-profile-atob] ike-peer atob

# 引用IPsec安全提议method1。

[FirewallA-ipsec-profile-atob] transform-set method1

[FirewallA-ipsec-profile-atob] quit

# 创建一个IPsec虚拟隧道接口Tunnel1,此接口将用于保护Firewall A和Firewall B之间的数据流。

[FirewallA] interface tunnel 1

# 配置Tunnel1的IPv4地址为10.1.1.1/24。

[FirewallA–Tunnel1] ip address 10.1.1.1 24

# 配置Tunnel1的隧道模式为IPsec over IPv4。

[FirewallA–Tunnel1] tunnel-protocol ipsec ipv4

配置Tunnel1的源接口为Ethernet0/2

[FirewallA–Tunnel1] source ethernet 0/2

配置Tunnel1的目的地址为1.1.1.1(对端安全网关的隧道接口的源地址)。

[FirewallA–Tunnel1] destination 1.1.1.1

Tunnel1上应用IPsec安全框架atob

[FirewallA–Tunnel1] ipsec profile atob

[FirewallA–Tunnel1] quit

配置Firewall AFirewall B的静态路由。

[FirewallA] ip route-static 192.168.1.0 255.255.255.0 tunnel 1

(2)     配置Firewall B

# 配置接口Ethernet0/2的IP地址。

<FirewallB> system-view

[FirewallB] interface ethernet 0/2

[FirewallB-Ethernet0/2] ip address 1.1.1.1 24

[FirewallB-Ethernet0/2] quit

# 配置本端安全网关的名字为Firewallb。

[FirewallB] ike local-name Firewallb

# 配置IKE对等体btoa。由于隧道对端的IP地址为动态获取,因此需要选择协商模式为aggressive

[FirewallB] ike peer btoa

[FirewallB-ike-peer-btoa] exchange-mode aggressive

[FirewallB-ike-peer-btoa] pre-shared-key simple aabb

[FirewallB-ike-peer-btoa] id-type name

[FirewallB-ike-peer-btoa] remote-name Firewalla

[FirewallB-ike-peer-btoa] quit

# 创建名字为method1的IPsec安全提议,采用缺省的参数设置:安全协议为ESP;加密算法为DES;认证算法为MD5。

[FirewallB] ipsec transform-set method1

[FirewallB-ipsec-transform-set-method1] transform esp

[FirewallB-ipsec-transform-set-method1] esp encryption-algorithm des

[FirewallB-ipsec-transform-set-method1] esp authentication-algorithm md5

[FirewallB-ipsec-transform-set-method1] quit

# 创建名字为btoa的IPsec安全框架,用于保护Firewall B和Firewall A之间的数据流。

[FirewallB] ipsec profile btoa

# 引用IKE对等体btoa。

[FirewallB-ipsec-profile-btoa] ike-peer btoa

# 引用IPsec安全提议method1。

[FirewallB-ipsec-profile-btoa] transform-set method1

[FirewallB-ipsec-profile-btoa] quit

# 创建一个IPsec虚拟隧道接口Tunnel1,此接口将用于保护Firewall B和Firewall A之间的数据流。由于对端的公网地址未知,因此隧道接口下不需要配置目的地址。

[FirewallB] interface tunnel 1

配置Tunnel1IPv4地址为10.1.1.2/24

[FirewallB–Tunnel1] ip address 10.1.1.2 24

配置Tunnel1的隧道模式为IPsec over IPv4

[FirewallB–Tunnel1] tunnel-protocol ipsec ipv4

配置Tunnel1的源接口为Ethernet0/2

[FirewallB–Tunnel1] source ethernet 0/2

Tunnel1上应用IPsec安全框架btoa

[FirewallB–Tunnel1] ipsec profile btoa

[FirewallB–Tunnel1] quit

# 配置Firewall B到Firewall A的静态路由。

[FirewallB] ip route-static 172.17.17.0 255.255.255.0 tunnel 1

4. 验证配置结果

以上配置完成之后,当Firewall A的接口Ethernet0/2完成自动拨号后,Firewall A会自动发起与Firewall B之间的IKE协商。当IKE协商完成之后,Firewall AFirewall B上的IPsec虚拟隧道接口链路状态都将up,即可以满足上述组网需求,对总部和分支的数据流进行安全保护。

可以通过如下显示信息看到Firewall B上的IPsec虚拟隧道接口链路状态已经up

[FirewallB] display interface tunnel 1 brief

Link: ADM - administratively down; Stby – standby

Protocol: (s) – spoofing

Interface            Link Protocol Main IP         Description

Tun1                 UP   UP       10.1.1.2

可以通过如下显示信息看到,FirewallB作为响应方已与Firewall A协商生成了两个阶段的SA。

[FirewallB] display ike sa

    total phase-1 SAs:  1

    connection-id  peer            flag        phase   doi

  ----------------------------------------------------------

        1          1.1.1.2         RD            1     IPSEC

        2          1.1.1.2         RD            2     IPSEC

 

  flag meaning

  RD--READY ST--STAYALIVE RL--REPLACED FD--FADING TO—TIMEOUT RK--REKEY

可以通过如下显示信息查看协商生成的IPsec SA

[FirewallB] display ipsec sa

===============================

Interface: Tunnel1

    path MTU: 1443

===============================

 

  -----------------------------

  IPsec policy name: "btoa"

  sequence number: 1

  acl version: None

  mode: tunnel

  -----------------------------

    PFS: N, DH group: none

    tunnel:

        local  address: 1.1.1.1

        remote address: 1.1.1.2

    flow :

        sour addr: 0.0.0.0/0.0.0.0  port: 0  protocol: IP

        dest addr: 0.0.0.0/0.0.0.0  port: 0  protocol: IP

 

    [inbound ESP SAs]

      spi: 0x75B6EF44(1974923076)

      transform: ESP-ENCRYPT-DES ESP-AUTH-MD5

      in use setting: Tunnel

      connection id: 1

      sa duration (kilobytes/sec): 1843200/3600

      sa remaining duration (kilobytes/sec): 1843199/3503

      anti-replay detection: Enabled

        anti-replay window size(counter based): 32

      udp encapsulation used for nat traversal: N

 

    [outbound ESP SAs]

      spi: 0x8CF16C54(2364632148)

      transform: ESP-ENCRYPT-DES ESP-AUTH-MD5

      in use setting: Tunnel

      connection id: 2

      sa duration (kilobytes/sec): 1843200/3600

      sa remaining duration (kilobytes/sec): 1843199/3503

      anti-replay detection: Enabled

        anti-replay window size(counter based) : 32

      udp encapsulation used for nat traversal: N

在Firewall B上可以ping通Firewall A连接的分支私网地址。

[FirewallB] ping -a 192.168.1.1 172.17.17.1

  PING 172.17.17.1: 56  data bytes, press CTRL_C to break

    Reply from 172.17.17.1: bytes=56 Sequence=1 ttl=255 time=15 ms

    Reply from 172.17.17.1: bytes=56 Sequence=2 ttl=255 time=10 ms

    Reply from 172.17.17.1: bytes=56 Sequence=3 ttl=255 time=10 ms

    Reply from 172.17.17.1: bytes=56 Sequence=4 ttl=255 time=5 ms

    Reply from 172.17.17.1: bytes=56 Sequence=5 ttl=255 time=4 ms

 

  --- 172.17.17.1 ping statistics ---

    5 packet(s) transmitted

    5 packet(s) received

    0.00% packet loss

    round-trip min/avg/max = 4/8/15 ms

同样,在Firewall A上可以通过以上显示命令来查看配置的生效情况,由于其上的显示信息形式与Firewall B的类似,此处不再详述。

1.7.5  配置IPsec保护RIPng报文

·     IPsec保护其它IPv6路由协议(OSPFv3)的具体配置与本例类似,具体内容请参考“三层技术-IP路由配置指导”中的“OSPFv3”。

 

1. 组网需求

图1-10所示,Firewall A、Firewall B和Firewall C相连,并通过RIPng来学习网络中的IPv6路由信息。具体组网要求如下:

·     在各设备之间建立IPsec安全隧道,对它们收发的RIPng报文进行安全保护;

·     安全协议采用ESP协议,加密算法采用DES,认证算法采用SHA1-HMAC-96。

配置思路:

·     配置RIPng的基本功能

·     配置手工方式的IPsec安全策略

·     在RIPng进程下或接口上应用IPsec安全策略(进程下配置的IPsec安全策略对该进程的所有报文有效,接口下的IPsec安全策略只对接口下的报文有效)

2. 组网图

图1-10 配置IPsec保护RIPng报文组网图

 

3. 配置步骤

RIPng配置的详细介绍请参考“三层技术-IP路由配置指导”中的“RIPng”。

 

(1)     配置Firewall A

·     配置各接口的IPv6地址(略)

·     配置RIPng的基本功能

<FirewallA> system-view

[FirewallA] ripng 1

[FirewallA-ripng-1] quit

[FirewallA] interface ethernet 0/1

[FirewallA-Ethernet0/1] ripng 1 enable

[FirewallA-Ethernet0/1] quit

·     配置IPsec安全策略

创建并配置名为tran1的安全提议(报文封装形式采用传输模式,安全协议采用ESP协议,加密算法采用DES,认证算法采用SHA1-HMAC-96)。

[FirewallA] ipsec transform-set tran1

[FirewallA-ipsec-transform-set-tran1] encapsulation-mode transport

[FirewallA-ipsec-transform-set-tran1] transform esp

[FirewallA-ipsec-transform-set-tran1] esp encryption-algorithm des

[FirewallA-ipsec-transform-set-tran1] esp authentication-algorithm sha1

[FirewallA-ipsec-transform-set-tran1] quit

创建并配置名为policy001IPsec安全策略(协商方式为manual,出入方向SASPI均为123456,出入方向SA的密钥均为abcdefg)。

[FirewallA] ipsec policy policy001 10 manual

[FirewallA-ipsec-policy-manual-policy001-10] transform-set tran1

[FirewallA-ipsec-policy-manual-policy001-10] sa spi outbound esp 123456

[FirewallA-ipsec-policy-manual-policy001-10] sa spi inbound esp 123456

[FirewallA-ipsec-policy-manual-policy001-10] sa string-key outbound esp abcdefg

[FirewallA-ipsec-policy-manual-policy001-10] sa string-key inbound esp abcdefg

[FirewallA-ipsec-policy-manual-policy001-10] quit

·     在RIPng进程上应用IPsec安全策略

[FirewallA] ripng 1

[FirewallA-ripng-1] enable ipsec-policy policy001

[FirewallA-ripng-1] quit

(2)     配置Firewall B

·     配置各接口的IPv6地址(略)

·     配置RIPng的基本功能

<FirewallB> system-view

[FirewallB] ripng 1

[FirewallB-ripng-1] quit

[FirewallB] interface ethernet 0/1

[FirewallB-Ethernet0/1] ripng 1 enable

[FirewallB-Ethernet0/1] quit

[FirewallB] interface ethernet 0/2

[FirewallB-Ethernet0/2] ripng 1 enable

[FirewallB-Ethernet0/2] quit

·     配置IPsec安全策略

创建并配置名为tran1的IPsec安全提议(报文封装形式采用传输模式,安全协议采用ESP协议,加密算法采用DES,认证算法采用SHA1-HMAC-96)。

[FirewallB] ipsec transform-set tran1

[FirewallB-ipsec-transform-set-tran1] encapsulation-mode transport

[FirewallB-ipsec-transform-set-tran1] transform esp

[FirewallB-ipsec-transform-set-tran1] esp encryption-algorithm des

[FirewallB-ipsec-transform-set-tran1] esp authentication-algorithm sha1

[FirewallB-ipsec-transform-set-tran1] quit

创建并配置名为policy001IPsec安全策略(协商方式为manual,出入方向SASPI均为123456,出入方向SA的密钥均为abcdefg)。

[FirewallB] ipsec policy policy001 10 manual

[FirewallB-ipsec-policy-manual-policy001-10] transform-set tran1

[FirewallB-ipsec-policy-manual-policy001-10] sa spi outbound esp 123456

[FirewallB-ipsec-policy-manual-policy001-10] sa spi inbound esp 123456

[FirewallB-ipsec-policy-manual-policy001-10] sa string-key outbound esp abcdefg

[FirewallB-ipsec-policy-manual-policy001-10] sa string-key inbound esp abcdefg

[FirewallB-ipsec-policy-manual-policy001-10] quit

·     在RIPng进程上应用IPsec安全策略

[FirewallB] ripng 1

[FirewallB-ripng-1] enable ipsec-policy policy001

[FirewallB-ripng-1] quit

(3)     配置Firewall C

·     配置各接口的IPv6地址(略)

·     配置RIPng的基本功能

<FirewallC> system-view

[FirewallC] ripng 1

[FirewallC-ripng-1] quit

[FirewallC] interface ethernet 0/1

[FirewallC-Ethernet0/1] ripng 1 enable

[FirewallC-Ethernet0/1] quit

·     配置IPsec安全策略

创建并配置名为tran1的IPsec安全提议(报文封装形式采用传输模式,安全协议采用ESP协议,加密算法采用DES,认证算法采用SHA1-HMAC-96)。

[FirewallC] ipsec transform-set tran1

[FirewallC-ipsec-transform-set-tran1] encapsulation-mode transport

[FirewallC-ipsec-transform-set-tran1] transform esp

[FirewallC-ipsec-transform-set-tran1] esp encryption-algorithm des

[FirewallC-ipsec-transform-set-tran1] esp authentication-algorithm sha1

[FirewallC-ipsec-transform-set-tran1] quit

创建并配置名为policy001IPsec安全策略(协商方式为manual,出入方向SASPI均为123456,出入方向SA的密钥均为abcdefg)。

[FirewallC] ipsec policy policy001 10 manual

[FirewallC-ipsec-policy-manual-policy001-10] transform-set tran1

[FirewallC-ipsec-policy-manual-policy001-10] sa spi outbound esp 123456

[FirewallC-ipsec-policy-manual-policy001-10] sa spi inbound esp 123456

[FirewallC-ipsec-policy-manual-policy001-10] sa string-key outbound esp abcdefg

[FirewallC-ipsec-policy-manual-policy001-10] sa string-key inbound esp abcdefg

[FirewallC-ipsec-policy-manual-policy001-10] quit

·     在RIPng进程上应用IPsec安全策略

[FirewallC] ripng 1

[FirewallC-ripng-1] enable ipsec-policy policy001

[FirewallC-ripng-1] quit

4. 验证配置结果

以上配置完成后,Firewall A、Firewall B和Firewall C将通过RIPng协议学习到网络中的IPv6路由信息,且分别产生用于保护RIPng报文的SA。

可以通过如下display命令查看Firewall A上RIPng的配置信息。如下显示信息表示RIPng进程1上已成功应用了IPsec策略,且携带了有效的SPI值。

<FirewallA> display ripng 1

    RIPng process : 1

       Preference : 100

       Checkzero : Enabled

       Default Cost : 0

       Maximum number of balanced paths : 8

       Update time   :   30 sec(s)  Timeout time         :  180 sec(s)

       Suppress time :  120 sec(s)  Garbage-Collect time :  120 sec(s)

       Number of periodic updates sent : 186

       Number of trigger updates sent : 1

       IPsec policy name: policy001, SPI: 123456

 

可以通过如下display命令查看Firewall A上生成的SA

<FirewallA> display ipsec sa

===============================

Protocol: RIPng

===============================

 

  -----------------------------

  IPsec policy name: "policy001"

  sequence number: 10

  acl version: ACL4

  mode: manual

  -----------------------------

    PFS: N, DH group: none

    tunnel:

    flow:

 

    [inbound ESP SAs]

      spi: 0x3039(123456)

      transform: ESP-ENCRYPT-DES ESP-AUTH-SHA1

      in use setting: Transport

      connection id: 13

      No duration limit for this sa

 

    [outbound ESP SAs]

      spi: 0x3039(123456)

      transform: ESP-ENCRYPT-DES ESP-AUTH-SHA1

      in use setting: Transport

      connection id: 14

      No duration limit for this sa

Firewall B和Firewall C上也会生成相应的SA来保护RIPng报文,查看方式与Firewall A同,此处略。

1.7.6  IPsec反向路由注入功能典型配置举例

1. 组网需求

企业分支通过IPsec VPN接入企业总部,有如下具体需求:

·     在总部网关Firewall A和分支网关Firewall B之间建立一个安全隧道,对总部网络10.4.4.0/24与分支网络10.5.5.0/24之间的数据流进行安全保护。

·     使用IKE自动协商方式建立SA,安全协议采用ESP协议,加密算法采用DES,认证算法采用SHA1-HMAC-96。

·     在Firewall A上开启IPsec反向路由注入功能,实现总部到分支的静态路由随IPsec SA的建立而动态生成,并指定下一跳地址为1.1.1.2。

2. 组网图

图1-11 IPsec反向路由注入功能配置组网图

 

3. 配置步骤

请按照图中所示配置各接口的IPv4地址,并保证Firewall A和Firewall B之间路由可达(略)。

(1)     配置Firewall A

# 配置访问控制列表3101,定义由子网10.4.4.0/24去子网10.5.5.0/24的数据流。

<FirewallA> system-view

[FirewallA] acl number 3101

[FirewallA-acl-adv-3101] rule permit ip source 10.4.4.0 0.0.0.255 destination 10.5.5 0 0.0.0.255

[FirewallA-acl-adv-3101] quit

# 创建名为tran1的IPsec安全提议。

[FirewallA] ipsec transform-set tran1

# 报文封装形式采用隧道模式。

[FirewallA-ipsec-transform-set-tran1] encapsulation-mode tunnel

# 配置采用ESP安全协议。

[FirewallA-ipsec-transform-set-tran1] transform esp

# 配置加密算法为DES,认证算法为SHA1-HMAC-96。

[FirewallA-ipsec-transform-set-tran1] esp encryption-algorithm des

[FirewallA-ipsec-transform-set-tran1] esp authentication-algorithm sha1

[FirewallA-ipsec-transform-set-tran1] quit

# 配置IKE对等体。

[FirewallA] ike peer peer

[FirewallA-ike-peer-peer] pre-shared-key abcde

[FirewallA-ike-peer-peer] remote-address 2.2.2.2

[FirewallA-ike-peer-peer] quit

# 创建IPsec安全策略map1,其协商方式为isakmp。

[FirewallA] ipsec policy map1 10 isakmp

# 引用IPsec安全提议。

[FirewallA-ipsec-policy-isakmp-map1-10] transform-set tran1

# 引用访问控制列表。

[FirewallA-ipsec-policy-isakmp-map1-10] security acl 3101

# 引用IKE对等体。

[FirewallA-ipsec-policy-isakmp-map1-10] ike-peer peer

# 开启动态方式的IPsec反向路由注入功能,并指定下一跳地址为1.1.1.2。

[FirewallA-ipsec-policy-isakmp-map1-10] reverse-route remote-peer 1.1.1.2

[FirewallA-ipsec-policy-isakmp-map1-10] quit

# 在接口Ethernet0/1上应用IPsec安全策略组map1。

[FirewallA] interface ethernet 0/1

[FirewallA-Ethernet0/1] ipsec policy map1

[FirewallA-Ethernet0/1] quit

(2)     配置Firewall B

# 配置一访问控制列表3101,定义由子网10.5.5.0/24去子网10.4.4.0/24的数据流。

<FirewallB> system-view

[FirewallB] acl number 3101

[FirewallB-acl-adv-3101] rule permit ip source 10.5.5.0 0.0.0.255 destination 10.4.4.0 0.0.0.255

[FirewallB-acl-adv-3101] quit

# 配置到Host A所在网段的静态路由。

[FirewallB] ip route-static 10.4.4.0 255.255.255.0 1.1.1.1

# 创建名为tran1的IPsec安全提议。

[FirewallB] ipsec transform-set tran1

# 报文封装形式采用隧道模式。

[FirewallB-ipsec-transform-set-tran1] encapsulation-mode tunnel

# 配置采用ESP安全协议。

[FirewallB-ipsec-transform-set-tran1] transform esp

# 配置加密算法为DES,认证算法为SHA1-HMAC-96。

[FirewallB-ipsec-transform-set-tran1] esp encryption-algorithm des

[FirewallB-ipsec-transform-set-tran1] esp authentication-algorithm sha1

[FirewallB-ipsec-transform-set-tran1] quit

# 配置IKE对等体。

[FirewallB] ike peer peer

[FirewallB-ike-peer-peer] pre-shared-key abcde

[FirewallB-ike-peer-peer] remote-address 1.1.1.1

[FirewallB-ike-peer-peer] quit

# 创建IPsec安全策略use1,其协商方式为isakmp。

[FirewallB] ipsec policy use1 10 isakmp

# 引用访问控制列表。

[FirewallB-ipsec-policy-isakmp-use1-10] security acl 3101

# 引用IPsec安全提议。

[FirewallB-ipsec-policy-isakmp-use1-10] transform-set tran1

# 引用IKE对等体。

[FirewallB-ipsec-policy-isakmp-use1-10] ike-peer peer

[FirewallB-ipsec-policy-isakmp-use1-10] quit

# 在接口Ethernet0/1上应用IPsec安全策略组use1。

[FirewallB] interface ethernet 0/1

[FirewallB-Ethernet0/1] ipsec policy use1

4. 验证配置结果

以上配置完成后,Firewall A和Firewall B之间如果有子网10.5.5.0/24与子网10.4.4.0/24之间的报文通过,将触发IKE进行协商建立SA。

IKE协商成功并创建了IPsec SA后,子网10.5.5.0/24与子网10.4.4.0/24之间的数据流将被加密传输,Firewall A上同时生成静态路由表项,目的地址为分支网络地址10.5.5.0/24,下一跳地址为1.1.1.2,可通过如下显示信息查看。

[FirewallA] display ip routing-table

Routing Tables: Public

         Destinations : 8        Routes : 8

 

Destination/Mask    Proto  Pre  Cost         NextHop         Interface

 

1.1.0.0/16          Direct 0    0            1.1.1.1         Eth0/1

1.1.1.1/32          Direct 0    0            127.0.0.1       InLoop0

2.2.2.0/24          Static 60   0            1.1.1.2         Eth0/1

10.4.4.0/24         Direct 0    0            10.4.4.1        Eth0/2

10.4.4.4/32         Direct 0    0            127.0.0.1       InLoop0

10.5.5.0/24         Static 60   0            1.1.1.2         Eth0/1

127.0.0.0/8         Direct 0    0            127.0.0.1       InLoop0

127.0.0.1/32        Direct 0    0            127.0.0.1       InLoop0

若删除对应的IPsec SA,则该静态路由也会被同时删除。


本文链接:http://www.hqyman.cn/post/1839.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:





休息一下,本站随机推荐观看栏目:


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

您的IP地址是: