阶段一策略与预共享密钥
IPsec 站点到站点隧道的建立分两阶段,阶段一(IKE/ISAKMP)负责在两端之间建立一条安全的管理通道。Cisco 上用 crypto isakmp policy <优先级> 定义加密算法、哈希、认证方式、DH 组与生存期,用 crypto isakmp key 配置预共享密钥,密钥按对端地址绑定。两端的策略必须存在可匹配的组合,否则隧道在第一阶段就协商失败。
基本信息
| 策略命令 | crypto isakmp policy <优先级>,数值小的优先匹配 |
|---|---|
| 加密参数 | encr aes 256(推荐 AES 系列) |
| 完整性参数 | hash sha256(较新平台支持,老平台为 sha 或 md5) |
| 认证方式 | authentication pre-share 为最常用的预共享密钥方式 |
| DH 组与生存期 | group 14 及以上,lifetime 两端可不同但需按较小值协商 |
典型使用场景
- 企业与分支建立 IPsec 隧道,用 PSK 方式快速开通
- 与第三方对接时按其要求配置算法组合,先确认对端支持的加密与哈希
- 多分支共用一台中心设备:中心配多条策略,按优先级覆盖不同分支的算法要求
- 隧道迁移:新旧策略并存期同时保留两组参数,切换完成后清理旧策略
- 弱算法清理:把 md5、des 一类旧参数从策略中移除,改用 AES 与 SHA-2
完整配置示例
完整配置示例
# 阶段一策略:数值小的先被匹配
crypto isakmp policy 10
encr aes 256
hash sha256
authentication pre-share
group 14
lifetime 86400
!
# 预共享密钥按对端地址绑定
crypto isakmp key <预共享密钥> address 203.0.113.2
!
# 核对本端策略列表
show crypto isakmp policy
show crypto isakmp sa核查命令与读法
| 命令 | 看什么 | 异常提示 |
|---|---|---|
| show crypto isakmp policy | 本端策略优先级与参数 | 两端无交集参数时协商必然失败 |
| show crypto isakmp sa | 阶段一安全联盟状态 | MM_NO_STATE 或 QM_IDLE 循环说明阶段一未完成 |
| show crypto isakmp sa detail | 对端地址、算法与剩余生存期 | 状态停滞对应密钥或地址配置错误 |
| show log | include ISAKMP | 协商失败原因 | 常见为密钥不匹配或身份不匹配 |
排错顺序
排错顺序
# 1) 确认对端地址可达(UDP 500 与 4500 是否放行)
ping 203.0.113.2
# 2) 确认密钥绑定地址与对端实际发起地址一致
show running-config | include isakmp key
# 3) 确认两端策略存在交集
show crypto isakmp policy
# 4) 查看协商状态与失败原因
show crypto isakmp sa
show log | include ISAKMP预共享密钥属于弱凭据:一旦泄漏,任何知道密钥与对端地址的第三方都能尝试建立隧道。生产环境应使用足够长的随机字符串并定期更换,条件允许时改用证书认证。