08-IPsec配置
本章节下载: 08-IPsec配置 (499.62 KB)
IPsec(IP Security,IP安全)是IETF制定的三层隧道加密协议,它为互联网上传输的数据提供了高质量的、基于密码学的安全保证,是一种传统的实现三层VPN(Virtual Private Network,虚拟专用网络)的安全技术。IPsec通过在特定通信方之间(例如两个安全网关之间)建立“通道”,来保护通信方之间传输的用户数据,该通道通常称为IPsec隧道。
IPsec协议不是一个单独的协议,它为IP层上的网络数据安全提供了一整套安全体系结构,包括安全协议AH(Authentication Header,认证头)和ESP(Encapsulating Security Payload,封装安全载荷)、IKE(Internet Key Exchange,互联网密钥交换)以及用于网络认证及加密的一些算法等。其中,AH协议和ESP协议用于提供安全服务,IKE协议用于密钥交换。关于IKE的详细介绍请参见“安全配置指导”中的“IKE”,本节不做介绍。
IPsec提供了两大安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行加密运算来保证数据的机密性,以防数据在传输过程中被窃听。
IPsec为IP层的数据报文提供的安全服务具体包括以下几种:
· 数据机密性(Confidentiality):发送方通过网络传输用户报文前,IPsec对报文进行加密。
· 数据完整性(Data Integrity):接收方对发送方发送来的IPsec报文进行认证,以确保数据在传输过程中没有被篡改。
· 数据来源认证(Data Origin Authentication):接收方认证发送IPsec报文的发送端是否合法。
· 抗重放(Anti-Replay):接收方可检测并拒绝接收过时或重复的IPsec报文。
IPsec可为IP层上的数据提供安全保护,其优点包括如下几个方面:
· 支持IKE(Internet Key Exchange,互联网密钥交换),可实现密钥的自动协商功能,减少了密钥协商的开销。可以通过IKE建立和维护SA(Security Association,安全联盟),简化了IPsec的使用和管理。
· 所有使用IP协议进行数据传输的应用系统和服务都可以使用IPsec,而不必对这些应用系统和服务本身做任何修改。
· 对数据的加密是以数据包为单位的,而不是以整个数据流为单位,这不仅灵活而且有助于进一步提高IP数据包的安全性,可以有效防范网络攻击。
IPsec包括AH和ESP两种安全协议,它们定义了对IP报文的封装格式以及可提供的安全服务。
· AH协议(IP协议号为51)定义了AH头在IP报文中的封装格式,如图1-3所示。AH可提供数据来源认证、数据完整性校验和抗重放功能,它能保护报文免受篡改,但不能防止报文被窃听,适合用于传输非机密数据。AH使用的认证算法有HMAC-MD5和HMAC-SHA1等。
· ESP协议(IP协议号为50)定义了ESP头和ESP尾在IP报文中的封装格式,如图1-3所示。ESP可提供数据加密、数据来源认证、数据完整性校验和抗重放功能。与AH不同的是,ESP将需要保护的用户数据进行加密后再封装到IP包中,以保证数据的机密性。ESP使用的加密算法有DES、3DES、AES等。同时,作为可选项,ESP还可以提供认证服务,使用的认证算法有HMAC-MD5和HMAC-SHA1等。虽然AH和ESP都可以提供认证服务,但是AH提供的认证服务要强于ESP。
在实际使用过程中,可以根据具体的安全需求同时使用这两种协议或仅使用其中的一种。设备支持的AH和ESP联合使用的方式为:先对报文进行ESP封装,再对报文进行AH封装。
IPsec支持两种封装模式:传输模式和隧道模式。
该模式下的安全协议主要用于保护上层协议报文,仅传输层数据被用来计算安全协议头,生成的安全协议头以及加密的用户数据(仅针对ESP封装)被放置在原IP头后面。若要求端到端的安全保障,即数据包进行安全传输的起点和终点为数据包的实际起点和终点时,才能使用传输模式。如图1-1所示,通常传输模式用于保护两台主机之间的数据。
该模式下的安全协议用于保护整个IP数据包,用户的整个IP数据包都被用来计算安全协议头,生成的安全协议头以及加密的用户数据(仅针对ESP封装)被封装在一个新的IP数据包中。这种模式下,封装后的IP数据包有内外两个IP头,其中的内部IP头为原有的IP头,外部IP头由提供安全服务的设备添加。在安全保护由设备提供的情况下,数据包进行安全传输的起点或终点不为数据包的实际起点和终点时(例如安全网关后的主机),则必须使用隧道模式。如图1-2所示,通常隧道模式用于保护两个安全网关之间的数据。
不同的安全协议及组合在隧道和传输模式下的数据封装形式如图1-3所示。
SA(Security Association,安全联盟)是IPsec的基础,也是IPsec的本质。IPsec在两个端点之间提供安全通信,这类端点被称为IPsec对等体。SA是IPsec对等体间对某些要素的约定,例如,使用的安全协议(AH、ESP或两者结合使用)、协议报文的封装模式(传输模式或隧道模式)、认证算法(HMAC-MD5、HMAC-SHA1或SM3)、加密算法(DES、3DES、AES或SM)、特定流中保护数据的共享密钥以及密钥的生存时间等。
SA是单向的,在两个对等体之间的双向通信,最少需要两个SA来分别对两个方向的数据流进行安全保护。同时,如果两个对等体希望同时使用AH和ESP来进行安全通信,则每个对等体都会针对每一种协议来构建一个独立的SA。
SA由一个三元组来唯一标识,这个三元组包括SPI(Security Parameter Index,安全参数索引)、目的IP地址和安全协议号。其中,SPI是用于标识SA的一个32比特的数值,它在AH和ESP头中传输。
SA有手工配置和IKE自动协商两种生成方式:
· 手工方式:通过命令行配置SA的所有信息。该方式的配置比较复杂,而且不支持一些高级特性(例如定时更新密钥),优点是可以不依赖IKE而单独实现IPsec功能。该方式主要用于需要安全通信的对等体数量较少,或小型静态的组网环境中。
· IKE自动协商方式:对等体之间通过IKE协议自动协商生成SA,并由IKE协议维护该SA。该方式的配置相对比较简单,扩展能力强。在中、大型的动态网络环境中,推荐使用IKE自动协商建立SA。
手工方式建立的SA永不老化。通过IKE协商建立的SA具有生存时间,当生存时间到达时,旧的SA会被删除。
IKE协商建立的SA在生存时间到达前会提前协商一个新的SA来替换旧的SA。从SA建立到启动新SA协商的这段时间是软超时时间。缺省情况下,系统会基于SA的生存时间使用默认算法计算一个软超时时间。系统允许配置一个软超时缓冲来控制软超时时间,计算公式为:软超时时间=生存时间-软超时缓冲。
IKE协商建立的SA有两种形式的生存时间:
· 基于时间的生存时间,定义了一个SA从建立到删除的时间;
· 基于流量的生存时间,定义了一个SA允许处理的最大流量。
可同时存在基于时间和基于流量两种方式的SA生存时间,只要其中一种到达,就会删除旧的SA。
IPsec使用的认证算法主要是通过杂凑函数实现的。杂凑函数是一种能够接受任意长度的消息输入,并产生固定长度输出的算法,该算法的输出称为消息摘要。IPsec对等体双方都会计算一个摘要,接收方将发送方的摘要与本地的摘要进行比较,如果二者相同,则表示收到的IPsec报文是完整未经篡改的,以及发送方身份合法。目前,IPsec使用基于HMAC(Hash-based Message Authentication Code,基于散列的消息鉴别码)的认证算法和SM3认证算法。HMAC认证算法包括HMAC-MD5和HMAC-SHA。其中,HMAC-MD5算法的计算速度快,而HMAC-SHA算法的安全强度高。
IPsec使用的加密算法属于对称密钥系统,这类算法使用相同的密钥对数据进行加密和解密。目前设备的IPsec使用的加密算法包括:
· DES:使用56比特的密钥对一个64比特的明文块进行加密。
· 3DES:使用三个56比特(共168比特)的密钥对明文块进行加密。
· AES:使用128比特、192比特或256比特的密钥对明文块进行加密。
· SM:使用128比特的密钥对明文块进行加密。
这些加密算法的安全性由高到低依次是:AES/SM、3DES、DES,安全性高的加密算法实现机制复杂,运算速度慢。
IPsec隧道可以保护匹配ACL(Access Control List,访问控制列表)的报文和IPv6路由协议报文。要实现建立IPsec隧道为两个IPsec对等体之间的数据提供安全保护,首先要配置和应用相应的安全策略,这里的安全策略包括IPsec安全策略和IPsec安全框架。有关IPsec安全策略和IPsec安全框架的详细介绍请参见“IPsec安全策略和IPsec安全框架”。
当IPsec对等体根据IPsec安全策略和IPsec安全框架识别出要保护的报文时,就建立一个相应的IPsec隧道并将其通过该隧道发送给对端。此处的IPsec隧道可以是提前手工配置或者由报文触发IKE协商建立。这些IPsec隧道实际上就是两个IPsec对等体之间建立的IPsec SA。由于IPsec SA是单向的,因此出方向的报文由出方向的SA保护,入方向的报文由入方向的SA来保护。对端接收到报文后,首先对报文进行分析、识别,然后根据预先设定的安全策略对报文进行不同的处理(丢弃,解封装,或直接转发)。
将引用了ACL的IPsec安全策略应用到接口上后,该接口上匹配ACL的报文将会受到IPsec保护。这里的接口包括串口、以太网接口等实际物理接口,以及Tunnel、Virtual Template等虚接口。
具体的保护机制如下:
· 只要接口发送的报文与该接口上应用的IPsec安全策略中的ACL的permit规则匹配,就会受到出方向IPsec SA的保护并进行封装处理。
· 接口接收到目的地址是本机的IPsec报文时,首先根据报文头里携带的SPI查找本地的入方向IPsec SA,由对应的入方向IPsec SA进行解封装处理。解封装后的IP报文若能与ACL的permit规则匹配上则采取后续处理,否则被丢弃。
目前,设备支持的数据流的保护方式包括以下三种:
· 标准方式:一条IPsec隧道保护一条数据流。ACL中的每一个规则对应的数据流分别由一条单独创建的IPsec隧道来保护。缺省采用该方式。
· 聚合方式:一条IPsec隧道保护ACL中定义的所有数据流。ACL中的所有规则对应的数据流只会由一条创建的IPsec隧道来保护。该方式仅用于和老版本的设备互通。
· 主机方式:一条IPsec隧道保护一条主机到主机的数据流。ACL中的每一个规则对应的不同主机之间的数据流分别由一条单独创建的IPsec隧道来保护。这种方式下,受保护的网段之间存在多条数据流的情况下,将会消耗更多的系统资源。
IPsec安全策略和IPsec安全框架用于在两个对等体之间建立IPsec隧道,保护两个对等体之间需要被安全防护的报文。
一个IPsec安全策略是若干具有相同名字、不同顺序号的IPsec安全策略表项的集合,IPsec安全策略被应用在接口上,用于控制对等体之间建立IPsec隧道,由ACL定义要保护的数据范围。IPsec安全策略主要定义了以下内容:
· 要保护的数据流的范围:由ACL定义。
· 对数据流实施何种保护:由IPsec安全提议定义。
· IPsec SA的生成方式:手工方式、IKE协商方式。
· 保护路径的起点或终点:即对等体的IP地址。
在同一个IPsec安全策略中,顺序号越小的IPsec安全策略表项优先级越高。当从一个接口发送数据时,接口将按照顺序号从小到大的顺序逐一匹配引用的IPsec安全策略中的每一条安全策略表项。如果数据匹配上了某一条安全策略表项引用的ACL,则停止匹配,并对其使用当前这条安全策略表项进行处理,即根据已经建立的IPsec SA或者触发IKE协商生成的IPsec SA对报文进行封装处理;如果数据与所有安全策略表项引用的ACL都不匹配,则直接被正常转发,IPsec不对数据加以保护。
应用了IPsec安全策略的接口收到数据报文时,对于目的地址是本机的IPsec报文,根据报文头里携带的SPI查找本地的IPsec SA,并根据匹配的IPsec SA对报文进行解封装处理;解封装后的IP报文若能与ACL的permit规则匹配上则采取后续处理,否则被丢弃。
IPsec安全策略除了可以应用到串口、以太网接口等实际物理接口上之外,还能够应用到Tunnel、Virtual Template等虚接口上,对GRE流量进行保护。
IPsec安全框架(IPsec Profile)与IPsec安全策略类似,但不需要使用ACL指定要保护的数据流的范围。一个IPsec安全框架由名字唯一确定。IPsec安全框架定义了对数据流进行IPsec保护所使用的安全提议,以及SA参数,应用于IPv6路由协议中。
RRI(Reverse Route Injection,反向路由注入)功能是一种自动添加到达IPsec VPN私网静态路由的机制,可以实现为受IPsec保护的流量自动添加静态路由的功能。在大规模组网中,这种自动添加静态路由的机制可以简化用户配置,减少在企业总部网关设备上配置静态路由的工作量,并且可以根据IPsec SA的创建和删除进行静态路由的动态增加和删除,增强了IPsec VPN的可扩展性。
如图1-4所示,某企业在企业分支与企业总部之间的所有流量通过IPsec进行保护,企业总部网关上需要配置静态路由,将总部发往分支的数据引到应用IPsec安全策略的接口上来。如果未配置RRI,当企业分支众多或者内部网络规划发生变化时,就需要同时增加或调整总部网关上的静态路由配置,该项工作量大且容易出现配置错误。
企业总部侧网关设备GW上配置RRI功能后,每一个IPsec隧道建立之后,GW都会自动为其添加一条相应的静态路由。通过RRI创建的路由表项可以在路由表中查询到,其目的地址为受保护的对端网络,下一跳地址为IPsec隧道的对端地址或指定的地址,它使得发往对端的流量被强制通过IPsec保护并转发。
RRI创建的静态路由和手工配置的静态路由一样,可以向内网设备进行广播,允许内网设备选择合适的路由对IPsec VPN流量进行转发。也可以为RRI创建的静态路由配置优先级,从而更灵活地应用路由管理策略。例如:当设备上还有其他方式配置到达相同目的地的路由时,如果为它们指定相同的优先级,则可实现负载分担,如果指定不同的优先级,则可实现路由备份。同时,还可以通过修改静态路由的Tag值,使得设备能够在路由策略中根据Tag值对这些RRI生成的静态路由进行灵活的控制。
图1-4 IPsec VPN总部-分支组网图
与IPsec相关的协议规范有:
· RFC 2401:Security Architecture for the Internet Protocol
· RFC 2402:IP Authentication Header
· RFC 2406:IP Encapsulating Security Payload
通常情况下,由于IKE协议采用UDP的500端口进行通信,IPsec的AH和ESP协议分别使用51或50号协议来工作,因此为保障IKE和IPsec的正常运行,需要确保应用了IKE和IPsec配置的接口上没有禁止掉属于以上端口和协议的流量。
在传输模式下,设备通过ACL来识别由IPsec隧道保护的流量时,受保护的流量只能是源地址或目的地址为本机的报文。例如:可配置IPsec隧道对设备发送给日志服务器的日志信息进行保护。ACL中定义的匹配转发流量的规则不生效,IPsec不会对设备转发的任何数据流和语音流进行保护。
IPsec隧道保护匹配ACL的报文配置任务如下:
(1) 配置ACL
(2) 配置IPsec安全提议
(3) 配置IPsec安全策略
请选择以下一项任务进行配置:
(4) 在接口上应用IPsec安全策略
(5) (可选)配置IPsec隧道保护匹配ACL的报文的辅助功能
(6) (可选)配置IPsec日志和告警功能
IPsec通过配置ACL来定义需要保护的数据流。在IPsec应用中,ACL规则中的permit关键字表示与之匹配的流量需要被IPsec保护,而deny关键字则表示与之匹配的流量不需要保护。一个ACL中可以配置多条规则,首个与数据流匹配上的规则决定了对该数据流的处理方式。
在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报文的ACL检查功能处于关闭状态,则解封装后的IP报文不与ACL匹配,直接进行后续处理。
需要注意的是:
· 仅对确实需要IPsec保护的数据流配置permit规则,避免盲目地使用关键字any。这是因为,在一个permit规则中使用any关键字就代表所有指定范围上出方向的流量都需要被IPsec保护,所有对应入方向上被IPsec保护的报文将被接收并处理,入方向上未被IPsec保护的报文都将被丢弃。这种情况下,一旦入方向收到的某流量是未被IPsec保护的,那么该流量就会被丢弃,这会造成一些本不需要IPsec处理的流量丢失,影响正常的业务传输。
· 当一个安全策略下有多条优先级不同的安全策略表项时,合理使用deny规则。避免本应该与优先级较低的安全策略表项的ACL permit规则匹配而被IPsec保护的出方向报文,因为先与优先级较高的安全策略表项的ACL deny规则匹配上,而没有被IPsec保护,继而在接收端被丢弃。
下面是一个deny规则的错误配置示例。Device A和Device B上分别配置如下所示的IPsec安全策略,当Device A连接的1.1.2.0/24网段用户访问Device B连接的3.3.3.0/24网段时,报文在Device A的应用了IPsec安全策略testa的出接口上优先与顺序号为1的安全策略表项匹配,并匹配上了IPv4 ACL 3000的rule 1,因此Device A认为它不需要IPsec保护,而未进行IPsec封装。该报文到达Device B后,在应用了IPsec安全策略testb的入接口上与IPv4 ACL 3001的rule 0匹配,并被判断为应该受IPsec保护但未被保护的报文而丢弃。
Device A上的关键配置如下:
acl advanced 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 advanced 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 testa 1 isakmp <---优先级高的安全策略表项
security acl 3000
ike-profile aa
transform-set 1
#
ipsec policy testa 2 isakmp <---优先级低的安全策略表项
security acl 3001
ike-profile bb
transform-set 1
Device B上的关键配置如下:
acl advanced 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 testb 1 isakmp
security acl 3001
ike-profile aa
transform-set 1
为保证Device A连接的1.1.2.0/24网段用户访问Device B连接的3.3.3.0/24网段的报文可被正确处理,建议将Device A上的IPv4 ACL 3000中的deny规则删除。
为保证IPsec对等体上能够成功建立SA,建议两端设备上用于IPsec的ACL配置为镜像对称,即保证两端定义的要保护的数据流范围的源和目的尽量对称。例如,图1-5中Device A和Device B上的ACL配置都是完全镜像对称的,因此用于保护主机Host A与主机Host C之间、子网Network 1与子网Network 2之间流量的SA均可成功建立。
若IPsec对等体上的ACL配置非镜像,那么只有在一端的ACL规则定义的范围是另外一端的子集时,SA协商可以成功。如图1-6所示,Device A上的ACL规则允许的范围(Host A->Host C)是Device B上ACL规则允许的范围(Network 2->Network 1)的子集。
需要注意的是,在这种ACL配置下,并不是任何一端发起的SA协商都可以成功,仅当保护范围小(细粒度)的一端向保护范围大(粗粒度)的一端发起的协商才能成功,反之则SA协商失败。这是因为,协商响应方要求协商发起方发送过来的数据必须在响应方可以接受的范围之内。其结果就是,从细粒度一端向粗粒度一端发送报文时,细粒度侧设备发起的SA协商可以成功,例如Host A->Host C;从粗粒度一方向细粒度一方发送报文时,粗粒度侧设备发起的SA协商不能成功,例如Host C->Host A、Host C->Host B、Host D->Host A等。
IPsec安全提议是IPsec安全策略的一个组成部分,它用于定义IPsec需要使用的安全协议、加密/认证算法以及封装模式,为IPsec协商SA提供各种安全参数。
· 可对IPsec安全提议进行修改,但对已协商成功的IPsec SA,新修改的安全提议并不起作用,即仍然使用原来的安全提议,只有新协商的SA使用新的安全提议。若要使修改对已协商成功的IPsec SA生效,则需要执行reset ipsec sa命令。
· 传输模式必须应用于数据流的源地址和目的地址与IPsec隧道两端地址相同的情况下;若要配置应用于IPv6路由协议的手工方式的安全框架,则该安全框架引用的安全提议仅支持传输模式的封装模式。
· IKEv1协商时发起方的PFS强度必须大于或等于响应方的PFS强度,否则协商会失败。IKEv2不受该限制。不配置PFS特性的一端,按照对端的PFS特性要求进行IKE协商。
· 可以使用命令为一个安全协议指定多个认证或者加密算法,算法优先级以配置顺序为准。
· 若要配置应用于IPsec over IPv4隧道和IPsec over IPv6隧道接口上的IPsec安全框架或IPsec安全策略,则该IPsec安全框架或IPsec安全策略引用的安全提议仅支持隧道模式的封装。即使安全提议下配置的封装模式为传输模式,仍然使用隧道模式封装,传输模式的配置命令不生效。
· 以下这些算法只适用于IKEv2协商:
表1-1 IKEv2协商适用的算法
参数 |
取值 |
加密算法 |
aes-ctr-128/aes-ctr-192/aes-ctr-256 camellia-cbc-128/camellia-cbc-192/camellia-cbc-256 gmac-128/gmac-192/gmac-256/ gcm-128/gcm-192/gcm-256 |
认证算法 |
aes-xcbc-mac |
PFS(Perfect Forward Secrecy,完善的前向安全性)算法 |
dh-group19 dh-group20 |
(1) 进入系统视图。
system-view
(2) 创建IPsec安全提议,并进入IPsec安全提议视图。
ipsec transform-set transform-set-name
(3) 配置IPsec安全提议采用的安全协议。
protocol { ah | ah-esp | esp }
缺省情况下,采用ESP安全协议。
(4) 配置协议(esp或ah-esp)采用的加密算法。
esp encryption-algorithm { 3des-cbc | aes-cbc-128 | aes-cbc-192 | aes-cbc-256 | aes-ctr-128 | aes-ctr-192 | aes-ctr-256 | camellia-cbc-128 | camellia-cbc-192 | camellia-cbc-256 | des-cbc | gmac-128 | gmac-192 | gmac-256 | gcm-128 | gcm-192 | gcm-256 | null | sm1-cbc-128 | sm4-cbc } *
缺省情况下,ESP协议没有采用任何加密算法。
非ESP协议,请忽略本步骤。
(5) 配置协议(esp或ah-esp)采用的认证算法。
esp authentication-algorithm { aes-xcbc-mac | md5 | sha1 | sha256 | sha384 | sha512 | sm3 } *
缺省情况下,ESP协议没有采用任何认证算法。
非ESP协议,请忽略本步骤。
aes-xcbc-mac认证算法仅适用于IKEv2协商。
(6) 配置协议(ah或ah-esp)采用的认证算法。
ah authentication-algorithm { aes-xcbc-mac | md5 | sha1 | sha256 | sha384 | sha512 | sm3 } *
缺省情况下,AH协议没有采用任何认证算法。
采用ESP协议时,请忽略本步骤。
aes-xcbc-mac认证算法仅适用于IKEv2协商。
(7) 配置安全协议对IP报文的封装模式。
encapsulation-mode { transport | tunnel }
缺省情况下,安全协议采用隧道模式对IP报文进行封装。
(8) (可选)配置使用IPsec安全策略发起协商时使用PFS特性。
pfs { dh-group1 | dh-group2 | dh-group5 | dh-group14 | dh-group24 | dh-group19 | dh-group20 }
缺省情况下,使用IPsec安全策略发起协商时不使用PFS特性。
有关PFS(Perfect Forward Secrecy,完善的前向安全性)功能的详细介绍请参见“安全配置指导”中的“IKE”。
(9) (可选)开启ESN功能。
esn enable [ both ]
缺省情况下,ESN功能处于关闭状态。
为保证SA能够成功生成,IPsec隧道两端的配置必须符合以下要求:
· IPsec安全策略引用的IPsec安全提议应采用相同的安全协议、加密/认证算法和报文封装模式。
· 当前端点的IPv4对端地址应与对端应用IPsec安全策略的接口的主IPv4地址保持一致;当前端点的IPv6对端地址应与对端应用IPsec安全策略的接口的第一个IPv6地址保持一致。
· 应分别设置inbound和outbound两个方向的IPsec SA参数,且保证每一个方向上的IPsec SA的唯一性:对于出方向IPsec SA,必须保证三元组(对端IP地址、安全协议、SPI)唯一;对于入方向IPsec SA,必须保证SPI唯一。
· 本端和对端IPsec SA的SPI及密钥必须是完全匹配的。即,本端的入方向IPsec SA的SPI及密钥必须和对端的出方向IPsec SA的SPI及密钥相同;本端的出方向IPsec SA的SPI及密钥必须和对端的入方向IPsec SA的SPI及密钥相同。
· 两端IPsec SA使用的密钥应当以相同的方式输入,即如果一端以字符串方式输入密钥,另一端必须也以字符串方式输入密钥。如果先后以不同的方式输入了密钥,则最后设定的密钥有效。
· 对于ESP协议,以字符串方式输入密钥时,系统会自动地同时生成认证算法的密钥和加密算法的密钥。
(1) 进入系统视图。
system-view
(2) 创建一条手工方式的IPsec安全策略,并进入IPsec安全策略视图。
ipsec { ipv6-policy | policy } policy-name seq-number manual
(3) (可选)配置IPsec安全策略的描述信息。
description text
缺省情况下,无描述信息。
(4) 指定IPsec安全策略引用的ACL。
security acl [ ipv6 ] { acl-number | name acl-name }
缺省情况下,IPsec安全策略没有引用ACL。
一条安全策略只能引用一个ACL。
(5) 指定IPsec安全策略所引用的安全提议。
transform-set transform-set-name
缺省情况下,IPsec安全策略没有引用IPsec安全提议。
一条手工方式的IPsec安全策略只能引用一个安全提议。
(6) 指定IPsec隧道的对端IP地址。
remote-address { ipv4-address | ipv6 ipv6-address }
缺省情况下,未指定IPsec隧道的对端地址。
(7) 配置IPsec SA的入方向SPI。
sa spi inbound { ah | esp } spi-number
缺省情况下,不存在IPsec SA的入方向SPI。
(8) 配置IPsec SA的出方向SPI。
sa spi outbound { ah | esp } spi-number
缺省情况下,不存在IPsec SA的出方向SPI。
(9) 配置IPsec SA使用的密钥。
¡ 配置AH协议的认证密钥(以十六进制方式输入)。
sa hex-key authentication { inbound | outbound } ah { cipher | simple } string
¡ 配置AH协议的认证密钥(以字符串方式输入)。
sa string-key { inbound | outbound } ah { cipher | simple } string
¡ 配置ESP协议的认证密钥和加密密钥(以字符串方式输入)。
sa string-key { inbound | outbound } esp { cipher | simple } string
¡ 配置ESP协议的认证密钥(以十六进制方式输入)。
sa hex-key authentication { inbound | outbound } esp { cipher | simple } string
¡ 配置ESP协议的加密密钥(以十六进制方式输入)。
sa hex-key encryption { inbound | outbound } esp { cipher | simple } string
缺省情况下,未配置IPsec SA使用的密钥。
根据本安全策略引用的安全提议中指定的安全协议,配置AH协议或ESP协议的密钥,或者两者都配置。
IKE协商方式的IPsec安全策略有以下两种配置方式:
· 直接配置IPsec安全策略:在安全策略视图中定义需要协商的各参数;
· 引用IPsec安全策略模板配置IPsec安全策略:首先在IPsec安全策略模板中定义需要协商的各参数,然后通过引用IPsec安全策略模板创建一条IPsec安全策略。应用了该类IPsec安全策略的接口不能发起协商,仅可以响应远端设备的协商请求。由于IPsec安全策略模板中未定义的可选参数由发起方来决定,而响应方会接受发起方的建议,因此这种方式适用于通信对端(例如对端的IP地址)未知的情况下,允许这些对端设备向本端设备主动发起协商。
IPsec安全策略模板与直接配置的IKE协商方式的IPsec安全策略中可配置的参数类似,但是配置较为简单,除了IPsec安全提议和IKE profile之外的其它参数均为可选。应用了引用IPsec安全策略模板配置的IPsec安全策略的接口不能发起协商,仅可以响应远端设备的协商请求。IPsec安全策略模板中未定义的可选参数由发起方来决定,而响应方会接受发起方的建议,例如IPsec安全策略模板下的用于定义保护对象范围的ACL是可选的,该参数在未配置的情况下,相当于支持最大范围的保护,即完全接受协商发起端的ACL设置。
IPsec隧道两端的配置必须符合以下要求:
· IPsec安全策略引用的IPsec安全提议中应包含相同的安全协议、认证/加密算法和报文封装模式。
· IPsec安全策略引用的IKE profile参数相匹配。
· 一条IKE协商方式的IPsec安全策略中最多可以引用六个IPsec安全提议。IKE协商过程中,IKE将会在隧道两端配置的IPsec安全策略中查找能够完全匹配的IPsec安全提议。如果IKE在两端找不到完全匹配的IPsec安全提议,则SA不能协商成功,需要被保护的报文将被丢弃。
· IKE协商的发起方必须配置IPsec隧道的对端地址,响应方可选配,且当前端点的对端地址与对端的本端地址应保持一致。
对于IKE协商建立的IPsec SA,遵循以下原则:
· 采用隧道两端设置的IPsec SA生存时间中较小者。
· 可同时存在基于时间和基于流量两种方式的IPsec SA生存时间,只要到达指定的时间或指定的流量,IPsec SA就会老化。
· 一条IPsec安全策略只能引用一个IKEv1 profile或者一个IKEv2 profile。同时引用时IKEv2 profile的优先级高于IKEv1 profile的优先级。
IKEv1 profile的相关配置请参见“安全配置指导”中的“IKE”。
IKEv2 profile的相关配置请参见“安全配置指导”中的“IKEv2”。
(1) 进入系统视图。
system-view
(2) 创建一条IKE协商方式的IPsec安全策略,并进入IPsec安全策略视图。
ipsec { ipv6-policy | policy } policy-name seq-number isakmp
(3) (可选)配置IPsec安全策略的描述信息。
description text
缺省情况下,无描述信息。
(4) (可选)配置触发建立IPsec SA的模式。
sa trigger-mode { auto | traffic-based }
缺省情况下,触发建立IPSec SA的模式为流量触发。
(5) 指定IPsec安全策略引用的ACL。
security acl [ ipv6 ] { acl-number | name acl-name } [ aggregation | per-host ]
缺省情况下,IPsec安全策略没有指定ACL。
一条IPsec安全策略只能引用一个ACL。
(6) 指定IPsec安全策略引用的IPsec安全提议。
transform-set transform-set-name&<1-6>
缺省情况下,IPsec安全策略没有引用IPsec安全提议。
(7) 指定IPsec安全策略引用的IKE profile或者IKEv2 profile。
¡ 指定IPsec安全策略引用的IKE profile。
ike-profile profile-name
缺省情况下,IPsec安全策略没有引用IKE profile。
¡ 指定IPsec安全策略引用的IKEv2 profile。
ikev2-profile profile-name
缺省情况下,IPsec安全策略没有引用IKEv2 profile。
(8) 指定IPsec隧道的本端IP地址。
local-address { ipv4-address | ipv6 ipv6-address }
缺省情况下,IPsec隧道的本端IPv4地址为应用IPsec安全策略的接口的主IPv4地址,本端IPv6地址为应用IPsec安全策略的接口的第一个IPv6地址。
此处指定的IPsec隧道本端IP地址必须与IKE使用的标识本端身份的IP地址一致。
(9) 指定IPsec隧道的对端IP地址。
remote-address { [ ipv6 ] host-name | ipv4-address | ipv6 ipv6-address }
缺省情况下,未指定IPsec隧道的对端IP地址。
(10) (可选)配置IPsec SA的生存时间或空闲超时时间。
¡ 配置IPsec SA的生存时间。
sa duration { time-based seconds | traffic-based kilobytes }
缺省情况下,IPsec安全策略下的IPsec SA生存时间为当前全局的IPsec SA生存时间。
¡ 配置IPsec SA的软超时缓冲参数。
sa soft-duration buffer { time-based seconds | traffic-based kilobytes }
缺省情况下,未配置软超时缓冲参数。
¡ 配置IPsec SA的空闲超时时间。
sa idle-time seconds
缺省情况下,IPsec安全策略下的IPsec SA空闲超时时间为当前全局的IPsec SA空闲超时时间。
(11) (可选)开启TFC(Traffic Flow Confidentiality)填充功能。
tfc enable
缺省情况下,TFC填充功能处于关闭状态。
本功能仅适用于IKEv2协商的IPsec SA。
(12) 启用IPsec安全策略表项。
policy enable
缺省情况下,IPsec安全策略表项处于启用状态。
(1) 进入系统视图。
system-view
(2) 创建一个IPsec安全策略模板,并进入IPsec安全策略模板视图。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
(3) (可选)配置IPsec安全策略模板的描述信息。
description text
缺省情况下,无描述信息。
(4) (可选)指定IPsec安全策略模板引用的ACL。
security acl [ ipv6 ] { acl-number | name acl-name } [ aggregation | per-host ]
缺省情况下,IPsec安全策略模板没有指定ACL。
一条IPsec安全策略模板只能引用一个ACL。
(5) 指定IPsec安全策略模板引用的安全提议。
transform-set transform-set-name&<1-6>
缺省情况下IPsec安全策略模板没有引用IPsec安全提议。
(6) 指定IPsec安全策略模板引用的IKE profile或者IKEv2 profile。
¡ 指定IPsec安全策略模板引用的IKE profile。
ike-profile profile-name
缺省情况下,IPsec安全策略模板没有引用IKE profile。
不能引用已经被其它IPsec安全策略或IPsec安全策略模板引用的IKE profile。
¡ 指定IPsec安全策略模板引用的IKEv2 profile。
ikev2-profile profile-name
缺省情况下,IPsec安全策略模板没有引用IKEv2 profile。
(7) 指定IPsec隧道的本端IP地址和对端IP地址。
¡ 指定IPsec隧道的本端IP地址。
local-address { ipv4-address | ipv6 ipv6-address }
缺省情况下,IPsec隧道的本端IPv4地址为应用IPsec安全策略的接口的主IPv4地址,本端IPv6地址为应用IPsec安全策略的接口的第一个IPv6地址。
IPsec隧道本端IP地址必须与IKE对等体使用的标识本端身份的IP地址一致。
¡ 指定IPsec隧道的对端IP地址。
remote-address { [ ipv6 ] host-name | ipv4-address | ipv6 ipv6-address }
缺省情况下,未指定IPsec隧道的对端IP地址。
(8) (可选)配置IPsec SA的生存时间或者空闲超时时间。
¡ 配置IPsec SA的生存时间。
sa duration { time-based seconds | traffic-based kilobytes }
缺省情况下,IPsec安全策略模板下的IPsec SA生存时间为当前全局的IPsec SA生存时间。
¡ 配置IPsec SA的空闲超时时间。
sa idle-time seconds
缺省情况下,IPsec安全策略模板下的IPsec SA空闲超时时间为当前全局的IPsec SA空闲超时时间。
(9) (可选)开启TFC(Traffic Flow Confidentiality)填充功能。
tfc enable
缺省情况下,TFC填充功能处于关闭状态。
本功能仅适用于IKEv2协商的IPsec SA。
(10) 启用IPsec安全策略模板表项。
policy enable
缺省情况下,IPsec安全策略模板表项处于启用状态。
(11) 退回系统视图。
quit
(12) 引用安全策略模板创建一条IKE协商方式的安全策略。
ipsec { ipv6-policy | policy } policy-name seq-number isakmp template template-name
为使定义的IPsec SA生效,应在每个要加密的数据流和要解密的数据流所在接口上应用一个IPsec安全策略,以对数据进行保护。当取消IPsec安全策略在接口上的应用后,此接口便不再具有IPsec的安全保护功能。
在将IKE方式的IPsec安全策略应用到多个接口上时,请使用共享源接口的IPsec安全策略;手工方式的IPsec安全策略只能应用到一个接口上。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 应用IPsec安全策略。
ipsec apply { ipv6-policy | policy } policy-name
缺省情况下,接口上没有应用IPsec安全策略。
一个接口下最多只能应用一个IPv4/IPv6类型的IPsec安全策略,但可以同时应用一个IPv4类型的IPsec安全策略和一个IPv6类型的IPsec安全策略。
在隧道模式下,接口入方向上解封装的IPsec报文的内部IP头有可能不在当前IPsec安全策略引用的ACL的保护范围内,如网络中一些恶意伪造的攻击报文就可能有此问题,所以设备需要重新检查解封装后的报文的IP头是否在ACL保护范围内。开启该功能后可以保证ACL检查不通过的报文被丢弃,从而提高网络安全性。
(1) 进入系统视图。
system-view
(2) 开启解封装后IPsec报文的ACL检查功能。
ipsec decrypt-check enable
缺省情况下,解封装后IPsec报文的ACL检查功能处于开启状态。
重放报文,通常是指设备再次接收到的已经被IPsec处理过的报文。IPsec通过滑动窗口(抗重放窗口)机制检测重放报文。AH和ESP协议报文中带有序列号,如果收到的报文的序列号与已经解封装过的报文序列号相同,或收到的报文的序列号出现得较早,即已经超过了抗重放窗口的范围,则认为该报文为重放报文。
对重放报文的解封装无意义,并且解封装过程涉及密码学运算,会消耗设备大量的资源,导致业务可用性下降,造成了拒绝服务攻击。通过开启IPsec抗重放检测功能,将检测到的重放报文在解封装处理之前丢弃,可以降低设备资源的消耗。
在某些特定环境下,业务数据报文的接收顺序可能与正常的顺序差别较大,虽然并非有意的重放攻击,但会被抗重放检测认为是重放报文,导致业务数据报文被丢弃,影响业务的正常运行。因此,这种情况下就可以通过关闭IPsec抗重放检测功能来避免业务数据报文的错误丢弃,也可以通过适当地增大抗重放窗口的宽度,来适应业务正常运行的需要。
· 只有IKE协商的IPsec SA才能够支持抗重放检测,手工方式生成的IPsec SA不支持抗重放检测。因此该功能开启与否对手工方式生成的IPsec SA没有影响。
· 使用较大的抗重放窗口宽度会引起系统开销增大,导致系统性能下降,与抗重放检测用于降低系统在接收重放报文时的开销的初衷不符,因此建议在能够满足业务运行需要的情况下,使用较小的抗重放窗口宽度。
· IPsec抗重放检测功能缺省是开启的,是否关闭该功能请根据实际需求慎重使用。
(1) 进入系统视图。
system-view
(2) 开启IPsec抗重放检测功能。
ipsec anti-replay check
缺省情况下,IPsec抗重放检测功能处于开启状态。
(3) 配置IPsec抗重放窗口宽度。
ipsec anti-replay window width
缺省情况下,IPsec抗重放窗口宽度为64。
为了提高网络的可靠性,通常核心设备到ISP(Internet Service Provider,互联网服务提供商)都会有两条出口链路,它们互为备份或者为负载分担的关系。由于在不同的接口上应用安全策略时,各个接口将分别协商生成IPsec SA。因此,则在主备链路切换时,接口状态的变化会触发重新进行IKE协商,从而导致数据流的暂时中断。这种情况下,两个接口上的IPsec SA就需要能够平滑切换。
通过将一个IPsec安全策略与一个源接口绑定,使之成为共享源接口IPsec安全策略,可以实现主备链路切换时受IPsec保护的业务流量不中断。具体机制为:应用相同IPsec安全策略的多个物理接口共同使用一个指定的源接口(称为共享源接口)协商IPsec SA,当这些物理接口对应的链路切换时,如果该源接口的状态不变化,就不会删除该接口协商出的IPsec SA,也不需要重新触发IKE协商,各物理接口继续使用已有的IPsec SA保护业务流量。
· 只有IKE协商方式的IPsec安全策略才能配置为IPsec共享源接口安全策略。
· 一个IPsec安全策略只能与一个源接口绑定。
· 一个源接口可以同时与多个IPsec安全策略绑定。
· 删除与共享源接口IPsec安全策略绑定的共享源接口时,将使得该共享源接口IPsec安全策略恢复为普通IPsec安全策略。
· 若一个IPsec安全策略为共享源接口IPsec安全策略,但该IPsec安全策略中未指定隧道本端地址,则IKE将使用共享源接口地址作为IPsec隧道的本端地址进行IKE协商;如果共享源接口IPsec安全策略中指定了隧道本端地址,则将使用指定的隧道本端地址进行IKE协商。
(1) 进入系统视图。
system-view
(2) 配置IPsec安全策略为IPsec共享源接口安全策略。
ipsec { ipv6-policy | policy } policy-name local-address interface-type interface-number
缺省情况下,IPsec安全策略不是共享源接口IPsec安全策略,即未将IPsec安全策略与任何源接口绑定。
当在接口上同时应用了IPsec安全策略与QoS策略时,缺省情况下,QoS使用封装后报文的外层IP头信息来对报文进行分类。但如果希望QoS基于被封装报文的原始IP头信息对报文进行分类,则需要配置QoS预分类功能来实现。
· 若在接口上同时配置IPsec和QoS,同一个IPsec SA保护的数据流如果被QoS分类进入不同队列,会导致部分报文发送乱序。由于IPsec具有抗重放功能,IPsec入方向上对于抗重放窗口之外的报文会进行丢弃,从而导致丢包现象。因此当IPsec与QoS配合使用时,必须保证IPsec分类与QoS分类规则配置保持一致。
· IPsec的分类规则完全由引用的ACL规则确定,QoS策略及QoS分类的相关介绍请参见“QoS配置指导”中的“QoS”。
(1) 进入系统视图。
system-view
(2) 进入IPsec安全策略视图或者IPsec安全策略模板视图。
¡ 进入IPsec安全策略视图。
ipsec { ipv6-policy | policy } policy-name seq-number [ isakmp | manual ]
¡ 进入IPsec安全策略模板视图。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
(3) 开启QoS预分类功能。
qos pre-classify
缺省情况下,QoS预分类功能处于关闭状态。
开启RRI功能时,会删除相应IPsec安全策略协商出的所有IPsec SA。当有新的流量触发生成IPsec SA时,根据新协商的IPsec生成路由信息。
关闭RRI功能时,会删除相应IPsec安全策略协商出的所有IPsec SA。
RRI生成的静态路由随IPsec SA的创建而创建,随IPsec SA的删除而删除。
RRI功能在隧道模式和传输模式下都支持。
若修改了RRI生成的静态路由的优先级或Tag属性,则会删除由相应IPsec安全策略建立的IPsec SA和已添加的静态路由,修改后的属性值在下次生成IPsec SA且添加静态路由时生效。
在RRI功能开启的情况下,对于与未指定目的IP地址的ACL规则相匹配的报文流触发协商出的IPsec SA,设备并不会为其自动生成一条静态路由。因此,如果IPsec安全策略/IPsec安全策略模板引用了此类型的ACL规则,则需要通过手工配置一条到达对端受保护网络的静态路由。
(1) 进入系统视图。
system-view
(2) 进入IPsec安全策略视图或者IPsec安全策略模板视图。
¡ 进入IPsec安全策略视图。
ipsec { policy | ipv6-policy } policy-name seq-number isakmp
¡ 进入IPsec安全策略模板视图。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
(3) 开启IPsec反向路由注入功能。
reverse-route [ next-hop [ ipv6 ] ip-address ] dynamic
缺省情况下,IPsec反向路由注入功能处于关闭状态。
(4) (可选)配置IPsec反向路由功能生成的静态路由的优先级。
reverse-route preference number
缺省情况下,IPsec反向路由注入功能生成的静态路由的优先级为60。
(5) (可选)配置IPsec反向路由功能生成的静态路由的Tag值。
reverse-route tag tag-value
缺省情况下,IPsec反向路由注入功能生成的静态路由的tag值为0。
IPsec隧道保护IPv6路由协议配置任务如下:
(1) 配置IPsec安全提议
(2) 配置手工方式的IPsec安全框架
(4) (可选)配置IPsec抗重放窗口和序号的同步功能
(5) (可选)配置IPsec分片功能
(6) (可选)配置本端允许建立IPsec隧道的最大数
(7) (可选)配置IPsec报文日志信息记录功能
(8) (可选)配置IPsec协商事件日志功能
(9) (可选)配置IPsec告警功能
手工方式的IPsec安全框架定义了对数据流进行IPsec保护所使用的安全提议,以及SA的SPI、SA使用的密钥。
IPsec隧道两端的配置必须符合以下要求:
· IPsec安全框架引用的IPsec安全提议应采用相同的安全协议、加密/认证算法和报文封装模式。
· 本端出方向IPsec SA的SPI和密钥必须和本端入方向IPsec SA的SPI和密钥保持一致。
· 同一个范围内的、所有设备上的IPsec SA的SPI和密钥均要保持一致。
· 两端IPsec SA使用的密钥应当以相同的方式输入,即如果一端以字符串方式输入密钥,另一端必须也以字符串方式输入密钥。如果先后以不同的方式输入了密钥,则最后设定的密钥有效。
· 对于ESP协议,以字符串方式输入密钥时,系统会自动地同时生成认证算法的密钥和加密算法的密钥。
(1) 进入系统视图。
system-view
(2) 创建一个手工方式的IPsec安全框架,并进入IPsec安全框架视图。
ipsec profile profile-name manual
进入已创建的IPsec安全框架时,可以不指定协商方式manual。
(3) (可选)配置IPsec安全框架的描述信息。
description text
缺省情况下,无描述信息。
(4) 指定IPsec安全框架引用的IPsec安全提议。
transform-set transform-set-name
缺省情况下,IPsec安全框架没有引用IPsec安全提议。
要引用的IPsec安全提议所采用的封装模式必须为传输模式。
(5) 配置IPsec SA的SPI。
sa spi { inbound | outbound } { ah | esp } spi-number
缺省情况下,未配置IPsec SA的SPI。
(6) 配置IPsec SA使用的密钥。
¡ 配置AH协议的认证密钥(以十六进制方式输入)。
sa hex-key authentication { inbound | outbound } ah { cipher | simple } string
¡ 配置AH协议的认证密钥(以字符串方式输入)。
sa string-key { inbound | outbound } ah { cipher | simple } string
¡ 配置ESP协议的认证密钥和加密密钥(以字符串方式输入)。
sa string-key { inbound | outbound } esp { cipher | simple } string
¡ 配置ESP协议的认证密钥(以十六进制方式输入)。
sa hex-key authentication { inbound | outbound } esp { cipher | simple } string
¡ 配置ESP协议的加密密钥(以十六进制方式输入)。
sa hex-key encryption { inbound | outbound } esp { cipher | simple } string
缺省情况下,未配置IPsec SA使用的密钥。
根据本安全框架引用的安全提议中指定的安全协议,配置AH协议或ESP协议的密钥,或者两者都配置。
有关在IPv6路由协议上应用IPsec安全框架的相关配置,请分别参见“三层技术-IP路由配置指导”中的“OSPFv3”和“RIPng”。
IPsec抗重放窗口和序号的同步功能是指,以指定的报文间隔将接口上IPsec入方向抗重放窗口的左侧值和出方向IPsec报文的抗重放序号进行备份。当配置了防重放窗口和序号的同步间隔的IPsec安全策略/IPsec安全框架被应用到接口/IPv6路由协议上时,若IPsec冗余备份功能处于开启状态,则可以保证主备切换时IPsec流量不间断和抗重放保护不间断。
(1) 进入系统视图。
system-view
(2) 开启IPsec冗余备份功能。
ipsec redundancy enable
缺省情况下,IPsec冗余备份功能处于关闭状态。
(3) 进入IPsec安全策略视图/IPsec安全策略模板视图/IPsec安全框架视图。
¡ 进入IPsec安全策略视图。
ipsec { ipv6-policy | policy } policy-name seq-number [ isakmp | manual ]
¡ 进入IPsec安全策略模板视图。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
¡ 进入IPsec安全框架视图。
ipsec profile profile-name [ isakmp | manual ]
(4) 配置防重放窗口和序号的同步间隔。
redundancy replay-interval inbound inbound-interval outbound outbound-interval
缺省情况下,同步入方向防重放窗口的报文间隔为1000个报文,同步出方向IPsec SA防重放序号的报文间隔为100000个报文。
此功能用来配置IPsec SA生存时间和空闲超时功能。对于IKE协商建立的IPsec SA,遵循以下原则:
· 采用隧道两端设置的IPsec SA生存时间中较小者。
· 可同时存在基于时间和基于流量两种方式的IPsec SA生存时间,只要到达指定的时间或指定的流量,IPsec SA就会老化。
(1) 进入系统视图。
system-view
(2) 配置IPsec SA生存时间或者IPsec SA空闲超时时间。
¡ 配置IPsec SA生存时间。
ipsec sa global-duration { time-based seconds | traffic-based kilobytes }
缺省情况下,IPsec SA基于时间的生存时间为3600秒,基于流量的生存时间为1843200千字节。
¡ 配置IPsec SA的全局软超时缓冲参数。
ipsec sa global-soft-duration buffer { time-based seconds | traffic-based kilobytes }
缺省情况下,未配置全局软超时缓冲参数。
¡ 开启IPsec SA空闲超时功能,并配置IPsec SA空闲超时时间。
ipsec sa idle-time seconds
缺省情况下, IPsec SA空闲超时功能处于关闭状态。
通过配置IPsec分片功能,可以选择在报文进行IPsec封装之前是否进行分片:
· IPsec封装前分片功能处于开启状态时,设备会先判断报文在经过IPsec封装之后大小是否会超过发送接口的MTU值,如果封装后的大小超过发送接口的MTU值,那么会先对其分片再封装。
· IPsec封装后分片功能处于开启状态时,无论报文封装后大小是否超过发送接口的MTU值,设备会直接对其先进行IPsec封装处理,再由后续业务对其进行分片。
该功能仅对需要进行IPsec封装的IPv4报文有效。
(1) 进入系统视图。
system-view
(2) 配置IPsec分片功能。
ipsec fragmentation { after-encryption | before-encryption }
缺省情况下,IPsec封装前分片功能处于开启状态。
IP报文头中的DF(Don’t Fragment,不分片)位用于控制报文是否允许被分片。在隧道模式下,IPsec会在原始报文外封装一个新的IP头,称为外层IP头。IPsec的DF位设置功能允许用户设置IPsec封装后的报文外层IP头的DF位,并支持以下三种设置方式:
· clear:表示清除外层IP头的DF位,IPsec封装后的报文可被分片。
· set:表示设置外层IP头的DF位,IPsec封装后的报文不能被分片。
· copy:表示外层IP头的DF位从原始报文IP头中拷贝。
封装后外层IP头的DF位可以在IPsec安全策略视图/IPsec安全策略模板视图/IPsec安全框架视图、接口视图和系统视图下分别配置,IPsec安全策略/IPsec安全策略模板/IPsec安全框架下的配置优先级最高。如果IPsec安全策略/IPsec安全策略模板/IPsec安全框架下未配置IPsec DF位,将使用接口下配置的IPsec DF位;如果接口下也未配置IPsec DF位,将使用系统视图下配置的全局IPsec DF位。
· 该功能仅在IPsec的封装模式为隧道模式时有效,仅用于设置IPsec隧道模式封装后的外层IP头的DF位,原始报文IP头的DF位不会被修改。
· 只有IKE协商方式的IPsec才能够支持本功能。
· 如果有多个接口应用了共享源接口安全策略,则这些接口上必须使用相同的DF位设置。
· 转发报文时对报文进行分片、重组,可能会导致报文的转发延时较大。若设置了封装后IPsec报文的DF位,则不允许对IPsec报文进行分片,可以避免引入分片延时。这种情况下,要求IPsec报文转发路径上各个接口的MTU大于IPsec报文长度,否则,会导致IPsec报文被丢弃。如果无法保证转发路径上各个接口的MTU大于IPsec报文长度,则建议清除DF位。
(1) 进入系统视图。
system-view
(2) 进入IPsec安全策略视图/IPsec安全策略模板视图/IPsec安全框架视图。
¡ 进入IPsec安全策略视图。
ipsec { ipv6-policy | policy } policy-name seq-number isakmp
¡ 进入IPsec安全策略模板视图。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
¡ 进入IPsec安全框架视图。
ipsec profile profile-name isakmp
(3) 为IPsec安全策略/IPsec安全策略模板/IPsec安全框架设置IPsec封装后外层IP头的DF位。
sa df-bit { clear | copy | set }
缺省情况下,未设置IPsec封装后外层IP头的DF位,采用接口或全局设置的DF位。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 为当前接口设置IPsec封装后外层IP头的DF位。
ipsec df-bit { clear | copy | set }
缺省情况下,接口下未设置IPsec封装后外层IP头的DF位,采用全局设置的DF位。
(1) 进入系统视图。
system-view
(2) 为全局设置IPsec封装后外层IP头的DF位。
ipsec global-df-bit { clear | copy | set }
缺省情况下,IPsec封装后外层IP头的DF位从原始报文IP头中拷贝。
此功能用来配置对本端IPsec隧道数目的限制。本端允许建立IPsec隧道的最大数与内存资源有关。内存充足时可以设置较大的数值,提高IPsec的并发性能;内存不足时可以设置较小的数值,降低IPsec占用内存的资源。
(1) 进入系统视图。
system-view
(2) 配置本端允许建立IPsec隧道的最大数。
ipsec limit max-tunnel tunnel-limit
缺省情况下,不限制本端允许建立IPsec隧道的最大数。
缺省情况下,如果IPsec对等体两端均采用IKE协商方式的IPsec安全框架建立IPsec SA,则两端均会主动发起协商,对等体之间将存在两个协商IPsec SA的过程,但对等体之间最终只会建立一个IPsec SA,该协商过程将会造成设备CPU资源的浪费。此时可以配置本功能,指定本端只能作为建立IPsec SA的响应方,不主动发起协商,可以有效解决此问题,同时也有助于IPsec故障的诊断和定位。
建议在中心-分支组网环境中的中心侧配置本功能。
(1) 进入系统视图。
system-view
(2) 进入IPsec安全策略视图/IPsec安全策略模板视图/IPsec安全框架视图。
¡ 进入IPsec安全策略视图。
ipsec { ipv6-policy | policy } policy-name seq-number isakmp
¡ 进入IPsec安全策略模板视图。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
¡ 进入IPsec安全框架视图。
ipsec profile profile-name isakmp
(3) 开启本端仅作为协商IPsec SA的响应方功能。
responder-only enable
缺省情况下,本端仅作为协商IPsec SA的响应方功能处于关闭状态。
开启IPsec报文日志记录功能后,设备会在丢弃IPsec报文的情况下,例如入方向找不到对应的IPsec SA、AH/ESP认证失败、ESP加密失败等时,输出相应的日志信息,该日志信息内容主要包括报文的源和目的IP地址、报文的SPI值、报文的序列号信息,以及设备丢包的原因。
(1) 进入系统视图。
system-view
(2) 开启IPsec报文日志记录功能。
ipsec logging packet enable
开启IPsec协商事件日志记录功能后,设备会输出IPsec协商过程中的相关日志。
(1) 进入系统视图。
system-view
(2) 开启IPsec协商事件日志功能。
ipsec logging negotiation enable
缺省情况下,IPsec协商事件日志功能处于关闭状态。
开启IPsec的Trap功能后,IPsec会生成告警信息,用于向网管软件报告该模块的重要事件。生成的告警信息将被发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
如果希望生成并输出某种类型的IPsec告警信息,则需要保证IPsec的全局告警功能以及相应类型的告警功能均处于开启状态。
(1) 进入系统视图。
system-view
(2) 开启IPsec的全局告警功能。
snmp-agent trap enable ipsec global
缺省情况下,IPsec的全局告警功能处于关闭状态。
(3) 开启IPsec的指定告警功能。
snmp-agent trap enable ipsec [ auth-failure | connection-start | connection-stop | decrypt-failure | encrypt-failure | invalid-sa-failure | no-sa-failure | policy-add | policy-attach | policy-delete | policy-detach | tunnel-start | tunnel-stop ] *
缺省情况下,IPsec的所有告警功能均处于关闭状态。
可在任意视图下执行以下命令:
display ipsec { ipv6-policy | policy } [ policy-name [ seq-number ] ]
· 显示IPsec安全策略模板的信息。
display ipsec { ipv6-policy-template | policy-template } [ template-name [ seq-number ] ]
· 显示IPsec安全框架的信息。
display ipsec profile [ profile-name ]
· 显示IPsec SA的相关信息。
display ipsec sa [ brief | count | interface interface-type interface-number | { ipv6-policy | policy } policy-name [ seq-number ] | profile profile-name | remote [ ipv6 ] ip-address ]
· 显示IPsec处理报文的统计信息。
display ipsec statistics [ tunnel-id tunnel-id ]
· 显示IPsec安全提议的信息。
display ipsec transform-set [ transform-set-name ]
· 显示IPsec隧道的信息。
display ipsec tunnel { brief | count | tunnel-id tunnel-id }
请在用户视图下执行以下命令
· 清除已经建立的IPsec SA。
reset ipsec sa [ { ipv6-policy | policy } policy-name [ seq-number ] | profile policy-name | remote { ipv4-address | ipv6 ipv6-address } | spi { ipv4-address | ipv6 ipv6-address } { ah | esp } spi-num ]
· 清除IPsec的报文统计信息。
reset ipsec statistics [ tunnel-id tunnel-id ]
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!