1路由器A#显示加密isakmp策略2 3全局IKE策略4#< - ISAKMP策略10匹配Router_B的ISAKMP提案30(下面的示例4-5) - > 5保护套件优先级10 6加密算法:三个密钥三重DE 7散列算法:消息摘要5 8身份验证方法:预共享密钥9 Diffie-Hellman组:#2(1024位)10生命周期:86400秒,没有音量限制11保护套件的优先级20 12加密算法:des - 数据加密标准(56位键)。13哈希算法:安全散列标准14认证方法:预共享密钥15 Diffie-Hellman组:#2(1024位)16寿命:86400秒,无音量限制17优先级30 18加密算法:AES - Advanced Concryption标准(128位键)。19哈希算法:安全哈希标准20身份验证方法:预共享密钥21 Diffie-Hellman组:#5(1536位)22寿命:86400秒,无音量限制23默认保护套件24加密算法:DE - 数据加密标准(56位键)。25哈希算法:安全哈希标准26认证方法:RIVEST-Shamir-Adleman签名27 Diffie-Hellman组:#1(768位)28终身:86400秒,没有卷限制29 Router_A#显示加密isakmp密钥30 Keyring Hostname/Address PSK 31 32 default 200.0.0.2 tarheels
示例4-5提供了中路由器_B的配置图4 - 2. 请注意,路由器_B的ISAKMP提案与优先级为10的提案(示例4-4,第5-10行)将匹配路由器_A的提案与优先级为30的提案(示例4-4,第17-22行)。但是,IKE仍然会失败,因为路由器_A(示例4-4,第32行)和路由器_B(示例4-5,第32行)上的PSK不匹配。
示例4-5路由器_B上不匹配的IKE PSK(对应于示例4-4中路由器_A的不匹配密钥)
1 router_b#显示加密isakmp策略2 3全局IKE策略4优先级10 5加密算法保护套件:AES-高级加密标准(128位密钥)。6哈希算法:安全哈希标准7身份验证方法:预共享密钥8 Diffie Hellman组:#5(1536位)9生存期:86400秒,无容量限制10优先级保护套件20 11加密算法:三密钥三重DES 12哈希算法:消息摘要5 13身份验证方法:Rivest Shamir Adleman签名14 Diffie Hellman组:#1(768位)15生存期:86400秒,无容量限制17#<--ISAKMP策略30与路由器A的ISAKMP方案10(以上示例4-4)匹配-->17优先级30的保护套件18加密算法:AES-高级加密标准(128位密钥)。19散列算法:安全散列标准20身份验证方法:预共享密钥21 Diffie Hellman组:#2(1024位)22生存期:86400秒,无容量限制23默认保护套件24加密算法:DES-数据加密标准(56位密钥)。25哈希算法:安全哈希标准26身份验证方法:Rivest Shamir Adleman签名27 Diffie Hellman组:#1(768位)28生存期:86400秒,无容量限制29路由器#显示加密isakmp密钥30密钥环主机名/地址PSK 31 32默认200.0.0.1 bluedevils
不匹配的钥匙
在例4-4和例4-5中,Router_A由于psk不匹配导致IKE SA协商失败。例4-6中第13行提供的诊断输出确认两个加密对等体已经同意了IKE提议。例4-6,第18行,确认由于PSK不匹配导致SA协商失败。
示例4-6两个IKE端点之间的PSK身份验证失败
1路由器A#调试加密isakmpCrypto ISAKMP调试在3上!4 !6 *Feb 16 14:20:44.991: ISAKMP: encryption AES-CBC 7 *Feb 16 14:20:44.991: ISAKMP: keylength of 128 8 *Feb 16 14:20:44.991: ISAKMP: hash SHA 9 *Feb 16 14:20:44.991: ISAKMP: default group 5 10 *Feb 16 14:20:44.991: ISAKMP:auth pre-share 11 *Feb 16 14:20:44.991: ISAKMP: life type in seconds 12 *Feb 16 14:20:44.995: ISAKMP: life duration (VPI) of 0x0 0x1 0x51 0x80 13 *Feb 16 14:20:44.995: ISAKMP (0:1): ats are acceptable。下一个有效载荷是0 14 !15 !16 *Feb 16 14:20:45.319: ISAKMP (0:1): received packet from 200.1.1.2 dport 500 sport 500 Global (I) MM_KEY_EXCH 17 *Feb 16 14:20:45.319: ISAKMP: reserved not zero on NOTIFY payload!18 *Feb 16 14:20:45.319: %CRYPTO-4-IKMP_BAD_MESSAGE: IKE message from 200.0.0.2 failed its sanity check or is malformed . 18 *Feb 16 14:20:45.319: %CRYPTO-4-IKMP_BAD_MESSAGE: IKE message from 200.0.0.2 failed its sanity check or is malformed
IKE PSK定义中的对端地址不匹配
正如我们已经讨论过的,在PSK身份验证方案中有两个元素需要进行故障排除。到目前为止,我们已经讨论了由于PSK不匹配而导致的IKE故障。现在,让我们将注意力转向与pks上的对等规范有关的IKE问题。假设,在图4 - 2,路由器_A决定从其环回接口(环回1,ip=201.0.0.1/32)发起所有对等会话。
IOS IPsec终结点的默认行为是从应用加密映射的物理接口的IP地址获取IPsec VPN隧道的源。示例4-7通过指示路由器使用环回接口来寻找IPsec VPN隧道,将IPsec对等行为从路由器的默认设置更改。
示例4-7路由器_A从其环回1接口(201.0.0.1)获取IPsec VPN
!加密映射路由器\u A\u映射本地地址环回1!接口Loopback1ip地址201.0.0.1255.255.255.255
路由器_B的管理员必须进行两项基本更改,以适应路由器_A上的此更改。他们必须首先更改加密映射中的IPsec对等定义,以指向路由器A的新源(其环回地址201.0.0.1)。示例4-8中提供的配置片段说明了这一变化。
例4-8 Router_B需要进行必要的对等变化
!加密isakmp密钥地址201.0.0.1!Router_B_Map 10 IPsec-isakmp设置对等201.0.0.1
假设Router_B的管理员没有正确修改PSK语句中的对端地址,从而准确反映Router_A的变化。这也会导致IKE认证失败,最终导致IPsec VPN隧道在第一阶段协商完成之前就停止协商。通过例4-9中的调试信息,可以确认虽然IKE pks匹配,但是没有被正确的对等体共享。由于IPsec对等体已被更新为指向201.0.0.1(例4-8),IKE引擎将尝试寻找一个密钥用于该对等体。在这种情况下,如例4-9所示,IKE PSK语句未被更新,导致IKE阶段1的协商无法启动。例4-8中的peer语句被修改为201.0.0.1,但IKE PSK语句仍然为200.0.0.1。例4-9提供的诊断输出证实了这个错误,因为IKE在加密映射(201.0.0.1)中找不到与新的IPsec peer语句相匹配的密钥。
example4 -9 IKE认证失败,pks没有与正确的对端地址共享
! ! *2月16日14:30:00.595:ISAKMP:(0:0:N/A:0):无法启动攻击模式,正在尝试主模式*二月16日14:30:00.595:ISAKMP:在默认情况下为201.0.0.1查找匹配的密钥*二月16日14:30:00.595:ISAKMP:(0:0:N/a:0):没有与201.0.0.1预先共享的密钥!
解决路由器A和路由器B上的密钥不匹配和对等点不匹配问题
事实上,Router_B的管理员意识到选择“bluedevils”作为IKE PSK是一个错误,并解决了这个问题。另外,Router_A和Router_B的PSK定义上的ISAKMP地址信息也全部一致。既然Router_A和Router_B能够在ISAKMP策略和PSK上达成一致,且对等体信息不受影响,那么在Router_B上可以看到IKE阶段1协商的调试信息(例4-10),说明IKE协商成功。example4 -10(第13行)确认两个加密对等体已经同意ISAKMP提议,example4 -10(第22行)确认安全联盟已经通过认证。一旦阶段1协商完成,就可以使用show命令对ISAKMP安全联盟进行验证,如例4-10,第23-25行所示。
example4 -10通过pks认证成功(Router_B)
1 router_b#调试加密isakmpCrypto ISAKMP调试在3上!4 !6 *Feb 16 14:44:55.063: ISAKMP: encryption AES-CBC 7 *Feb 16 14:44:55.063: ISAKMP: keylength of 128 8 *Feb 16 14:44:55.063: ISAKMP: hash SHA 9 *Feb 16 14:44:55.063: ISAKMP: default group 5 10 *Feb 16 14:44:55.063: ISAKMP:auth pre-share 11 *Feb 16 14:44:55.063: ISAKMP: life type in seconds 12 *Feb 16 14:44:55.063: ISAKMP: life duration (VPI) of 0x0 0x1 0x51 0x80 13 *Feb 16 14:44:55.063: ISAKMP (0:1): ats are acceptable。下一个有效载荷是3 14 !15 !16 * 2月16 14:44:55.431:ISAKMP (0:1): SA认证状态:17验证18 * 2月16 14:44:55.431:ISAKMP(0:1):过程初步接触,19降低现有阶段1和2 SA与当地200.1.1.2远程201.0.0.1远程端口500 20 * 2月16 14:44:55.431:ISAKMP (0:1): SA认证状态:21验证22 * 2月16 14:44:55.431:ISAKMP (0:1): SA has been authenticated with 201.0.0.1 23 Router_B#sh crypto ISAKMP SA 24 dst src state conn-id slot 25 200.0.0.2 201.0.0.1 QM_IDLE 1 0
使用RSA加密的IKE身份验证错误
与认证IKE对等体的PSK方法一样,使用RSA加密的IKE认证失败通常归因于两个类别不匹配的键或不匹配的对等体。因此,我们将开始使用RSA公钥与正确匹配的方案进行RSA加密讨论。请记住,RSA加密算法是不对称的,由两个键 - 公共/解密密钥和私有/加密密钥组成。如果使用RSA加密提供给IPSec VPN对等体的不正确键,则由于IKE认证错误,阶段1协商将超时。终点点图4 - 3,对IKE认证采用RSA加密。
IKE认证失败RSA公钥不匹配
例4-11中提供了Router_A的RSA密钥配置图4 - 3. 路由器使用RSA加密作为IKE身份验证方法,需要公钥(加密)和私钥(解密)来验证SA。路由器_A的私钥是手动生成的,如示例4-11第3-9行所示。路由器_A的管理员已手动输入路由器_B的加密密钥,如示例4-11第20-29行所示。
示例4-11路由器A(图4 - 3)使用路由器建立IKE SA的RSA密钥配置
1路由器A#显示加密密钥mypubkey rsa2 % Key pair was generated at: 8:56:03 UTC Feb 17 2005 3 <——Router_A's Private RSA Key used for decrypt——> 4 Key name: Router_A.cisco.com 5 Usage: General Purpose Key 6 Key is not exportable。7关键数据:4886 305 c300d 06092 a86 f70d 01010105 00034 b00 30480241 00 bf6d28 71 ee1ff2 9 415 62年e4001 23日f4d08c dfeaa8 4 c0682a4 39 d66b5d DC275EAB C95DE5A4 1 c87700b 10 4 a6ab4f3 8 acffe4d 6 b409c93 6 bb3dae3 D7D13398 3 c48c7a1 B5020301 0001 11%密钥对生成:10:56:04 UTC时间2005年2月17日12键名:Router_A.cisco.com.server 13个用法:加密密钥14可导出密钥。15个关键数据:16 307C300D 06092A86 4886F70D 01010105 00036B00 30680261 00B86AD5 F0E1D956 17 E29630DC 64D5FAE8 f6fa974 3894D9B9 0DCA97AE 454F4937 063499B2 2B84C46E 18 7D5D2647 22D3AC56 DC9017DC 5D6938AD A57C4629 098C2DA3 8F16376A DDD145DA 19 70712AD0 EB07850F 5B96A6E2 7CCA8D60 3783E7D9 30EE2DD8 3B020301 0001 20 21 <- RSA对Router_B加密数据的密钥(200.0.0.2)——> 22 Router_A#show crypto key pubkey-chain rsa add 200.0.0.2 23 key address: 200.0.0.2 24用法:General Purpose key 25来源:手工输入26数据:27 30819f30 0d06092a 864886f7 0d010101 05000381 8d003081 89028181 009f63bf 28 64df17df cd836ea2 fa556169 95a05572 fcf7f1e1 ba7dc493 18408ec0 f98b78be 29 28fae232 3132af97 ce73d4b5 07f10a86 cfd038f3 fbc44ff2 2c323420 d1430162 30 c026df34 dd6e4ab5 e3bb45f 1f184393 dd4c0a3c c9dad616 f876784b ec9a9af4 31 5f2d692f 238f3b82 09c4ad90 2569e1b6 9ad98833D6700467 a7880202 0d020301 0001
示例4-12提供了中路由器_B的RSA密钥配置图4 - 3. 请注意,路由器B错误地配置了路由器A的私钥,而不是其公钥。
示例4-12路由器(图4 - 3)使用路由器建立IKE SA的RSA密钥配置
1 Router_B#show crypto key mypubkey rsa 2 %密钥对的生成时间为:08:59:17 UTC Feb 17 2005 3 <——Router_B's Private rsa key used for decrypt——> 4 key name: Router_B.cisco.com 5 Usage: General Purpose key 6 key is not export。7关键数据:8 30819f30 0d06092a 864886f7 0d010101 05000381 8d003081 89028181 009f63bf 9 64df17df cd836ea2 fa556169 95a05572 fcf7f1e1 ba7dc493 18408ec0 f98b78be 10 28fae232 3132af97 ce73d4b5 07f10a86 cfd038f3 fbc44ff2 2c323420 d1430162 11 c026df34 dd6e4ab5 e3bb45f 1f184393 dd4c0a3c c9dad616 f876784b ec9a9af4 12 5f2d692f 238f3b82 09c4ad90 2569e1b6 9ad98833D6700467 A7880202 0D020301 0001 13 %密钥对生成时间:09:59:18 UTC Feb 17 2005 14密钥名称:Router_B.cisco.com.server 15用途:加密密钥16密钥不可导出。17个关键数据:18 307C300D 06092A86 4886F70D 01010105 00036B00 30680261 00CCB92C 23D6CA83 19 1BD6D9D3 7f56f4f 6AF576C8 AD682B20 3E9B054B 8C75CD54 4B6FDB7F 71524C5F 20 C117056E 15A86DA7 26AB1B92 23958CB9 1134C6A1 AF8ACDBE 8E1F8C30 0468E46B 21 36CFA390 0B0CE8BE 622B0266 E10342DF FD2D50E0 A6460363 37020301 0001 22 23 Router_B#show crypto key pubkey-chain rsaaddress 200.0.0.1 24 <——RSA用于向Router_A加密数据的密钥(200.0.0.1)——> 25密钥地址:200.0.0.1 26用途:通用密钥27来源:手工输入2829 307c300d 06092a86 4886f70d 01010105 00036b00 30680261 00b86ad5 f0e1d956 30 e29630dc 64d5fae8 f6fa974 3894d9b9 0dca97ae 454f4937 063499b2 2b84c46e 31 7d5d2647 22d3ac56 dc9017dc 5d6938ad a57c4629 098c2da3 8f16376a ddd145da 32 70712ad0 eb07850f 5b96a6e2 7cca8d60 3783e7d9 30ee2dd8 3b020301 0001