• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

06-安全分册(操作, V1.01)

08-IPSEC配置

本章节下载  (452.03 KB)

docurl=/cn/Service/Document_Software/Document_Center/Other_Product/IP_Voice/VG_80-80/VG_80-80/Configure/Operation_Manual/VG_80-80_06_OM(_V1.01)/200712/321096_30005_0.htm

08-IPSEC配置

目  录

第1章 IPSec配置... 1-1

1.1 IPSec简介.. 1-1

1.1.1 IPSec的实现.. 1-1

1.1.2 IPSec基本概念.. 1-2

1.1.3 协议规范.. 1-4

1.2 IPSec配置任务简介.. 1-4

1.3 配置访问控制列表.. 1-5

1.4 配置安全提议.. 1-5

1.5 配置安全策略.. 1-6

1.5.1 手工配置安全策略.. 1-7

1.5.2 配置IKE协商安全策略.. 1-8

1.6 在接口上应用安全策略组.. 1-11

1.7 配置会话空闲超时时间.. 1-12

1.8 IPSec显示和维护.. 1-12

1.9 IPSec典型配置举例.. 1-13

1.9.1 采用手工方式建立SA. 1-13

1.9.2 采用IKE方式建立SA. 1-16

第2章 配置IKE. 2-1

2.1 IKE简介.. 2-1

2.1.1 IKE的安全机制.. 2-1

2.1.2 IKE的交换过程.. 2-2

2.1.3 IKE在IPSec中的作用.. 2-2

2.1.4 IPSec与IKE的关系.. 2-3

2.2 IKE配置任务简介.. 2-3

2.3 配置本端安全网关的名字.. 2-4

2.4 配置IKE安全提议.. 2-4

2.5 配置IKE对等体.. 2-5

2.6 配置Keepalive定时器.. 2-7

2.7 配置NAT Keepalive定时器.. 2-8

2.8 配置对等体存活检测.. 2-8

2.9 配置取消对next payload域的检查.. 2-9

2.10 IKE显示和维护.. 2-9

2.11 IKE典型配置举例.. 2-10

2.11.1 IKE典型配置组网应用.. 2-10

2.11.2 IKE野蛮模式及NAT穿越的组网应用.. 2-11

2.12 常见错误配置举例.. 2-14

2.12.1 非法用户身份信息.. 2-14

2.12.2 提议不匹配.. 2-15

2.12.3 无法建立安全隧道.. 2-15

2.12.4 ACL配置错误.. 2-16

 

 


第1章  IPSec配置

1.1  IPSec简介

IPSec(IP Security)是IETF制定的三层隧道加密协议,它为Internet上传输的数据提供了高质量的、可互操作的、基于密码学的安全保证。特定的通信方之间在IP层通过加密与数据源认证等方式,提供了以下的安全服务:

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

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

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

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

可以通过IKE(Internet Key Exchange,因特网密钥交换协议)为IPSec提供自动协商交换密钥、建立和维护安全联盟的服务,以简化IPSec的使用和管理。IKE协商并不是必须的,IPSec所使用的策略和算法等也可以手工协商。

1.1.1  IPSec的实现

IPSec通过如下两种协议来实现安全服务:

l              AH(Authentication Header)是认证头协议,协议号为51。主要提供的功能有数据源认证、数据完整性校验和防报文重放功能,可选择的认证算法有MD5(Message Digest)、SHA-1(Secure Hash Algorithm)等。AH报文头插在标准IP包头后面,保证数据包的完整性和真实性,防止黑客截获数据包或向网络中插入伪造的数据包。

l              ESP(Encapsulating Security Payload)是报文安全封装协议,协议号为50。与AH协议不同的是,ESP将需要保护的用户数据进行加密后再封装到IP包中,以保证数据的机密性。常见的加密算法有DES、3DES、AES等。同时,作为可选项,用户可以选择MD5、SHA-1算法保证报文的完整性和真实性。

AH和ESP可以单独使用,也可以联合使用。设备支持的AH和ESP联合使用的方式为:先对报文进行ESP封装,再对报文进行AH封装,封装之后的报文从内到外依次是原始IP报文、ESP头、AH头和外部IP头。

1.1.2  IPSec基本概念

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

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

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

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

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

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

SA是具有生存周期的,且只对通过IKE方式建立的SA有效。分为两种类型:

l              基于时间,定义一个从SA从建立到失效的时间;

l              基于流量,定义一个SA允许处理的最大流量。

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

2. 封装模式

IPSec有如下两种工作模式:

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

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

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

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

3. 认证算法与加密算法

(1)        认证算法

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

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

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

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

(2)        加密算法

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

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

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

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

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

4. 协商方式

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

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

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

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

5. 安全隧道

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

1.1.3  协议规范

与IPSec相关的协议规范有:

l              RFC2401:Security Architecture for the Internet Protocol

l              RFC2402:IP Authentication Header

l              RFC2406:IP Encapsulating Security Payload

1.2  IPSec配置任务简介

目前设备实现了上述所介绍的IPSec的全部内容。其实现方式是基于如下思路。

(1)        通过IPSec,对等体之间(此处是指设备及其对端)能够对不同的数据流实施不同的安全保护(认证、加密或两者同时使用),数据流的区分通过配置ACL来进行;

(2)        安全保护所用到的安全协议、认证算法和加密算法、封装模式等通过配置安全提议来进行;

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

(4)        最后在设备接口上实施安全策略即完成了IPSec的配置。若通过软件实现,则在接口上应用安全策略即可;若通过加密卡实现,则除在接口上应用安全策略,还需将安全策略绑定到加密卡上。

表1-1 IPSec配置任务简介

配置任务

说明

详细配置

配置访问控制列表

必选

1.3 

配置安全提议

必选

1.4 

配置安全策略

必选

1.5 

在接口上应用安全策略组

可选

1.6 

配置会话空闲超时时间

可选

1.7 

 

1.3  配置访问控制列表

IPSec通过配置访问控制列表中的规则来定义需要保护的数据流,访问控制列表匹配的报文将被保护,访问控制列表拒绝的报文将不被保护。访问控制列表既可用于保护入口数据流,也可用于保护出口数据流。

在本地和远端设备上定义的访问控制列表必须是相对应的,即本端访问控制列表定义的源IP地址要与对端的目的IP地址保持一致,本端的目的IP地址与对端的源IP地址一致。

&  说明:

l      ACL的具体配置请参见“安全分册”中的“ACL配置”。

l      IPSec对访问控制列表中匹配的数据流进行保护,因此建议用户精确地配置ACL,只对确实需要IPSec保护的数据流配置permit,避免盲目地使用关键字any

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

 

1.4  配置安全提议

安全提议保存IPSec需要使用的特定安全协议、加密/认证算法以及封装模式,为IPSec协商SA提供各种安全参数。

表1-2 配置安全提议

操作

命令

说明

进入系统视图

system-view

-

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

ipsec proposal proposal-name

必选

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

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

transform { ah | ah-esp | esp }

可选

缺省情况下,采用ESP协议

配置安全算法

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

esp encryption-algorithm { 3des | | aes [ key-length ] | des }

可选

缺省情况下,ESP协议采用DES加密算法

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

esp authentication-algorithm { md5 | sha1 }

可选

缺省情况下,ESP协议采用MD5认证算法

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

ah authentication-algorithm { md5 | sha1 }

可选

缺省情况下,AH协议采用MD5认证算法

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

encapsulation-mode { transport | tunnel }

可选

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

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

 

&  说明:

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

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

l      最多可以创建50个安全提议。

 

1.5  配置安全策略

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

安全策略分为手工安全策略和IKE协商安全策略,前者需要用户手工配置密钥、SPI等参数,在隧道模式下还需要手工配置安全隧道两个端点的IP地址;后者则由IKE自动协商生成这些参数。如果通过手工方式创建一条安全策略,则不能再修改它为IKE协商创建,而必须先删除该安全策略然后再创建;反之亦然。

1.5.1  手工配置安全策略

手工配置安全策略时,在安全隧道的两端,必须满足以下配置要求:

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

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

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

l              SA使用的密钥应当以相同的方式输入。即,一端以字符串方式输入密钥,另一端必须也以字符串方式输入密钥。

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

操作

命令

说明

进入系统视图

system-view

-

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

ipsec policy policy-name seq-number manual

必选

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

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

security acl acl-number

必选

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

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

proposal proposal-name

必选

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

配置隧道的起点与终点

配置安全隧道的本端地址

tunnel local ip-address

必选

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

配置安全隧道的对端地址

tunnel remote ip-address

必选

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

配置安全联盟的安全参数索引参数

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

必选

配置SA使用的密钥

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

sa authentication-hex { inbound | outbound } { ah | esp } hex-key

二者必选其一

对于ESP协议,配置认证密钥时,系统会自动地同时生成认证算法的密钥和加密算法的密钥

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

sa string-key { inbound | outbound } { ah | esp } string-key

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

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

二者必选其一

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

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

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

 

&  说明:

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

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

l      在为系统配置SA时,必须分别设置inboundoutbound两个方向SA的参数。同时,为保证安全联盟的唯一性,不同SA必须对应不同的SPI。

l      如果分别以两种方式输入了密钥,则最后设定的密钥有效。在安全隧道的两端,应当以相同的方式输入密钥。如果一端以字符串方式输入密钥,另一端以16进制方式输入密钥,则不能正确地建立安全隧道。

 

1.5.2  配置IKE协商安全策略

在采用IKE方式配置安全策略时,除在安全策略视图下直接配置安全策略外,还可以通过引用安全策略模板来创建安全策略。在这种情况下,应先在安全策略模板中配置好所有的安全策略,再引入安全策略模板。

需要注意的是,如果配置了可选参数中的一个或几个,则协商时这些参数必须在本端和对端相匹配。

不能用应用策略模板的安全策略来发起安全联盟的协商,但可以响应协商。在协商过程中进行策略匹配时,策略模板中定义的参数必须相符,而策略模板中没有定义的参数由发起方来决定,响应方接受发起方的建议。

1. 配置准备

在配置IKE协商安全策略之前,需要配置IKE对等体。具体配置请参见“2.5  配置IKE对等体”。

2. 配置IKE协商安全策略

l              直接配置IKE协商安全策略

表1-4 直接配置IKE协商安全策略

操作

命令

说明

进入系统视图

system-view

-

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

ipsec policy policy-name seq-number isakmp

必选

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

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

security acl acl-number

必选

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

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

proposal proposal-name&<1-6>

必选

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

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

ike-peer peer-name

必选

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

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

可选

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

PFS(Perfect Forward Secrecy,完善的前向安全)特性请参见“2.1.1  IKE的安全机制

配置SA的生存周期

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

可选

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

退回系统视图

quit

-

配置全局SA的生存周期

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

可选

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

 

l              引用安全策略模板配置IKE协商安全策略

安全策略模板可配置的参数与IKE方式的IPSec安全策略相同,只是很多参数是可选的。必须配置的参数有IPSec安全提议和IKE对等体,而保护的数据流同直接方式下的可选参数PFS特性、生存周期一样可以不配置。

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

操作

命令

说明

进入系统视图

system-view

-

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

ipsec policy-template template-name seq-number

必选

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

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

security acl acl-number

可选

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

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

proposal proposal-name&<1-6>

必选

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

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

ike-peer peer-name

必选

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

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

可选

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

PFS(Perfect Forward Secrecy,完善的前向安全)特性请参见“2.1.1  IKE的安全机制

配置SA的生存周期

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

可选

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

退回系统视图

quit

-

配置全局SA的生存周期

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

可选

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

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

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

必选

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

 

&  说明:

l      引用安全策略模板创建一条安全策略之后,就不能进入该安全策略视图下进行安全策略的配置与修改了,只能进入安全策略模板视图下配置或修改。

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

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

l      IKE在使用此安全策略发起一个协商时,进行一个PFS交换。如果本端指定了PFS,对端在发起协商时必须是PFS交换。本端和对端指定的DH组必须一致,否则协商会失败。

l      所有在安全策略视图下没有单独配置生存周期的安全联盟,都采用全局生存周期。IKE为IPSec协商建立安全联盟时,采用本地设置的和对端提议的生存周期中较小的一个。

 

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

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

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

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

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

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

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

应用指定的安全策略组

ipsec policy policy-name

必选

 

&  说明:

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

 

1.7  配置会话空闲超时时间

数据包首次匹配IPSec策略后创建IPSec会话,并根据匹配结果创建IPSec会话表项,会话表项中记录了报文的五元组(源IP地址、目的IP地址、协议号、源端口、目的端口)和匹配的IPSec隧道。IPSec会话的删除由IPSec会话的空闲超时时间决定。IPSec会话在超过它的空闲超时时间之后,被自动删除。

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

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

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

操作

命令

说明

进入系统视图

system-view

-

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

ipsec session idle-time seconds

可选

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

 

1.8  IPSec显示和维护

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

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

表1-8 IPSec显示和维护

操作

命令

显示安全策略的信息

display ipsec policy [ brief | name policy-name [ seq-number ] ]

显示安全策略模板的信息

display ipsec policy-template [ brief | name template-name [ seq-number ] ]

显示安全提议的信息

display ipsec proposal [ proposal-name ]

显示安全联盟的相关信息

display ipsec sa [ brief| duration | policy policy-name [ seq-number ] | remote ip-address ]

显示IPSec会话的信息

display ipsec session [ tunnel-id integer ]

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

display ipsec statistics

显示IPSec隧道的信息

display ipsec tunnel

清除已经建立的安全联盟

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.9  IPSec典型配置举例

1.9.1  采用手工方式建立SA

1. 组网需求

l              在VG-1和 VG-2之间建立一个安全隧道,对Host A代表的子网(10.1.1.0/24)与Host B代表的子网(10.1.2.0/24)之间的数据流进行安全保护。

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

2. 组网图

图1-2 IPSec配置组网图

3. 配置步骤

(1)        配置VG-1

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

<VG-1> system-view

[VG-1] acl number 3101

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

[VG-1-acl-adv-3101] rule deny ip source any destination any

[VG-1-acl-adv-3101] quit

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

[VG-1] ip route-static 10.1.2.0 255.255.255.0 2.2.3.1

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

[VG-1] ipsec proposal tran1

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

[VG-1-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全协议采用ESP协议。

[VG-1-ipsec-proposal-tran1] transform esp

# 选择算法。

[VG-1-ipsec-proposal-tran1] esp encryption-algorithm des

[VG-1-ipsec-proposal-tran1] esp authentication-algorithm sha1

[VG-1-ipsec-proposal-tran1] quit

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

[VG-1] ipsec policy map1 10 manual

# 引用访问控制列表。

[VG-1-ipsec-policy-manual-map1-10] security acl 3101

# 引用安全提议。

[VG-1-ipsec-policy-manual-map1-10] proposal tran1

# 配置对端地址。

[VG-1-ipsec-policy-manual-map1-10] tunnel remote 2.2.3.1

# 配置本端地址。

[VG-1-ipsec-policy-manual-map1-10] tunnel local 2.2.2.1

# 配置SPI。

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

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

# 配置密钥。

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

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

[VG-1-ipsec-policy-manual-map1-10] quit

# 配置GigabitEthernet 0/0。

[VG-1] interface GigabitEthernet 0/0

[VG-1-GigabitEthernet 0/0] ip address 2.2.2.1 255.255.255.0

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

[VG-1-GigabitEthernet 0/0] ipsec policy map1

(2)        配置VG-2

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

<VG-2> system-view

[VG-2] acl number 3101

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

[VG-2-acl-adv-3101] rule deny ip source any destination any

[VG-2-acl-adv-3101] quit

# 配置到HostA的静态路由。

[VG-2] ip route-static 10.1.1.0 255.255.255.0 serial 2/2

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

[VG-2] ipsec proposal tran1

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

[VG-2-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全协议采用ESP协议。

[VG-2-ipsec-proposal-tran1] transform esp

# 选择算法。

[VG-2-ipsec-proposal-tran1] esp encryption-algorithm des

[VG-2-ipsec-proposal-tran1] esp authentication-algorithm sha1

[VG-2-ipsec-proposal-tran1] quit

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

[VG-2] ipsec policy use1 10 manual

# 引用访问控制列表。

[VG-2-ipsec-policy-manual-use1-10] security acl 3101

# 引用安全提议。

[VG-2-ipsec-policy-manual-use1-10] proposal tran1

# 配置对端地址。

[VG-2-ipsec-policy-manual-use1-10] tunnel remote 2.2.2.1

# 配置本端地址。

[VG-2-ipsec-policy-manual-use1-10] tunnel local 2.2.3.1

# 配置SPI。

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

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

# 设置密钥。

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

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

[VG-2-ipsec-policy-manual-use1-10] quit

# 配置GigabitEthernet 0/0。

[VG-2] interface GigabitEthernet 0/0

[VG-2-Serial2/2] ip address 2.2.3.1 255.255.255.0

# 在GigabitEthernet 0/0上应用安全策略组。

[VG-2-GigabitEthernet 0/0] ipsec policy use1

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

1.9.2  采用IKE方式建立SA

1. 组网需求

l              图1-2所示,在VG-1和VG-2之间使用加密卡建立一个安全隧道,对Host A代表的子网(10.1.1.0/24)与Host B代表的子网(10.1.2.0/24)之间的数据流进行安全保护。

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

2. 组网图

图1-2

3. 配置步骤

(1)        配置VG-1

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

<VG-1> system-view

[VG-1] acl number 3101

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

[VG-1-acl-adv-3101] rule deny ip source any destination any

[VG-1-acl-adv-3101] quit

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

[VG-1] ip route-static 10.1.2.0 255.255.255.0 2.2.3.1

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

[VG-1] ipsec proposal tran1

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

[VG-1-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全协议采用ESP协议。

[VG-1-ipsec-proposal-tran1] transform esp

# 选择算法。

[VG-1-ipsec-proposal-tran1] esp encryption-algorithm des

[VG-1-ipsec-proposal-tran1] esp authentication-algorithm sha1

[VG-1-ipsec-proposal-tran1] quit

# 配置IKE对等体。

[VG-1] ike peer peer

[VG-1-ike-peer-peer] pre-share-key abcde

[VG-1-ike-peer-peer] remote-address 2.2.3.1

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

[VG-1] ipsec policy map1 10 isakmp

# 引用安全提议。

[VG-1-ipsec-policy-isakmp-map1-10] proposal tran1

# 引用访问控制列表。

[VG-1-ipsec-policy-isakmp-map1-10] security acl 3101

# 引用IKE对等体。

[VG-1-ipsec-policy-isakmp-map1-10] ike-peer peer

[VG-1-ipsec-policy-isakmp-map1-10] quit

# 配置GigabitEthernet 0/0。

[VG-1] interface GigabitEthernet 0/0

[VG-1-GigabitEthernet 0/0] ip address 2.2.2.1 255. 255.255.0

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

[VG-1-Serial2/1] ipsec policy map1

(2)        配置VG-2

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

<VG-2> system-view

[VG-2] acl number 3101

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

[VG-2-acl-adv-3101] rule deny ip source any destination any

[VG-2-acl-adv-3101] quit

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

[VG-2] ip route-static 10.1.1.0 255.255.255.0 2.2.2.1

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

[VG-2] ipsec proposal tran1

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

[VG-2-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全协议采用ESP协议。

[VG-2-ipsec-proposal-tran1] transform esp

# 选择算法。

[VG-2-ipsec-proposal-tran1] esp encryption-algorithm des

[VG-2-ipsec-proposal-tran1] esp authentication-algorithm sha1

[VG-2-ipsec-proposal-tran1] quit

# 配置IKE对等体。

[VG-2] ike peer peer

[VG-2-ike-peer-peer] pre-share-key abcde

[VG-2-ike-peer-peer] remote-address 2.2.2.1

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

[VG-2] ipsec policy use1 10 isakmp

# 引用访问控制列表。

[VG-2-ipsec-policy-isakmp-use1-10] security acl 3101

# 引用安全提议。

[VG-2-ipsec-policy-isakmp-use1-10] proposal tran1

# 引用IKE对等体。

[VG-2-ipsec-policy-isakmp-map1-10] ike-peer peer

[VG-2-ipsec-policy-isakmp-use1-10] quit

# 配置GigabitEthernet 0/0。

[VG-2] interface GigabitEthernet 0/0

[VG-2-GigabitEthernet 0/0] ip address 2.2.3.1 255.255.255.0

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

[VG-2-GigabitEthernet 0/0] ipsec policy use1

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


第2章  配置IKE

2.1  IKE简介

在实施IPSec的过程中,可以使用IKE(Internet Key Exchange,因特网密钥交换)协议来建立SA,该协议建立在由ISAKMP(Internet Security Association and Key Management Protocol,互联网安全联盟和密钥管理协议)定义的框架上。IKE为IPSec提供了自动协商交换密钥、建立SA的服务,能够简化IPSec的使用和管理,大大简化IPSec的配置和维护工作。

IKE不是在网络上直接传输密钥,而是通过一系列数据的交换,最终计算出双方共享的密钥,并且即使第三者截获了双方用于计算密钥的所有交换数据,也不足以计算出真正的密钥。

2.1.1  IKE的安全机制

IKE具有一套自保护机制,可以在不安全的网络上安全地认证身份、分发密钥、建立IPSec SA。

1. 数据认证

数据认证有如下两个方面的概念:

l              身份认证:身份认证确认通信双方的身份。支持两种认证方法:预共享密钥(pre-shared-key)认证和基于PKI的数字签名(rsa-signature)认证。

l              身份保护:身份数据在密钥产生之后加密传送,实现了对身份数据的保护。

2. DH

DH(Diffie-Hellman,交换及密钥分发)算法是一种公共密钥算法。通信双方在不传输密钥的情况下通过交换一些数据,计算出共享的密钥。即使第三者(如黑客)截获了双方用于计算密钥的所有交换数据,由于其复杂度很高,不足以计算出真正的密钥。所以,DH交换技术可以保证双方能够安全地获得公有信息。

3. PFS

PFS(Perfect Forward Secrecy,完善的前向安全性)特性是一种安全特性,指一个密钥被破解,并不影响其他密钥的安全性,因为这些密钥间没有派生关系。对于IPSec,是通过在IKE阶段2协商中增加一次密钥交换来实现的。PFS特性是由DH算法保障的。

2.1.2  IKE的交换过程

IKE使用了两个阶段为IPSec进行密钥协商并建立SA:

(1)        第一阶段,通信各方彼此间建立了一个已通过身份认证和安全保护的通道,即建立一个ISAKMP SA。第一阶段有主模式(Main Mode)和野蛮模式(Aggressive Mode)两种IKE交换方法。

(2)        第二阶段,用在第一阶段建立的安全隧道为IPSec协商安全服务,即为IPSec协商具体的SA,建立用于最终的IP数据安全传输的IPSec SA。

图2-1 主模式交换过程

图2-1所示,第一阶段主模式的IKE协商过程中包含三对消息:

l              第一对叫SA交换,是协商确认有关安全策略的过程;

l              第二对消息叫密钥交换,交换Diffie-Hellman公共值和辅助数据(如:随机数),密钥材料在这个阶段产生;

l              最后一对消息是ID信息和认证数据交换,进行身份认证和对整个SA交换进行认证。

野蛮模式交换与主模式交换的主要差别在于,野蛮模式不提供身份保护,只交换3条消息。在对身份保护要求不高的场合,使用交换报文较少的野蛮模式可以提高协商的速度;在对身份保护要求较高的场合,则应该使用主模式。

2.1.3  IKE在IPSec中的作用

l              因为有了IKE,IPSec很多参数(如:密钥)都可以自动建立,降低了手工配置的复杂度。

l              IKE协议中的DH交换过程,每次的计算和产生的结果都是不相关的。每次SA的建立都运行DH交换过程,保证了每个SA所使用的密钥互不相关。

l              IPSec使用IP报文头中的序列号实现防重放。此序列号是一个32比特的值,此数溢出后,为实现防重放,SA需要重新建立,这个过程需要IKE协议的配合。

l              对安全通信的各方身份的的认证和管理,将影响到IPSec的部署。IPSec的大规模使用,必须有CA(Certificate Authority,认证中心)或其他集中管理身份数据的机构的参与。

l              IKE提供端与端之间动态认证。

2.1.4  IPSec与IKE的关系

图2-2 IPSec与IKE的关系图

图2-2中我们可以看出IKE和IPSec的关系:

l              IKE是UDP之上的一个应用层协议,是IPSec的信令协议;

l              IKE为IPSec协商建立SA,并把建立的参数及生成的密钥交给IPSec;

l              IPSec使用IKE建立的SA对IP报文加密或认证处理。

2.2  IKE配置任务简介

进行IKE配置之前,用户需要确定以下几个因素,以便配置过程的顺利进行。

l              确定IKE交换过程中算法的强度,即确定安全保护的强度(包括身份认证方法、加密算法、认证算法、DH组):不同的算法的强度不同,算法强度越高,受保护数据越难被破解,但消耗的计算资源越多。一般来说,密钥越长的算法强度越高。

l              确定通信双方预先约定的预共享密钥或所属的PKI域。关于PKI的配置,请参见“安全分册”中的“PKI配置”。

表2-1 IKE配置任务简介

配置任务

说明

详细配置

配置本端安全网关的名字

可选

2.3 

配置IKE安全提议

可选

2.4 

配置IKE对等体

必选

2.5 

配置Keepalive定时器

可选

2.6 

配置NAT Keepalive定时器

可选

2.7 

配置对等体存活检测

可选

2.8 

配置取消对next payload域的检查

可选

2.9 

 

2.3  配置本端安全网关的名字

当IKE协商的发起端使用安全网关名字进行协商时(即配置了id-type name),本端需要配置命令ike local-name

表2-2 配置本端安全网关名字

操作

命令

说明

进入系统视图

system-view

-

配置本端安全网关的名字

ike local-name name

可选

缺省情况下,使用设备名作为本端网关的名字

 

2.4  配置IKE安全提议

IKE安全提议定义了一套属性数据来描述IKE协商怎样进行安全通信。用户可以创建多条不同优先级的IKE提议,优先级由IKE提议的序号表示,数值越小,优先级越高。在进行IKE协商的时候,会从序号最小的IKE提议进行匹配,如果匹配则直接使用,否则继续查找。协商双方必须至少有一条匹配的IKE提议才能协商成功。匹配的原则是:协商双方具有相同的加密算法、认证方法、认证算法和DH组标识。存活时间是由协商发起方决定的,两端不需要匹配。匹配的IKE提议将被用来建立安全隧道。

缺省情况下,系统提供一条缺省的IKE提议。此缺省的IKE提议具有最低的优先级,具有缺省的加密算法、认证方法、认证算法、DH组标识和SA生存周期。

表2-3 配置IKE安全提议

操作

命令

说明

进入系统视图

system-view

-

创建IKE提议,并进入IKE提议视图

ike proposal proposal-number

必选

指定一个供IKE提议使用的加密算法

encryption-algorithm { 3des-cbc | aes-cbc [ key-length ] | des-cbc }

可选

缺省情况下,IKE提议使用CBC模式的56-bit DES加密算法

指定一个供IKE提议使用的认证方法

authentication-method { pre-share | rsa-signature }

可选

缺省情况下,IKE提议使用预共享密钥的认证方法

指定一个供IKE提议使用的认证算法

authentication-algorithm { md5 | sha }

可选

缺省情况下,IKE提议使用SHA1认证算法

配置IKE阶段1密钥协商时所使用的DH密钥交换参数

dh { group1 | group2 | group5 | group14 }

可选

缺省情况下,IKE阶段1密钥协商时所使用的DH密钥交换参数为group1,即768-bit的Diffie-Hellman组

指定一个IKE提议的ISAKMP SA存活时间

sa duration seconds

可选

缺省情况下,IKE提议的ISAKMP SA存活时间为86400秒

 

&  说明:

如果存活时间超时,ISAKMP SA将自动更新。因为IKE协商需要进行DH计算,在低端设备上需要经过较长的时间,为使ISAKMP SA的更新不影响安全通信,建议设置存活时间大于10分钟。

 

2.5  配置IKE对等体

表2-4 配置IKE对等体

操作

命令

说明

进入系统视图

system-view

-

创建一个IKE对等体,并进入IKE-Peer视图

ike peer peer-name

必选

配置IKE第一阶段的协商模式

exchange-mode { aggressive | main }

可选

缺省情况下,IKE阶段的协商模式使用主模式

配置采用预共享密钥认证时,所使用的预共享密钥

pre-shared-key key

二者必选其一

根据IKE提议使用的认证方法选择其中一个配置

配置采用数字签名认证时,证书所属的PKI域

certificate domain domain-name

选择IKE第一阶段的协商过程中使用ID的类型

id-type { ip | name }

可选

缺省情况下,使用IP地址作为IKE协商过程中使用的ID

配置本端及对端安全网关的名字

配置本端安全网关的名字

请参见2.3  配置本端安全网关的名字

可选

当IKE协商的发起端使用网关名字进行协商时(即配置了id-type name),发起端会发送自己名字给对端来标识自己的身份,而对端使用remote-name name来认证发起端,故此时name应与发起端网关上使用ike local-name命令所配的名字保持一致

配置对端安全网关的名字

remote-name name

配置本端及对端安全网关的IP地址

配置本端安全网关的IP地址

local-address ip-address

可选

当IKE协商的发起端使用地址进行协商时(即配置了id-type ip),发起端会发送自己的IP地址给对端来标识自己的身份,而对端使用remote-address ip-address来认证发起端,故此时ip-address应与发起端上local-address命令所配的IP地址保持一致

缺省情况下,IKE协商时的本端网关IP地址使用应用安全策略的接口的主地址

配置对端安全网关的IP地址

remote-address low-ip-address [ high-ip-address ]

配置IKE/IPSec的NAT穿越功能

nat traversal

可选

在IPSec/IKE组建的VPN隧道中,若存在NAT安全网关设备,则必须配置IPSec/IKE的NAT穿越功能

缺省情况下,没有配置NAT穿越功能

配置本端及对端安全网关的子网类型

配置本端安全网关子网类型

local { multi-subnet | single-subnet }

可选

缺省情况下,为单子网类型。这两条命令仅在与NETSCREEN的设备互通时使用

配置对端安全网关子网类型

peer { multi-subnet | single-subnet }

为IKE对等体应用一个DPD

dpd dpd-name

可选

缺省情况下,IKE对等体没有应用DPD

关于DPD的配置请参见“2.8  配置对等体存活检测

 

 

 

 

 

 

&  说明:

l      修改IPSec IKE的对等体配置之后,要执行命令reset ipsec sareset ike sa来清除原有的IPSec SA与IKE SA,否则重新协商SA会失败。

l      当安全隧道一端的IP地址为动态获取时,必须将IKE的协商模式配置为野蛮模式(aggressive)。

l      在预共享密钥认证的主模式下,只能使用IP地址类型的身份进行IKE协商,建立SA。在IKE野蛮模式下,不但可以使用IP地址类型的身份进行协商,也可以使用名字类型的身份进行IKE协商,建立SA。

l      当应用策略模板时,使用模板的一端配置的IKE协商模式可与对端的配置不一致,而与发起方的模式进行自动适配。但在两端都未应用策略模板的情况下,本端与对端配置的IKE协商模式必须保持一致。

l      一般情况下命令local-address不需要配置,只有当用户需要指定特殊的本端网关地址时(如指定loopback接口地址)才需要配置这条命令。

l      为了节省IP地址空间,ISP经常会在公网中加入NAT网关,以便于将私有IP地址分配给用户,此时可能会导致IPSec/IKE隧道的两端一端为公网地址,另一端为私网地址,所以必须在私网侧配置NAT穿越,保证隧道能够正常协商建立。

 

2.6  配置Keepalive定时器

IKE通过Keepalive报文维护ISAKMP SA的链路状态。一般在对端配置了等待Keepalive报文的超时时间后,必须在本端配置此Keepalive报文发送时间间隔。当对端在配置的超时时间内未收到此Keepalive报文时,如果该ISAKMP SA带有TIMEOUT标记,则删除该ISAKMP SA以及由其协商的IPSec SA;否则,将其标记为TIMEOUT。

表2-5 配置Keepalive定时器

操作

命令

说明

进入系统视图

system-view

-

配置ISAKMP SA向对端发送Keepalive报文的时间间隔

ike sa keepalive-timer interval seconds

必选

缺省情况下,ISAKMP SA不向对端发送Keepalive报文

配置ISAKMP SA等待对端发送Keepalive报文的超时时间

ike sa keepalive-timer timeout seconds

必选

缺省情况下,ISAKMP SA不向对端发送Keepalive报文

 

&  说明:

本端配置的Keepalive报文的等待超时时间要大于对端发送的时间间隔。由于网络中一般不会出现超过连续三次的报文丢失,所以,本端的超时时间可以配置为对端配置的Keepalive报文发送时间间隔的三倍。

 

2.7  配置NAT Keepalive定时器

由于在NAT网关上的NAT映射会话有一定存活时间,因此一旦安全隧道建立后如果长时间没有报文穿越,NAT会话表项会被删除,这样将导致在NAT外侧的隧道无法继续传输数据。为防止NAT表项老化,ISAKMP SA以一定的时间间隔向对端发送NAT Keepalive报文,以维持NAT会话的存活。

表2-6 配置NAT Keepalive定时器

操作

命令

说明

进入系统视图

system-view

-

配置ISAKMP SA向对端发送NAT Keepalive报文的时间间隔

ike sa nat-keepalive-timer seconds

必选

缺省情况下,ISAKMP SA不向对端发送NAT Keepalive报文

 

2.8  配置对等体存活检测

DPD(Dead Peer Detection,对等体存活检测)用于IPSec邻居状态的检测。启动DPD功能后,当接收端在触发DPD的时间间隔内收不到对端的IPSec加密报文时,能够触发DPD查询,主动向对端发送请求报文,对IKE对等体是否存在进行检测。

DPD和Keepalive的区别:

l              Keepalive定期发送查询;

l              DPD只在要发送加密报文前并且定时器到期时发送查询。

表2-7 配置对等体存活检测

操作

命令

说明

进入系统视图

system-view

-

创建一个DPD,并进入DPD视图

ike dpd dpd-name

必选

配置触发DPD的时间间隔

interval-time interval-time

可选

缺省情况下,触发DPD的时间间隔为10秒

配置DPD报文的重传时间间隔

time-out time-out

可选

缺省情况下,DPD报文的重传时间间隔为5秒

 

2.9  配置取消对next payload域的检查

next-payload域是在IKE协商报文(由几个payload组装而成)的最后一个payload的通用头中的一个域。按协议规定如果当前载荷处于消息的最后,该域必须为0,但某些公司的设备会将该域赋其它值,为增强设备的互通性,可以通过下面的配置取消IPSec协商过程对该域的检查。

表2-8 配置取消对next payload域的检查

操作

命令

说明

进入系统视图

system-view

-

配置在IPSec协商过程中取消对最后一个payload的next payload域的检查

ike next-payload check disabled

必选

缺省情况下,在IPSec协商过程中对next payload域进行检查

 

2.10  IKE显示和维护

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

在用户视图下执行reset命令可以删除IKE建立的安全隧道。

表2-9 IKE显示和维护

操作

命令

显示DPD配置的参数

display ike dpd [ dpd-name ]

显示IKE对等体配置的参数

display ike peer [ peer-name ]

显示当前IKE SA的信息

display ike sa [ verbose [ connection-id connection-id | remote-address remote-address ] ]

显示每个IKE提议配置的参数

display ike proposal

清除IKE建立的安全隧道

reset ike sa [ connection-id ]

 

2.11  IKE典型配置举例

2.11.1  IKE典型配置组网应用

1. 组网需求

l              Host A与Host B之间进行安全通信,在语音网关VG-1与语音网关VG-2之间使用IKE自动协商建立安全隧道。

l              在VG-1上配置一条IKE提议,其提议号为10,使用的认证算法为MD5。VG-2使用缺省的IKE提议。

l              为使用预共享密钥认证方法的提议配置预共享密钥。

2. 组网图

图2-3 IKE配置举例组网图

3. 配置步骤

(1)        配置语音网关VG-1

# 配置IKE 对等体。

<VG-1> system-view

[VG-1] ike peer peer

[VG-1-ike-peer-peer] pre-shared-key abcde

[VG-1-ike-peer-peer] remote-address 2.2.2.2

[VG-1-ike-peer-peer] quit

# 创建一条IKE提议10。

[VG-1] ike proposal 10

# 指定IKE提议使用的认证算法为MD5。

[VG-1-ike-proposal-10] authentication-algorithm md5

# 使用预共享密钥认证方法。

[VG-1-ike-proposal-10] authentication-method pre-share

# 配置ISAKMP SA的存活时间为5000秒。

[VG-1-ike-proposal-10] sa duration 5000

(2)        配置语音网关VG-2

# 配置IKE对等体。

<VG-2> system-view

[VG-2] ike peer peer

[VG-2-ike-peer-peer] pre-shared-key abcde

[VG-2-ike-peer-peer] remote-address 1.1.1.1

以上配置可以保证网关VG-1和保证网关VG-2之间进行IKE协商。由于VG-1配置的提议是proposal 10,使用authentication-algorithm md5,但VG-2上只有一条缺省的IKE提议,默认是authentication-algorithm sha。在进行提议匹配的时候,从优先级最高的提议开始,因为VG-2上没有和VG-1上提议10相匹配的提议,所以双方能够匹配的只有缺省的IKE提议。另外,在进行提议匹配的时候,存活时间是不用进行匹配的,它由IKE协商双方决定。

2.11.2  IKE野蛮模式及NAT穿越的组网应用

1. 组网需求

l              分公司LAN通过专线接入总公司内部网,VG-1的GigabitEthernet 0/0接口为固定IP地址,VG-2动态获取IP地址。

l              分公司自动获得的IP地址为私有IP地址,VG-1的GigabitEthernet 0/0接口的IP地址为公网地址,故VG-2上需要配置NAT穿越功能。

l              为了保证信息安全采用IPSec/IKE方式创建安全隧道。

&  说明:

为突出IKE野蛮模式及NAT穿越的配置,本例中的语音网关采用串口通过Internet互联,并将一端配置为自动获取IP地址。实际应用中的拨号方式及宽带接入方式,均可以参考此例。

 

2. 组网图

图2-4 IKE野蛮模式及NAT穿越的典型配置案例

3. 配置步骤

(1)        配置VG-1

# 配置本端语音网关设备的名字。

<VG-1> system-view

[VG-1] ike local-name VG-1

# 配置acl。

[VG-1] acl number 3101 match-order auto

[VG-1-acl-adv-3101] rule permit ip source any destination any

[VG-1-acl-adv-3101] quit

# 配置地址池。

[VG-1] ip pool 1 10.0.0.2 10.0.0.10

# 配置IKE对等体peer。

[VG-1] ike peer peer

[VG-1-ike-peer-peer] exchange-mode aggressive

[VG-1-ike-peer-peer] pre-shared-key abc

[VG-1-ike-peer-peer] id-type name

[VG-1-ike-peer-peer] remote-name VG-2

[VG-1-ike-peer-peer] quit

# 创建IPSec安全提议prop。

[VG-1] ipsec proposal prop

[VG-1-ipsec-proposal-prop] encapsulation-mode tunnel

[VG-1-ipsec-proposal-prop] transform esp

[VG-1-ipsec-proposal-prop] esp encryption-algorithm des

[VG-1-ipsec-proposal-prop] esp authentication-algorithm sha1

[VG-1-ipsec-proposal-prop] quit

# 创建安全策略policy并指定通过IKE协商建立SA。

[VG-1] ipsec policy policy 10 isakmp

# 配置安全策略policy引用IKE对等体peer。

[VG-1-ipsec-policy-isakmp-policy-10] ike-peer peer

# 配置安全策略policy引用访问控制列表3101。

[VG-1-ipsec-policy-isakmp-policy-10] security acl 3101

# 配置安全策略policy引用IPSec安全提议prop。

[VG-1-ipsec-policy-isakmp-policy-10] proposal prop

[VG-1-ipsec-policy-isakmp-policy-10] quit

# 进入GigabitEthernet 0/0并配置IP地址。

[VG-1] interface GigabitEthernet 0/0

[VG-1-GigabitEthernet 0/0] ip address 100.0.0.1 255.255.0.0

# 配置GigabitEthernet 0/0引用安全策略组policy。

[VG-1-Serial2/0] ipsec policy policy

[VG-1-Serial2/0] remote address pool 1

(2)        配置VG-2

# 配置本端语音网关设备的名字。

<VG-2> system-view

[VG-2] ike local-name VG-2

# 配置acl。

[VG-2] acl number 3101 match-order auto

[VG-2-acl-adv-3101] rule permit ip source any destination any

[VG-2-acl-adv-3101] quit

# 配置IKE对等体peer。

[VG-2] ike peer peer

[VG-2-ike-peer-peer] exchange-mode aggressive

[VG-2-ike-peer-peer] pre-shared-key abc

[VG-2-ike-peer-peer] id-type name

[VG-2-ike-peer-peer] remote-name VG-1

[VG-2-ike-peer-peer] remote-ip 10.0.0.1

[VG-2-ike-peer-peer] nat traversal

[VG-2-ike-peer-peer] quit

# 创建IPSec安全提议prop。

[VG-2] ipsec proposal prop

[VG-2-ipsec-proposal-prop] encapsulation-mode tunnel

[VG-2-ipsec-proposal-prop] transform esp

[VG-2-ipsec-proposal-prop] esp encryption-algorithm des

[VG-2-ipsec-proposal-prop] esp authentication-algorithm sha1

[VG-2-ipsec-proposal-prop] quit

# 创建安全策略policy并指定通过IKE协商建立SA。

[VG-2] ipsec policy policy 10 isakmp

# 配置安全策略policy引用IKE对等体peer。

[VG-2-ipsec-policy-isakmp-policy-10] ike-peer peer

# 配置安全策略policy引用访问控制列表3101。

[VG-2-ipsec-policy-isakmp-policy-10] security acl 3101

# 配置安全策略policy引用IPSec安全提议prop。

[VG-2-ipsec-policy-isakmp-policy-10] proposal prop

[VG-2-ipsec-policy-isakmp-policy-10] quit

# 进入GigabitEthernet 0/0并配置接口动态协商IP地址。

[VG-2] interface GigabitEthernet 0/0

[VG-2-GigabitEthernet 0/0] pppoe-client dial-bundle-number 1

# 配置拨号接口。

[VG-2] dialer-rule 1 ip permit

[VG-2] interface dialer 1

[VG-2-Dialer1] link-protocol ppp

[VG-2-Dialer1] ppp pap local-user aaa password simple aaa

[VG-2-Dialer1] mtu 1450

[VG-2-Dialer1] ip address ppp-negotiate

[VG-2-Dialer1] dialer user 12

[VG-2-Dialer1] dialer-group 1

[VG-2-Dialer1] dialer bundle 1

# 配置Dialer1引用安全策略组policy。

[VG-2- Dialer1] ipsec policy policy

2.12  常见错误配置举例

配置参数建立IPSec安全隧道时,可以打开IKE的Error调试开关,帮助我们查找配置问题。其命令是:

<VG> debugging ike error

2.12.1  非法用户身份信息

1. 故障现象

非法用户身份信息

2. 故障分析

用户身份信息是发起IPSec通信的用户用来标识自己的数据。在实际应用中我们可以通过用户身份标识实现对不同的数据流建立不同的安全隧道进行保护。目前我们是通过用户的IP地址和名字来标识用户。

可以看到调试信息:

got NOTIFY of type INVALID_ID_INFORMATION

或者

drop message from A.B.C.D due to notification type INVALID_ID_INFORMATION

3. 处理过程

检查协商两端接口上配置的安全策略中的ACL内容是否相容。建议用户将两端的ACL配置成互为镜像的。ACL镜像的含义请参考IPSec配置中“配置访问控制列表”内容。

2.12.2  提议不匹配

1. 故障现象

提议不匹配

2. 故障分析

可以看到调试信息:

got NOTIFY of type NO_PROPOSAL_CHOSEN

或者:

drop message from A.B.C.D due to notification type NO_PROPOSAL_CHOSEN

协商双方没有可以匹配的提议。

3. 处理过程

对于阶段1,检查IKE proposal是否有与对方匹配的。对于阶段2协商,检查双方接口上应用的IPSec安全策略的参数是否匹配,引用的IPSec安全提议的协议、加密算法和认证算法是否有匹配的。

2.12.3  无法建立安全隧道

1. 故障现象

无法建立安全隧道

2. 故障分析

实际应用中有时会发现在不稳定的网络状态下,安全隧道无法建立或者存在安全隧道却无法通信,而且检查双方的ACL的配置正确,也有匹配的提议。

这种情况一般是安全隧道建立好以后,有一方的设备重启造成的。解决办法:

3. 处理过程

l              使用display ike sa命令检查双方是否都已建立阶段1的SA。

l              使用display ipsec sa policy命令查看接口上的安全策略是否已建立了IPSec SA。

l              根据以上两步的结果查看,如果有一方存在的SA在另一方不存在的情况,使用reset ike sa命令清除错误存在的SA,重新发起协商。

2.12.4  ACL配置错误

1. 故障现象

ACL配置错误,导致协商成功之后数据流不通

2. 故障分析

多台设备之间先后建立不同的安全隧道,出现同一设备有不同对端的情况。若此设备不配置ACL规则,则分别由对端发起报文来与之建立保护粒度不同的安全隧道。由于安全隧道的优先级由它们创建的顺序决定,当这一设备的出方向报文首先匹配到较粗粒度的安全隧道时,将导致此设备无法与其它较细粒度对端互通。

3. 处理过程

为避免这种情况发生,当同一设备有不同对端时,建议用户在此设备上配置ACL来区别数据流,且与不同对端尽量避免配置有重复范围的ACL子规则。若需要有重复范围的子规则,应该将细粒度的子规则配置为较高的优先级。

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们