16
2024
04
11:32:08

huawei 配置IKE


https://support.huawei.com/enterprise/zh/doc/EDOC1100278107/84323dc8


配置IKE

前置任务

在配置IKE之前,需完成以下任务:

  • 确定IKE协商时算法的强度,即确定使用的IKE安全提议的参数。

  • 如果认证方法选择为数字证书PKI认证时,需要确定对等体所属的PKI域。

    本端ID类型(local-id-type)

    本地证书字段值(本地ID)

    对端ID类型(remote-id-type)

    对端ID值(remote-id、remote-address)

    DN

    Subject:CN=devicea

    DN

    remote-id /CN=devicea

    FQDN

    DNS:devicea.example.com

    FQDN

    remote-id devicea.example.com

    IP

    本地IP地址:10.1.1.3

    IP

    remote-address 10.1.1.3

    User-FQDN

    email:devicea@example.com

    User-FQDN

    remote-id devicea@example.com

  • (可选)执行命令ikev2 authentication sign-hash { sha1 | sha2-256 | sha2-384 | sha2-512 },配置IKEv2使用的证书签名算法。

    缺省情况下,IKEv2使用的证书签名算法为SHA2-256。

  • 执行命令rsa signature-padding { pkcs1 | pss },配置RSA签名的填充方式。

    缺省情况下,RSA签名的填充方式为PSS。

  • 执行命令pki realm realm-name,指定数字证书所属的PKI域,根据PKI域下的配置信息获取本端的数字证书。

    认证方式为RSA签名时,代表本地ID的IP地址、DN、Name、User-FQDN等信息都在本地证书中。

  • (可选)执行命令local-id-reflect enable,开启IKEv2协商时响应方的本端ID为发起方发送的IKE报文中携带的对端ID功能。

    缺省情况下,IKEv2协商时响应方的本端ID为发起方发送的IKE报文中携带的对端ID功能处于关闭状态。

    IKEv2协商时,如果用户不知道发起方配置的对端ID,则可以在执行此步骤,当响应方收到发起方的IKE报文时,会将报文中的IDr载荷(对端ID)作为自己的本端ID。如果响应方未获取到IDr,则根据本端的配置获取本端ID。

    目前,ID类型仅支持为IP、FQDN和User-FQDN。

    local-id-reflect enablelocal-id-preference certificate enable命令都配置时,local-id-reflect enable命令优先生效。

  • (可选)执行命令local-id-preference certificate enable,开启IKE采用证书协商时本端ID优先取证书中字段功能。

    缺省情况下,IKE采用证书协商时本端ID优先取证书中字段功能处于关闭状态。

    IKE采用证书协商时,设备可以从证书的字段(IP地址、FQDN或Email)获取本端ID,无需用户手工配置。

    配置后,设备优先从证书的字段中获取本端ID,获取失败时,再根据本端配置获取本端ID,如果都未获取到本端ID,则IKE协商失败。

  • 执行命令local-id-type { dn | fqdn | ip [ ip-configurable ] | user-fqdn },配置ID类型。

    缺省情况下,IKE协商时本端ID类型为IP地址形式。

    ID类型需与display pki certificate命令查看到的ID类型一致。

  • (可选)执行命令local-id id,配置IKE协商时的本端ID值。

    IKE对等体的ID类型为IP、FQDN、User-FQDN时,需要执行此步骤配置本端ID值。

  • 执行命令remote-id-type { any | dn | fqdn | ip | user-fqdn | none },配置IKE协商时对端的ID类型。

    缺省情况下,系统未设置IKE协商时对端的ID类型。

    同一IKE对等体,本端和对端的ID类型必须相同。

  • (可选)执行命令remote-id id,配置IKE协商时的对端ID值。

    本端的ID类型(local-id-type)

    本端的ID(local-id)

    对端的ID类型(remote-id-type)

    对端配置的ID(remote-id、remote-address)

    FQDN

    本地名称:local-id device

    FQDN

    remote-id device

    IP

    本地IP地址:10.1.1.3

    IP

    remote-address 10.1.1.3

    User-FQDN

    本地用户域名:local-id devicea@example.com

    User-FQDN

    remote-id devicea@example.com

  • 执行命令local-id-type { fqdn | ip [ ip-configurable ] | user-fqdn },配置IKE协商时本端ID类型。

    缺省情况下,IKE协商时本端ID类型为IP地址形式。

  • (可选)执行命令local-id id,配置IKE协商时的本端ID值。

    IKE对等体的ID类型为IP、FQDN、User-FQDN时,需要执行此步骤配置本端ID值。

    IKE协议类型

    描述

    IKEv1

    实际生效的硬生存周期的7/10

    IKEv2

    实际生效的硬生存周期的[65/100, 75/100]

IKE SA快要失效前,IKE将为对等体协商新的IKE SA。在新的IKE SA协商好之后,对等体立即采用新的IKE SA保护IPSec通信。如果有业务流,则旧IKE SA立即被清除;如果无业务流量,则旧IKE SA在10秒或硬生存周期到期后被清除。

改变生存周期,不会影响已经建立的IKE SA,而是会在以后的IKE协商中用于建立新的IKE SA。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令ike proposal proposal-number,进入IKE安全提议视图。

  3. 执行命令sa duration time-value,配置IKE SA的硬生存周期。

    缺省情况下,IKE SA的生存周期为86400秒。

    如果硬生存周期到期,IKE SA将自动更新。因为IKE协商需要进行DH计算,需要经过较长的时间,为使IKE SA的更新不影响安全通信,建议设置生存周期大于600秒。

(可选)配置IKE对等体状态检测

背景信息

当两个IKE对等体之间进行IPSec通信时,如果一端不响应,而对端因系统失效等异常环境并不知道,仍旧继续发送IPSec流量。而IKE协议本身没有提供对等体状态检测机制,一旦发生这种情况,只能等待安全联盟的生存周期到期。生存周期到期之前,对等体之间的安全联盟将一直存在,会造成流量的丢失。安全联盟连接的对等体不可达将引发“黑洞”,导致数据流被丢弃。只有快速识别和检测到这些“黑洞”,才可以尽快的恢复IPSec通信。

为此,设备提供了Heartbeat和DPD两种IKE对等体状态检测机制。用户可根据实际需要选择任意一种配置。

(可选)配置heartbeat检测


背景信息

heartbeat检测是指本端定时地向对端发送heartbeat报文来告知对端自己处于活动状态。若本端在超时时间内没有收到heartbeat报文,则认为对端不可达,此时将删除IKE对等体间的安全联盟(IKE SA和IPSec SA)。

heartbeat检测的局限性在于:

  • 启用heartbeat检测将消耗CPU资源来处理IKE存活消息,这限制了可建立的IPSec会话的数量。

  • 没有统一标准,各厂商设备可能无法对接。

本端配置的发送heartbeat报文的时间间隔需要与对端配置的等待heartbeat报文的超时时间配合使用。当对端在配置的超时时间内未收到heartbeat报文时,如果该IKE SA带有TIMEOUT标记,则删除该IKE SA以及由其协商的IPSec SA;否则,将其标记为TIMEOUT。

IKE对等体协商采用IKEv1协议时,设备支持heartbeat检测;采用IKEv2协议时,设备不支持heartbeat检测。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令ike heartbeat { seq-num { new | old } | spi-list },配置heartbeat报文参数。


    缺省情况下,heartbeat报文采用old类型序列号机制,并且不携带SPI列表。


  3. 执行命令ike heartbeat-timer interval interval,配置IKE SA发送heartbeat报文的时间间隔。


    缺省情况下,IKE SA不发送heartbeat报文。


  4. 执行命令ike heartbeat-timer timeout seconds,配置IKE SA等待heartbeat报文的超时时间。


    缺省情况下,IKE SA不等待对端发送的heartbeat报文。

    配置ike heartbeat-timer intervalike heartbeat-timer timeout时,对等体两端interval和timeout要成对出现,即在一个设备上配置了ike heartbeat-timer timeout,在对端就要配置ike heartbeat-timer interval

    等待heartbeat报文的超时时间一般要比发送heartbeat报文的时间间隔长。由于在网络上一般不会出现超过连续三次的报文丢失,可配置ike heartbeat-timer timeout为对端配置的ike heartbeat-timer interval的三倍。


(可选)配置DPD检测


背景信息

IKE对等体间进行IPSec通信时,heartbeat检测能够检测对端故障,阻止流量的丢失,但周期性的发送heartbeat消息消耗了两端的CPU资源,这限制了可建立的IPSec会话的数量。

对等体存活检测DPD(Dead Peer Detection)机制不用周期发送heartbeat报文,而是通过使用IPSec流量来最小化对等体状态检测所需发送消息报文的数量。若本端可以收到对端发来的IPSec流量,则认为对端处于活动状态;只有当一定时间间隔内没有收到对端发来的IPSec流量时,才会发送DPD报文探测对端的状态。若发送几次DPD报文后一直没有收到对端的回应,则认为对端不可达,此时将删除IKE对等体间的安全联盟(IKE SA和IPSec SA)。

heartbeat检测和DPD检测的区别:heartbeat检测定期发送报文,本端和对端配置需要匹配;DPD检测中本端和对端不需要匹配(除DPD报文中的载荷顺序需要匹配外),当IKE对等体间有正常的IPSec流量时,不会发送DPD消息,只有当一段时间内收不到对端发来的IPSec报文时,才发送DPD消息,节省了CPU资源。

当设备同时使用heartbeat机制和DPD机制,DPD机制生效。

设备根据命令dpd typeike dpd type设置检测模式并开启DPD功能,DPD有如下两种检测模式:

  • 按需型

    当本端需要向对端发送IPSec报文时,判断当前距离最后一次收到对端的IPSec报文已超过DPD空闲时间,则本端主动向对端发送DPD请求报文。

  • 周期型

    如果当前距离最后一次收到对端的IPSec报文或DPD请求报文的时长已超过DPD空闲时间,则本端主动向对端发送DPD请求报文。

本端主动向对端发送DPD请求报文后,若在DPD报文重传间隔内没有收到对端的DPD回应报文,则向对端重传DPD请求报文,根据重传次数进行重传之后,若仍然没有收到对端的DPD回应报文,则认为对端离线,删除该IKE SA和对应的IPSec SA。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令ike peer peer-name,进入IKE对等体视图。

  3. (可选)执行命令dpd msg { seq-hash-notify | seq-notify-hash },配置DPD报文中的载荷顺序。

    缺省情况下,DPD报文中的载荷顺序缺省值为seq-notify-hash。

    两端对等体配置的DPD报文中的载荷顺序需要一致,否则对等体存活检测功能无效。

  4. (可选)执行命令dpd msg notify-hash-sequence learning,开启DPD报文的载荷顺序自学习功能。

    缺省情况下,DPD报文的载荷顺序自学习功能处于开启状态。

    配置后,当收到对端DPD报文时,本端会学习对端DPD报文的载荷顺序,并以对端DPD报文的载荷顺序发送DPD报文。

  5. 执行命令dpd { idle-time interval | retransmit-interval interval | retry-limit times },配置DPD空闲时间、DPD报文重传间隔和重传次数。

    缺省情况下,IKE对等体的DPD空闲时间、DPD报文重传间隔和重传次数分别为30秒、15秒和3次。

  6. 执行命令dpd type { on-demand | periodic },配置DPD检测模式:按需型或周期型。

    缺省情况下,IKE对等体没有设置DPD检测模式。

  7. 执行命令dpd packet receive if-related enable,开启接收DPD报文的接口与建立IPSec SA的接口一致性检查功能。

    缺省情况下,接收DPD报文的接口与建立IPSec SA的接口一致性检查功能处于关闭状态。

    在设备多个接口上应用不同名称的IPSec策略(这些策略中参数相同),接口发生切换时,接收加密流量的接口与建立IPSec SA的接口不一致。如果用户希望接收加密流量的接口与建立IPSec SA的接口一致,则可以执行命令dpd packet receive if-related enable开启接收DPD报文的接口与建立IPSec SA的接口一致性检查功能,如果两者不一致,设备丢弃DPD报文,使得DPD探测异常,这样导致设备删除IPSec SA,触发IKE重新协商。

    该功能仅适用于物理接口应用IPSec策略的场景。

(可选)配置身份过滤集


背景信息

设备在作为IKE协商响应方时,可以指定符合条件的发起方接入,提高了安全性。

在策略模板或安全框架中根据引用的身份过滤集来指定允许接入的对等体。

图23-37所示,总部网关Router作为协商响应方,配置了策略模板,并在身份过滤集中定义只允许发起方AC1接入。

图23-37 协商响应方指定发起方接入

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令ike identity identity-name,创建一个身份过滤集并进入身份过滤集视图。


    以下可选参数在同一身份过滤集视图中可以配置一个或多个,并且配置总数视设备规格而定。


  3. (可选)执行命令dn name,配置在IKE协商时,允许接入的对等体的DN。


    缺省情况下,系统没有配置允许接入的对等体的DN。


  4. (可选)执行命令ip address ip-address { mask | mask-length },配置在IKE协商时,允许接入的对等体的IP地址。


    缺省情况下,系统没有配置允许接入的对等体的IP地址。


  5. (可选)执行命令fqdn fqdn-name,配置在IKE协商时,允许接入的对等体的名称。


    缺省情况下,系统没有配置允许接入的对等体的名称。


后续处理

需要在策略模板视图或安全框架视图下执行命令match ike-identity identity-name,引用该身份过滤集。

(可选)配置IKE报文的DSCP优先级

背景信息

IKE报文用来协商IKE SA和IPSec SA,或者用于DPD(Dead Peer Detection)检测等功能。IKE报文在传输过程中丢失可能导致IKE SA、IPSec SA协商失败等问题,进而造成IPSec SA保护的所有报文将不能得到保护。因此,IKE报文相对业务报文需要有更高的传输优先级,需要网络设备对其优先处理。

为此,可配置IKE报文的DSCP优先级,提高IKE报文的处理优先级,以保证网络繁忙时IKE报文得到及时处理,进而提高IKE报文的传输可靠性。

系统支持全局和在IKE对等体两种配置方式。系统优先使用IKE对等体下的配置,IKE对等体下未配置时采用全局配置的DSCP值。

操作步骤

  • 全局配置

    1. 执行命令system-view,进入系统视图。

    2. 执行命令ike dscp dscp-value,在全局配置IKE报文的DSCP优先级。

      缺省情况下,IKE报文的全局DSCP值为0。

  • 在IKE对等体下配置

    1. 执行命令system-view,进入系统视图。

    2. 执行命令ike peer peer-name,创建IKE对等体并进入IKE对等体视图。

    3. 执行命令dscp dscp-value,在IKE对等体下配置IKE报文的DSCP优先级。

      缺省情况下,IKE对等体对应IKE报文的DSCP值为0。

(可选)配置NAT穿越功能


背景信息

部署IPSec VPN网络时,如果发起者位于一个私网内部,远端位于公网侧,而它希望与远端响应者直接建立一条IPSec隧道。为保证存在NAT设备的IPSec隧道能够正常建立,这就涉及到IPSec的NAT穿越问题,如图23-38所示。

图23-38 IPSec的NAT穿越

由于AH对数据进行的完整性检查会对包括IP地址在内的整个IP包进行Hash运算,而地址转换会改变IP地址,从而破坏AH的Hash值。因此使用AH的IPSec隧道无法穿越NAT设备。

ESP对数据进行的完整性检查不包括外部的IP头,若只进行地址转换时,ESP可以正常工作。但ESP是三层协议,无法设置端口,所以执行允许端口转换的NAT时ESP也存在问题。NAT穿越采用了增加UDP头封装ESP报文的方法解决这个问题。传输模式下,NAT穿越在原报文的IP头和ESP头间增加一个标准的UDP报头;隧道模式下,NAT穿越在新IP头和ESP头间增加一个标准的UDP报头。这样,当ESP报文穿越NAT设备时,NAT设备对该报文的外层IP头和增加的UDP报头进行地址和端口号转换;转换后的报文到达IPSec隧道对端后,与普通IPSec处理方式相同。

NAT设备上的NAT会话表项有一定的存活时间,如果IPSec隧道建立后长时间没有报文进行NAT穿越,NAT设备会删除该NAT会话表项,这将导致在NAT设备外网侧的对等体无法继续传输数据。为防止NAT表项老化,NAT设备内网侧的IKE SA会以一定的时间间隔向对端发送NAT Keepalive报文,以维持NAT会话的存活。

配置NAT穿越功能时,使用的IPSec安全提议ipsec proposal只支持ESP安全协议。AH协议对IP报文的验证范围涵盖了整个IP报文,对IP报文头的任何修改将导致AH的完整性校验失败,因此使用AH协议保护的IPSec隧道不能穿越NAT。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令ike peer peer-name,创建IKE对等体并进入IKE对等体视图。

  3. 执行命令nat traversal,使能NAT穿越功能。


    缺省情况下,NAT穿越功能处于开启状态。


  4. 执行命令quit,退回至系统视图。

  5. 执行命令ike nat-keepalive-timer interval interval,配置IKE发送NAT Keepalive报文的时间间隔。


    缺省情况下,设备发送NAT Keepalive报文的时间间隔为20秒。


(可选)配置IPSec无效SPI恢复功能

背景信息

IPSec隧道一端的网关Gateway_1的IPSec SA完全丢失,其相应的IKE SA继续存在,而另一端网关Gateway_2还继续持有对应的IPSec SA。如果网关Gateway_1收到网关Gateway_2使用此IPSec SA封装的IPSec报文,则网关Gateway_1会因为找不到对应的IPSec SA而丢弃报文。同时,网关Gateway_1默认会向网关Gateway_2发送DELETE SA INFORMATIONAL消息。网关Gateway_2接收到此消息后,会立即删除此无效SPI对应的IPSec SA。网关Gateway_2继续向网关Gateway_1发送IPSec报文时,会触发两端重新协商建立IPSec SA,使得中断的IPSec业务能及时恢复。

但是,当网关Gateway_1的IKE SA和IPSec SA都不存在时,其不会向网关Gateway_2发送DELETE SA INFORMATIONAL消息,直到DPD检测到IPSec SA无效或者SA生存周期过期,导致IPSec业务长时间中断。此时,可以开启IPSec无效SPI恢复功能。网关Gateway_1会向网关Gateway_2发起重协商IPSec SA,使得中断的IPSec业务能及时恢复。

配置IPSec无效SPI恢复功能后,可能会给设备带来DoS攻击的风险。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令ipsec invalid-spi-recovery enable,开启IPSec无效SPI恢复功能。


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


(可选)配置IKEv1协商中IPSec SA的存在依赖于IKE SA

背景信息

缺省情况下,IPSec SA的存在不依赖于IKE SA,即两个阶段的SA可以被独立删除,这可能会导致IKE SA已删除而对应的IPSec SA仍然存在,进而影响流量转发。选择此配置,可使IPSec SA的存在依赖于IKE SA,避免出现IKE SA已删除而对应的IPSec SA仍然存在的问题。

系统支持两种配置方式:全局和IKE对等体下。系统优先使用IKE对等体下的配置,IKE对等体下未配置时采用全局配置。

操作步骤

  • 全局配置

    1. 执行命令system-view,进入系统视图。

    2. 执行命令ikev1 phase1-phase2 sa dependent,配置IKEv1协商中IPSec SA的存在依赖于IKE SA。

      缺省情况下,IKEv1协商时,IPSec SA的存在不依赖于IKE SA。

  • IKE对等体下配置

    1. 执行命令system-view,进入系统视图。

    2. 执行命令ike peer peer-name,进入IKE对等体视图。

    3. 执行命令ikev1 phase1-phase2 sa dependent,配置IKEv1协商中IPSec SA的存在依赖于IKE SA。

      缺省情况下,IKEv1协商时,IPSec SA的存在不依赖于IKE SA。

(可选)配置IKEv2报文分片功能

背景信息

IKEv2协商时,如果加密后的IKEv2报文长度超过设备出接口的MTU值,则该IKEv2报文被分片传输。但是,网络中部分设备(如防火墙/NAT设备)出于防攻击等需要,不允许UDP分片报文通过,导致IKEv2分片报文被丢弃,造成IKE对等体两端IKEv2协商失败。此时,需配置IKEv2报文分片功能,使得长度超过mtu-size的IKEv2报文加密前分片,以确保加密后的IKEv2报文不被分片传输。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令ike peer peer-name,进入IKE对等体视图。

  3. 执行命令ikev2 fragmentation [ mtu mtu-size ],开启IKEv2报文分片功能。


    缺省情况下,IKEv2报文分片功能处于关闭状态。

    IKE对等体两端需同时开启IKEv2报文分片功能,否则IKEv2报文分片功能不生效。


(可选)关闭通知对端删除旧的子SA功能

背景信息

在IKEv2场景中,本端设备删除子SA重新向对端设备发起IKEv2协商时,默认协商消息中会携带IKEV2_NOTIFY_DELETE_OLD_CHILDSA载荷,通知对端删除旧的子SA。如果对端设备不支持处理IKEV2_NOTIFY_DELETE_OLD_CHILDSA载荷,导致两端IKEv2协商失败,此时可以在本端设备上关闭通知对端删除旧的子SA功能,使得发送的IKEv2协商消息中不携带IKEV2_NOTIFY_DELETE_OLD_CHILDSA载荷。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令undo ikev2 delete old child-sa enable,关闭通知对端删除旧的子SA功能。


    缺省情况下,通知对端删除旧的子SA功能处于开启状态。


检查IKE的配置结果

前提条件

已经完成IKE的所有配置。

操作步骤

  • 执行命令display ike identity [ name identity-name ],查看身份过滤集的配置信息。

  • 执行命令display ike peer [ brief | name peer-name ]display ike peer [ brief | name peer-name ] ctrl-plane,查看IKE对等体配置的信息。

  • 执行命令display ike proposal [ number proposal-number ]display ike proposal [ number proposal-number ] ctrl-plane,查看IKE安全提议配置的参数。

  • 执行命令display ike sa [ remote ipv4-address ],查看当前IKE SA的摘要信息。

  • 执行命令display ike sa [ remote-id-type remote-id-type ] remote-id remote-id,根据对端ID查看IKE SA的摘要信息。

  • 执行命令display ike sa verbose [ remote ipv4-address | connection-id connection-id | [ remote-id-type remote-id-type ] remote-id remote-id ],查看当前IKE SA的详细信息。

  • 执行命令display ike global config,查看IKE的全局配置信息。





推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

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

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

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

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: