几天来我一直在与我的 IPSec 配置作斗争(愚蠢的最后期限迫在眉睫)并且想寻求帮助以解决初始连接失败的问题。
它被设计为客户端到路由器的辐条,以 Cisco 路由器为中心,各种设备(最终)作为辐条。
- 密钥交换似乎有效
- 连接失败
%CRYPTO-4-IKMP_BAD_MESSAGE: IKE message from 1.2.3.22 failed its sanity check or is malformed
- 重传和此后的厄运
- UDP 端口 500 和 4500 已知可遍历网络
目标是让客户端在 R3 下通过 IP 流量连接到服务器。
172.30.20/24
==+=========+=======
| |
R3 server
|
|172.29.20.128...
client
传输网络如下所示:
isp----------isp
|1.2.3.22 |2.3.4.30
R1(nat) R2(nat)
192.168.0/24 | | 172.30.20/24
==+====+====+=== ==+====+====+====+==
| | | | |
AP U1 R3 U2 server
|
client
client
是在非常传统的酒店/办公室式 NAT 网络下的 wifi 上的 iphoneR1
(已消毒到 1.2.3.22)R2
(清理到 2.3.4.30)正在做 NAT,端口转发到 R3R3
调试和监控捕获U1
和U2
方便的 Unix 主机,用于验证数据包传输等
R2 配置
R2
正在运行 Cisco 867VAE-K9 c860vae-advsecurityk9-mz.153-2.T.bin
接口Vlan1 IP 地址 172.30.20.254 255.255.255.0 ip nat 里面 接口Vlan87 IP 地址 2.3.4.30 255.255.255.252 ip nat 外面 ip nat inside source list NAT 接口 Vlan87 过载 ip nat inside source static esp 172.30.20.252 interface Vlan87 ip nat inside source static udp 172.30.20.252 500 interface Vlan87 500 ip nat inside source static udp 172.30.20.252 4500 interface Vlan87 4500 ip 访问列表标准 NAT 许可 172.30.20.0 0.0.0.255 ip 路由 0.0.0.0 0.0.0.0 2.3.4.29
R3 配置
R3
正在运行 Cisco 867VAE-K9 c860vae-advsecurityk9-mz.152-4.M3.bin
aaa 认证登录 VPN_CLIENT_LOGIN 本地 aaa 授权网络 VPN_CLIENT_GROUP 本地 用户名 vpnuser 密码 0 *secret1* ! 加密 isakmp 策略 10 编码 256 哈希 sha512 认证预共享 第 14 组 加密 isakmp 密钥 *secret2* 地址 0.0.0.0 ! 加密 isakmp 客户端配置组 VPN_CLIENTS 关键 *secret3* DNS 8.8.8.8 域示例.local 池 VPN_CLIENT_POOL ACL 110 ! 加密 ipsec 转换集 TS esp-aes 256 esp-sha512-hmac 模式隧道 ! 加密动态映射 VPNDYNAMIC 10 设置转换集 TS ! 加密映射 DYNMAP 客户端身份验证列表 VPN_CLIENT_LOGIN 加密映射 DYNMAP isakmp 授权列表 VPN_CLIENT_GROUP 加密映射 DYNMAP 客户端配置地址响应 加密映射 DYNMAP 10 ipsec-isakmp 动态 VPNDYNAMIC ! 接口千兆以太网1 IP 地址 172.30.20.252 255.255.255.0 加密映射 DYNMAP ! ip 本地池 VPN_CLIENT_POOL 172.29.20.128 172.29.20.254 ! ip 路由 0.0.0.0 0.0.0.0 172.30.20.254 ! 访问列表 110 允许 ip 172.30.20.0 0.0.0.255 172.29.20.0 0.0.0.255
客户端配置
client
是运行 IOS 10.3 的 Apple iphone 5.2。
- VPN 配置
- 类型
IPSec
- 服务器
2.3.4.30
- 帐户
vpnuser
- 密码
secret1
- 使用证书
No
- 组名空白
- 秘密
secret2
带注释的调试
以下是 的R3
输出debug crypto isakmp
,其中散布着monitor capture
将所有 UDP 匹配到 1.2.3.22 的输出(导出为 pcap 并用 显示tcpdump
)
7 月 14 日 12:10:47.776:%BUFCAP-6-ENABLE:启用捕获点 POINT1。 12:10:58.312750 IP 1.2.3.22.500 > 172.30.20.252.500: isakmp: 阶段 1 I ident 7 月 14 日 12:10:58.315:ISAKMP (0):收到来自 1.2.3.22 dport 500 Sport 500 Global (N) NEW SA 的数据包 7 月 14 日 12:10:58.315:ISAKMP:为 1.2.3.22 创建了一个对等结构,对等端口 500 7 月 14 日 12:10:58.315:ISAKMP:新创建的对等节点 = 0x86E4DCB0 peer_handle = 0x8000000D 7 月 14 日 12:10:58.315:ISAKMP:锁定对等结构 0x86E4DCB0,crypto_isakmp_process_block 的引用计数 1 7 月 14 日 12:10:58.315:ISAKMP:(0):设置客户端配置设置 86C03770 Jul 14 12:10:58.315: ISAKMP:(0):(Re)Setting client xauth list and state 7 月 14 日 12:10:58.315:ISAKMP/xauth:初始化 AAA 请求 7 月 14 日 12:10:58.319:ISAKMP:本地端口 500,远程端口 500 7 月 14 日 12:10:58.319: ISAKMP:(0): 成功插入 sa = 84C4E0E0 7 月 14 日 12:10:58.319:ISAKMP:(0):Input = IKE_MESG_FROM_PEER, IKE_MM_EXCH 7 月 14 日 12:10:58.319:ISAKMP:(0):旧状态 = IKE_READY 新状态 = IKE_R_MM1 7 月 14 日 12:10:58.319:ISAKMP:(0):处理 SA 负载。消息 ID = 0 7 月 14 日 12:10:58.319:ISAKMP:(0):处理供应商 ID 有效负载 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 似乎是 Unity/DPD,但主要 69 不匹配 7 月 14 日 12:10:58.319:ISAKMP (0):供应商 ID 为 NAT-T RFC 3947 7 月 14 日 12:10:58.319:ISAKMP:(0):处理供应商 ID 有效负载 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 似乎是 Unity/DPD,但主要 198 不匹配 7 月 14 日 12:10:58.319:ISAKMP:(0):处理供应商 ID 有效负载 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 似乎是 Unity/DPD,但主要 29 不匹配 7 月 14 日 12:10:58.319:ISAKMP:(0):处理供应商 ID 有效负载 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 似乎是 Unity/DPD,但主要 245 不匹配 7 月 14 日 12:10:58.319:ISAKMP (0):供应商 ID 为 NAT-T v7 7 月 14 日 12:10:58.319:ISAKMP:(0):处理供应商 ID 有效负载 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 似乎是 Unity/DPD,但主要 114 不匹配 7 月 14 日 12:10:58.319:ISAKMP:(0):处理供应商 ID 有效负载 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 似乎是 Unity/DPD,但主要 227 不匹配 7 月 14 日 12:10:58.319:ISAKMP:(0):处理供应商 ID 有效负载 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 似乎是 Unity/DPD,但主要 250 不匹配 7 月 14 日 12:10:58.319:ISAKMP:(0):处理供应商 ID 有效负载 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 似乎是 Unity/DPD,但主要 157 不匹配 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 为 NAT-T v3 7 月 14 日 12:10:58.319:ISAKMP:(0):处理供应商 ID 有效负载 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 似乎是 Unity/DPD,但主要 164 不匹配 7 月 14 日 12:10:58.319:ISAKMP:(0):处理供应商 ID 有效负载 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 似乎是 Unity/DPD,但主要 123 不匹配 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 为 NAT-T v2 7 月 14 日 12:10:58.319:ISAKMP:(0):处理供应商 ID 有效负载 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 似乎是 Unity/DPD,但主要 242 不匹配 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 为 XAUTH 7 月 14 日 12:10:58.319:ISAKMP:(0):处理供应商 ID 有效负载 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 为 Unity 7 月 14 日 12:10:58.319:ISAKMP:(0):处理供应商 ID 有效负载 7 月 14 日 12:10:58.319:ISAKMP:(0):处理 IKE 片段供应商 ID 有效负载 7 月 14 日 12:10:58.319:ISAKMP:(0):未启用对 IKE 分段的支持 7 月 14 日 12:10:58.319:ISAKMP:(0):处理供应商 ID 有效负载 7 月 14 日 12:10:58.319:ISAKMP:(0):供应商 ID 为 DPD Jul 14 12:10:58.319: ISAKMP:(0):found peer pre-shared key matching 1.2.3.22 7 月 14 日 12:10:58.319:ISAKMP:(0):找到本地预共享密钥 7 月 14 日 12:10:58.319:ISAKMP:(0):xauth 预共享身份验证 7 月 14 日 12:10:58.319:ISAKMP:(0):根据优先级 10 策略检查 ISAKMP 转换 1 mismatches 删除 ISAKMP:(0): 提供的哈希算法与策略不匹配! 7 月 14 日 12:10:58.323:ISAKMP:(0):根据优先级 10 策略检查 ISAKMP 转换 4 7 月 14 日 12:10:58.323:ISAKMP:以秒为单位的生命类型 7 月 14 日 12:10:58.323:ISAKMP:生命周期(基本)为 3600 7 月 14 日 12:10:58.323:ISAKMP:加密 AES-CBC 7 月 14 日 12:10:58.323:ISAKMP:密钥长度为 256 7 月 14 日 12:10:58.323:ISAKMP:auth XAUTHInitPreShared 7 月 14 日 12:10:58.323:ISAKMP:哈希 SHA512 7 月 14 日 12:10:58.323:ISAKMP:默认组 14 7 月 14 日 12:10:58.323:ISAKMP:(0):atts 是可以接受的。下一个有效载荷是 3 7 月 14 日 12:10:58.323:ISAKMP:(0):可接受的 atts:实际寿命:86400 7 月 14 日 12:10:58.323:ISAKMP:(0):可接受的 atts:life: 0 7 月 14 日 12:10:58.323:ISAKMP:(0):Basic life_in_seconds:3600 7 月 14 日 12:10:58.323:ISAKMP:(0):Returning 实际生命周期:3600 7 月 14 日 12:10:58.323:ISAKMP:(0)::Started Lifetime timer: 3600。 12:10:58.536748 IP 172.30.20.252.500 > 1.2.3.22.500:isakmp:阶段 1 R ident 7 月 14 日 12:10:58.539:ISAKMP (0):供应商 ID 为 NAT-T RFC 3947 7 月 14 日 12:10:58.539:ISAKMP (0):供应商 ID 为 NAT-T v7 7 月 14 日 12:10:58.539:ISAKMP:(0):供应商 ID 为 NAT-T v3 7 月 14 日 12:10:58.539:ISAKMP:(0):供应商 ID 为 NAT-T v2 7 月 14 日 12:10:58.539:ISAKMP:(0):Input = IKE_MESG_INTERNAL, IKE_PROCESS_MAIN_MODE 7 月 14 日 12:10:58.539:ISAKMP:(0):旧状态 = IKE_R_MM1 新状态 = IKE_R_MM1 7 月 14 日 12:10:58.539:ISAKMP:(0):构建的 NAT-T 供应商-rfc3947 ID Jul 14 12:10:58.539: ISAKMP:(0): 发送数据包到 1.2.3.22 my_port 500 peer_port 500 (R) MM_SA_SETUP 7 月 14 日 12:10:58.539:ISAKMP:(0):发送 IKE IPv4 数据包。 7 月 14 日 12:10:58.539:ISAKMP:(0):Input = IKE_MESG_INTERNAL, IKE_PROCESS_COMPLETE 7 月 14 日 12:10:58.539:ISAKMP:(0):旧状态 = IKE_R_MM1 新状态 = IKE_R_MM2 12:10:58.932745 IP 1.2.3.22.500 > 172.30.20.252.500: isakmp: 阶段 1 I ident Jul 14 12:10:58.935: ISAKMP (0): 从 1.2.3.22 dport 500 Sport 500 Global (R) MM_SA_SETUP 收到数据包 7 月 14 日 12:10:58.935:ISAKMP:(0):Input = IKE_MESG_FROM_PEER, IKE_MM_EXCH 7 月 14 日 12:10:58.935:ISAKMP:(0):旧状态 = IKE_R_MM2 新状态 = IKE_R_MM3 7 月 14 日 12:10:58.935:ISAKMP:(0):处理 KE 负载。消息 ID = 0 12:10:59.216750 IP 172.30.20.252.500 > 1.2.3.22.500: isakmp: 阶段 1 R ident 7 月 14 日 12:10:59.219:ISAKMP:(0):处理 NONCE 负载。消息 ID = 0 Jul 14 12:10:59.219: ISAKMP:(0):found peer pre-shared key matching 1.2.3.22 7 月 14 日 12:10:59.219:ISAKMP:收到的有效载荷类型 20 7 月 14 日 12:10:59.219:ISAKMP (1008):找到 NAT,两个节点都在 NAT 内 7 月 14 日 12:10:59.219:ISAKMP:收到的有效载荷类型 20 7 月 14 日 12:10:59.219:ISAKMP (1008):找到 NAT,两个节点都在 NAT 内 7 月 14 日 12:10:59.219: ISAKMP:(1008):Input = IKE_MESG_INTERNAL, IKE_PROCESS_MAIN_MODE 7 月 14 日 12:10:59.219:ISAKMP:(1008):旧状态 = IKE_R_MM3 新状态 = IKE_R_MM3 Jul 14 12:10:59.219: ISAKMP:(1008): 发送数据包到 1.2.3.22 my_port 500 peer_port 500 (R) MM_KEY_EXCH 7 月 14 日 12:10:59.219:ISAKMP:(1008):发送 IKE IPv4 数据包。 7 月 14 日 12:10:59.219: ISAKMP:(1008):Input = IKE_MESG_INTERNAL, IKE_PROCESS_COMPLETE 7 月 14 日 12:10:59.219:ISAKMP:(1008):旧状态 = IKE_R_MM3 新状态 = IKE_R_MM4 12:10:59.536748 IP 1.2.3.22.4500 > 172.30.20.252.4500: NONESP-encap: isakmp: 阶段 1 I ident[E] Jul 14 12:10:59.543: ISAKMP (1008): 从 1.2.3.22 dport 4500 Sport 4500 Global (R) MM_KEY_EXCH 收到数据包 7 月 14 日 12:10:59.543:ISAKMP:在 ID 负载上保留不是零! 7 月 14 日 12:10:59.543:%CRYPTO-4-IKMP_BAD_MESSAGE:来自 1.2.3.22 的 IKE 消息未通过完整性检查或格式错误 7 月 14 日 12:10:59.543:ISAKMP (1008):增加 sa 上的错误计数器,尝试 5 次中的 1 次:reset_retransmission 注 1 第二个差距 12:11:00.540748 IP 172.30.20.252.500 > 1.2.3.22.500: isakmp: 阶段 1 R ident 7 月 14 日 12:11:00.543:ISAKMP:(1008):重传阶段 1 MM_KEY_EXCH ... 7 月 14 日 12:11:00.543:ISAKMP (1008):增加 sa 上的错误计数器,尝试 2 of 5:重传阶段 1 7 月 14 日 12:11:00.543:ISAKMP:(1008):重传阶段 1 MM_KEY_EXCH Jul 14 12:11:00.543: ISAKMP:(1008): 发送数据包到 1.2.3.22 my_port 500 peer_port 500 (R) MM_KEY_EXCH 7 月 14 日 12:11:00.543:ISAKMP:(1008):发送 IKE IPv4 数据包。 12:11:00.736746 IP 1.2.3.22.4500 > 172.30.20.252.4500: NONESP-encap: isakmp: phase 1 I ident[E] Jul 14 12:11:00.743: ISAKMP (1008): 从 1.2.3.22 dport 4500 Sport 4500 Global (R) MM_KEY_EXCH 收到数据包 7 月 14 日 12:11:00.743:ISAKMP:(1008):阶段 1 数据包是前一个数据包的副本。 重传被删除 Jul 14 12:11:20.059: ISAKMP:(1008):deleting SA 原因“Death by Retransmission P1”状态 (R) MM_KEY_EXCH (peer 1.2.3.22) 12:10:59.536748 IP (tos 0x0, ttl 52, id 7631, offset 0, flags [none], proto UDP (17), length 172) 1.2.3.22.4500 > 172.30.20.252.4500: [udp sum ok] NONESP-encap: isakmp 1.0 msgid 00000000 cookie 362a9b378758c0d1->419c8:dfident ]EID19763E加密
非常感谢任何指点。