有关隧道、IPsec 和 ISAKMP
本主题介绍用于建立虚拟专用网络 (VPN) 的互联网协议安全 (IPsec) 以及互联网安全关联和密钥管理协议 (ISAKMP) 标准。
借助隧道,可以使用互联网等公共 TCP/IP 网络在远程用户与企业专用网络之间创建安全连接。每个安全连接都称为一个隧道。
ASA 使用 ISAKMP 和 IPSec 隧道标准来建立和管理隧道。ISAKMP 和 IPSec 将完成以下操作:
-
协商隧道参数
-
建立隧道
-
验证用户和数据
-
管理安全密钥
-
加密和解密数据
-
管理隧道中的数据传输
-
作为隧道终端或路由器管理入站和出站数据传输
ASA 可用作双向隧道终端。它可以从专用网络接收明文数据包,将其封装,创建隧道,然后发送到隧道的另一端,随后解封并发送到最终目标。它也会从公用网络接收封装数据包,将其解封,然后发送给其在专用网络上的最终目标。
IPsec 概述
ASA 会将 IPsec 用于 LAN 间 VPN 连接,并提供将 IPsec 用于客户端到 LAN VPN 连接的选项。在 IPsec 术语中,对等体是一个远程访问客户端或其他安全网关。对于这两个连接类型, ASA 仅支持思科对等体。由于我们遵守 VPN 行业标准,ASA 也可以与其他供应商的对等体结合使用;但是,我们不支持这些对等体。
在建立隧道的过程中,两个对等体会协商管理身份验证、加密、封装和密钥管理的安全关联。这些协商包括两个阶段:第一个阶段,建立隧道 (IKE SA);第二个阶段,管理该隧道内的流量 (IPsec SA)。
LAN 间 VPN 可连接不同地理位置的网络。在 IPsec LAN 间 连接中,ASA 可用作发起方或响应方。在 IPsec 客户端到 LAN 连接中,ASA 只能用作响应方。发起方会提议 SA;响应方会接受、拒绝或提出相反提议,所有这一切都根据配置的 SA 参数进行。要建立连接,两个实体都必须同意 SA。
了解 IPsec 隧道
IPsec 隧道是 ASA 在对等体之间建立的 SA 集合。SA 指定适用于敏感数据的协议和算法并指定对等体使用的密钥内容。IPSec SA 控制用户流量的实际传输。SA 是单向的,但是通常成对建立(入站和出站)。
对等体协商用于每个 SA 的设置。每个 SA 包括以下内容:
-
IKEv1 转换集或 IKEv2 提议
-
加密映射
-
ACL
-
隧道组
-
预分片策略
ISAKMP 和 IKE 概述
ISAKMP 是使两台主机商定如何构建 IPsec 安全关联 (SA) 的协商协议。它提供用于商定 SA 属性的格式的通用框架。此安全关联包括与对等体协商 SA 以及修改或删除 SA。ISAKMP 将协商分为两个阶段:阶段 1 和阶段 2。阶段 1 创建第一条隧道,其将保护随后的 ISAKMP 协商消息。阶段 2 创建保护数据的隧道。
IKE 使用 ISAKMP 为要使用的 IPsec 设置 SA。IKE 创建用于对对等体进行身份验证的加密密钥。
ASA 支持为旧版思科 VPN 客户端连接使用 IKEv1,还支持为 AnyConnect VPN 客户端使用 IKEv2。
要设置 ISAKMP 协商的条款,请创建 IKE 策略,其中包含以下内容:
-
IKEv1 对等体必需的身份验证类型:使用证书的 RSA 签名或预共享密钥 (PSK)。
-
加密方法,用于保护数据并确保隐私。
-
散列消息身份验证代码 (HMAC) 方法,用于确保发送方的身份,以及确保消息在传输过程中未发生修改。
-
Diffie-Hellman 群,用于确定 encryption-key-determination 算法的强度。ASA 使用此算法派生加密密钥和散列密钥。
-
对于 IKEv2,使用单独的伪随机函数 (PRF) 作为派生 IKEv2 隧道加密等所要求的密钥内容和散列运算的算法。
-
在更换加密密钥前,ASA 可使用该加密密钥的时间限制。
利用 IKEv1 策略,您要为每个参数设置一个值。对于 IKEv2,您可以为单个策略配置多个加密和身份验证类型以及多个完整性算法。ASA 将按照安全性从高到低的顺序对设置进行排序,并使用该顺序与对等体进行协商。利用这种排序,您可以发送单个提议来传达所有允许的转换,而无需像对 IKEv1 一样发送每个允许的组合。
ASA 不支持 IKEv2 多安全关联 (SA)。ASA 当前仅接受找到的第一个 SA 上的入站 IPsec 流量。如果在任何其他 SA 上收到 IPsec 流量,则该流量将由于 vpn-overlap-conflict
而被丢弃。多个 IPsec SA 可能来自两个对等体之间的重复隧道,也可能来自非对称隧道。
了解 IKEv1 转换集和 IKEv2 提议
IKEv1 转换集或 IKEv2 提议是定义 ASA 如何保护数据的安全协议和算法的组合。在 IPsec SA 协商中,对等体必须标识两个对等体都一样的转换集或提议。然后 ASA 应用匹配的转换集或提议为该加密映射创建保护 ACL 中数据流的 SA。
利用 IKEv1 转换集,您可以为每个参数设置一个值。对于 IKEv2 提议,您可以为单个提议配置多个加密和身份验证类型以及多个完整性算法。ASA 将按照安全性从高到低的顺序对设置进行排序,并使用该顺序与对等体进行协商。利用这种排序,您可以发送单个提议来传达所有允许的组合,而无需像 IKEv1 一样逐一发送每个允许的组合。
如果您更改用于创建其 SA 的转换集或提议的定义,ASA 将撤销隧道。有关详细信息,请参阅清除安全关联。
注 |
如果您清除或删除转换集或提议中的唯一元素,ASA 将自动取消其加密映射引用。 |
关于 IKEv2 多对等体加密映射
从 9.14(1) 版本开始,ASA IKEv2 支持多对等体加密映射 - 当隧道中的对等体关闭时,IKEv2 尝试与列表中的下一个对等体建立隧道。最多可以使用 10 个对等体地址来配置加密映射。IKEv2 上的这种多对等体支持非常有用,特别是从具有多对等体加密映射的 IKEv1 迁移时。
IKEv2 仅支持双向加密映射。因此,在双向加密映射上也配置了多个对等体,并使用相同的方法接受来自发起隧道的对等体的请求。
IKEv2 发起方行为
IKEv2 发起与对等体(例如 Peer1)的会话。如果对等体 1 无法访问 5 次 SA_INIT 重传,则会发送最终重传。此活动大约需要 2 分钟。
当 Peer1 发生故障时,SA_INIT 消息会被发送到 Peer2。如果 Peer2 也无法访问,则在 2 分钟后发起与 Peer3 的会话。
在加密映射的对等体列表中的所有对等体都用尽后,IKEv2 会再次从 Peer1 发起会话,直到与任何对等体建立 SA。下图描述了该行为。
注 |
发起 IKE SA 需要持续的流量,以便每次失败尝试都会移动到下一个对等体,并最终由某个可访问的对等体建立 SA。在流量中断的情况下需要手动触发,以便启动与下一个对等体的 IKE SA。 |
IKEv2 响应方行为
如果在加密映射中为 IKE SA 的响应方设备配置了多个对等体,则每次尝试 IKE SA 时,都会使用加密映射中的当前活动对等体的地址来验证发起方 IKE SA 的地址。
例如,如果加密映射中的当前活动对等体(用作响应方)是第一个对等体,则会从 Peer1 IP 地址发起 IKE SA。同样,如果加密映射中的当前活动对等体(用作响应方)是第二个对等体,则会从 Peer2 IP 地址发起 IKE SA。
注 |
IKEv2 多对等体拓扑的响应方侧不支持对等体遍历。 |
加密映射更改时重置对等体索引
对加密映射所做的任何更改都会将对等体索引重置为零,并且隧道启动将从列表中的第一个对等体开始。下表提供了特定条件下的多对等体索引转换:
SA 之前的条件 |
对等体索引已移动 是/否/重置 |
---|---|
对等体无法访问 |
是 |
第 1 阶段提议不匹配 |
是 |
第 2 阶段提议不匹配 |
是 |
未收到 DPD 确认 |
是 |
身份验证阶段的流量选择器不匹配 |
是 |
身份验证失败 |
是 |
由于对等体无法访问,密钥更新失败 |
重置 |
SA 后的条件 |
对等体索引已移动 是/否/重置 |
---|---|
由于提议不匹配,密钥更新失败 |
重置 |
重新生成密钥期间流量选择器不匹配 |
重置 |
加密映射修改 |
重置 |
HA 切换 |
否 |
清除加密 IKEv2 SA |
重置 |
清除 ipsec sa |
重置 |
IKEv2 SA 超时 |
重置 |
IKEv2 多对等体的准则
IKEv1 和 IKEv2 协议
如果加密映射同时配置了 IKE 版本和多个对等体,则在移动到下一个对等体之前,将在两个版本的每个对等体上进行 SA 尝试。
例如,如果加密映射配置了两个对等体(例如 P1 和 P2),则会使用 IKEv2 向 P1 发起隧道,使用 IKEv1 向 P1 发起隧道,使用 IKEv2 向 P2 发起隧道,以此类推。
高可用性
具有多个对等体的加密映射会启动通往 HA 中的响应方设备的隧道。当第一台设备无法访问时,它就会移至下一台响应方设备。
发起方设备发起到响应方设备的隧道。如果主用设备发生故障,备用设备会尝试从 Peer1 IP 地址建立隧道,而不管主用设备上的 Peer2 IP 地址的加密映射如何。
集中式集群
具有多个对等体的加密映射可以启动通往集中式集群部署中的响应方设备的隧道。如果第一台设备无法访问,它会尝试移至下一台响应方设备。
发起方设备发起到响应方设备的隧道。如果无法访问 Peer1,那么集群中的每个节点都会移动到下一个 Peer2。
分布式集群
如果配置了 IKEv2 多对等体加密映射,则不支持分布式集群。
多情景模式
在多情景模式下,多对等体行为将特定于每个情景。
调试命令
如果隧道建立失败,请启用这些命令以对问题作进一步分析。
-
debug crypto ikev2 platform 255
-
debug crypto ikev2 protocol 255
-
debug crypto ike-common 255
Sep 13 10:08:58 [IKE COMMON DEBUG]Failed to initiate ikev2 SA with peer 192.168.2.2,
initiate to next peer 192.168.2.3 configured in the multiple peer list of the crypto map.