您好,欢迎来到网暖!

当前位置:网暖 » 站长资讯 » 建站基础 » 网络技术 » 文章详细 订阅RssFeed

Cisco ASA 实现 IPSec 虚拟专用网(内附故障排查)

来源:网络整理 浏览:321次 时间:2019-12-14

传送门:Cisco 路由器配置实例: https://blog.51cto.com/14227204/2448319
其实,防火墙和路由器的配置非常相似,可以参考上方传送门,下方会介绍一个防火墙的配置实例
一、路由器的故障诊断排查
1、show crypto isakmp sa

R1:show crypto isakmp sa               # 可以显示数据连接sa的细节信息

MM_NO_STATE :ISAKMP SA建立的初始状态;管理连接建立失败也会处于该状态
MM_SA_SETUP :对等体之间ISAKMP策略协商成功后处于该状态
MM_KEY_EXCH :对等体通过DH算法成功建立共享密钥,此时还没有进行设备验证
MM_KEY_AUTH :对等体成功进行设备验证,之后会过渡到QM_IDLE状态
QM_IDLE :管理连接成功建立,即将过渡到阶段2的数据连接建立过程

2、debug crypto isakmp

R1:debug crypto isakmp                # 诊断和排查管理连接出现的问题

故障实例一:两端加密算法不匹配

ISAKMP:(0:0:N/A:0):Checking ISAKMP transform 1 against priority 1 policyISAKMP:      default group 1ISAKMP:      encryption DES-CBCISAKMP:      hash SHAISAKMP:      auth pre-shareISAKMP:      life type in secondsISAKMP:      life duration (VPI) of  0x0 0x1 0x51 0x80 ISAKMP:(0:0:N/A:0):Encryption algorithm offered does not match policy!                        # 加密算法不匹配ISAKMP:(0:0:N/A:0):atts are not acceptable. Next payload is 0……                            # 策略不被接受ISAKMP:(0:0:N/A:0):no offers accepted!                  # 没有匹配策略……received packet from 10.0.0.1 dport 500 sport 500 Global (R) MM_NO_STATE                           # 策略进入未成功状态

故障案例二:两端使用的预共享密钥不一致

ISAKMP:(0:0:N/A:0):Checking ISAKMP transform 1 against priority 1 policyISAKMP:      default group 1ISAKMP:      encryption DES-CBCISAKMP:      hash SHAISAKMP:      auth pre-shareISAKMP:      life type in secondsISAKMP:      life duration (VPI) of  0x0 0x1 0x51 0x80 ISAKMP:(0:0:N/A:0):atts are acceptable. Next payload is 0……            # 算法已匹配,开始秘钥交换及身份验证ISAKMP (0:134217729): received packet from 10.0.0.1 dport 500 sport 500 Global (R) MM_KEY_EXCHISAKMP: reserved not zero on ID payload!%CRYPTO-4-IKMP_BAD_MESSAGE: IKE message from 10.0.0.1     failed its sanity check or is malformed          # 完整性验证失败,将停留在MM     KEY    EXCH 阶段

二、防火墙和路由器的区别:
IKE 协商:
路由默认开启
ASA 防火墙默认关闭,必须手动开启,如下:

ASA(config)# crypto  isakmp  enable  outside 

隧道组特性的引入:
防火墙从6.x版本升级到7.0版本引入的新特性
主要用于简化IPSec会话的配置和管理
三、开始配置
环境如下:
Cisco ASA 实现 IPSec 虚拟专用网(内附故障排查)
需求如下:
lan1区域和lan2区域互通
lan1区域和lan3区域互通
lan2区域和lan3区域互通(lan2→lan1→lan3)
所有区域能够访问中间ISP
配前须知(不好意思,我这里以路由器代替了pc机所以验证有点简略):

  1. 自行配置接口IP之类
  2. 这里我是使用了路由器充当PC机所以需要在路由器上配置个默认路由充当网关
  3. 防火墙往外配置一条默认路由

R1配置(R3、R4配置类似):

R1#conf tR1(config)#int f 0/0R1(config-if)#ip add 192.168.1.10 255.255.255.0                # 配置接口IPR1(config-if)#no shutdownR1(config-if)#exitR1(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.1                   # 默认路由充当网关

R2配置如下(ISP不需要配置路由):

R2#conf tR2(config)#int f 0/1R2(config-if)#ip add 201.0.0.1 255.255.255.0R2(config-if)#no shutdownR2(config-if)#exitR2(config)#int f 0/1R2(config-if)#ip add 202.0.0.1 255.255.255.0R2(config-if)#no shutdownR2(config-if)#exitR2(config)#int f 1/0R2(config-if)#ip add 202.0.0.1 255.255.255.0R2(config-if)#no shutdown

1、配置
ASA1(lan1→lan2)配置如下

ciscoasa> enPassword:ciscoasa# conf tciscoasa(config)# int e 0/0ciscoasa(config-if)# nameif inside                    # 配置为内接口ciscoasa(config-if)# ip add 192.168.1.1ciscoasa(config-if)# no shutdownciscoasa(config-if)# exitciscoasa(config)# int e 0/1ciscoasa(config-if)# nameif outside                  # 配置为外接口ciscoasa(config-if)# ip add 201.0.0.2ciscoasa(config-if)# no shutdownciscoasa(config)# route outside 0 0 201.0.0.2                   # 配置到外部的默认路由,这里的0相当于0.0.0.0 ciscoasa(config)# crypto isakmp enable outside                 # 开启IKE协商功能ciscoasa(config)# crypto isakmp policy 1                            # 配置管理连接ciscoasa(config-isakmp-policy)# encryption aes                 # 加密为aesciscoasa(config-isakmp-policy)# hash md5                         # 认证为 md5ciscoasa(config-isakmp-policy)# group 2ciscoasa(config-isakmp-policy)# authentication pre-share      # 预先设置共享秘钥ciscoasa(config-isakmp-policy)# lifetime 10000         ciscoasa(config-isakmp-policy)# exit ciscoasa(config)# crypto isakmp key 123.com address 202.0.0.2               # 设置共享秘钥# 防火墙中有两种配置,一会在ASA2中使用ciscoasa(config)# access-list lan1_lan2 permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0                    # 编写1.0到2.0的ACLciscoasa(config)# crypto ipsec transform-set test-set esp-aes esp-md5-hmac           # 此四条配置数据连接ciscoasa(config)# crypto map test-map 1 match address lan1_lan2ciscoasa(config)# crypto map test-map 1 set peer 202.0.0.1ciscoasa(config)# crypto map test-map 1 set transform-set  test-setciscoasa(config)# crypto map test-map interface outside          # 应用到外部的逻辑接口上

ASA2配置如下

ciscoasa> enPassword:ciscoasa# conf tciscoasa(config)# int e 0/0                          # 这里我就不介绍配置含义了,和上面基本相似ciscoasa(config-if)# nameif outsideciscoasa(config-if)# ip add 202.0.0.2ciscoasa(config-if)# no shutdownciscoasa(config-if)# exitciscoasa(config)# int e 0/1ciscoasa(config-if)# nameif insideciscoasa(config-if)# ip add 192.168.2.1ciscoasa(config-if)# no shutdownciscoasa(config-if)# exitciscoasa(config)# route outside 0 0 202.0.0.1ciscoasa(config)# crypto isakmp enable outsideciscoasa(config)# crypto isakmp policy 1ciscoasa(config-isakmp-policy)# encryption aesciscoasa(config-isakmp-policy)# hash md5ciscoasa(config-isakmp-policy)# group 2ciscoasa(config-isakmp-policy)# authentication pre-shareciscoasa(config-isakmp-policy)# lifetime 10000ciscoasa(config)# tunnel-group 201.0.0.2 type ipsec-l2l             # 另一种配置秘钥方式ciscoasa(config)# tunnel-group 201.0.0.2 ipsec-attributesciscoasa(config-tunnel-ipsec)# pre-shared-key 123.comciscoasa(config-tunnel-ipsec)# exitciscoasa(config)# access-list lan2_lan1 permit ip 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0ciscoasa(config)# crypto ipsec transform-set test-set esp-aes esp-md5-hmacciscoasa(config)# crypto map test-map 1 match address lan2_lan1ciscoasa(config)# crypto map test-map 1 set peer 201.0.0.2ciscoasa(config)# crypto map test-map 1 set transform-set test-setciscoasa(config)# crypto map test-map interface outsideR1#ping 192.168.2.10Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 192.168.2.10, timeout is 2 seconds:!!!!!

ASA1(lan1→lan3)配置如下

# 在ASA之前配置过到lan2区域,所以可以以上面为基础接着配置ciscoasa(config)# tunnel-group 203.0.0.2 type ipsec-l2lciscoasa(config)# tunnel-group 203.0.0.2 ipsec-attributesciscoasa(config-tunnel-ipsec)# pre-shared-key 123.comciscoasa(config)# access-list lan1_lan3 permit ip 192.168.1.0 255.255.255.0 192.168.3.0  255.255.255.0ciscoasa(config)# crypto map test-map 2 match address lan1_lan3WARNING: The crypto map entry is incomplete!              # 这里出现的警告是正常的ciscoasa(config)# crypto map test-map 2 set peer 203.0.0.2WARNING: The crypto map entry is incomplete!ciscoasa(config)# crypto map test-map 2 set transform-set test-set

ASA3配置如下(和ASA2配置基本详细)

ciscoasa> enPassword:ciscoasa# conf tciscoasa(config)# int e 0/0ciscoasa(config-if)# nameif outsideciscoasa(config-if)# ip add 203.0.0.2ciscoasa(config-if)# no shutdownciscoasa(config-if)# exitciscoasa(config)# int e 0/1ciscoasa(config-if)# nameif insideciscoasa(config-if)# ip add 192.168.3.1ciscoasa(config-if)# no shutdownciscoasa(config)# route outside 0 0 203.0.0.1ciscoasa(config)# crypto isakmp enable outsideciscoasa(config)# crypto isakmp policy 1ciscoasa(config-isakmp-policy)# authentication pre-shareciscoasa(config-isakmp-policy)# encryption aesciscoasa(config-isakmp-policy)# hash md5ciscoasa(config-isakmp-policy)# group 2ciscoasa(config-isakmp-policy)# lifetime 10000ciscoasa(config-isakmp-policy)# exitciscoasa(config)# crypto isakmp key 123.com address 201.0.0.2ciscoasa(config)# access-list lan3_lan1 permit ip 192.168.3.0 255.255.255.0 192.168.1.0 255.255.255.0ciscoasa(config)# crypto ipsec transform-set test-set esp-aes esp-md5-hmacciscoasa(config)# crypto map test-map 1 match address lan3_lan1ciscoasa(config)# crypto map test-map 1 set peer 201.0.0.2ciscoasa(config)# crypto map test-map 1 set transform-set test-setciscoasa(config)# crypto map test-map interface outsideR4#ping 192.168.1.10Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 192.168.1.10, timeout is 2 seconds:!!!!!

2、实现lan2→lan3通信:
ASA1配置如下

ciscoasa(config)# same-security-traffic permit intra-interface         # 允许流量进入和离开同一个接口ciscoasa(config)# access-list lan1_lan2 permit ip 192.168.3.0 255.255.255.0 192.168.2.0 255.255.255.0ciscoasa(config)# access-list lan1_lan3 permit ip 192.168.2.0 255.255.255.0 192.168.3.0 255.255.255.0

ASA2配置如下

ciscoasa(config)# access-list lan2_lan1 permit ip 192.168.2.0 255.255.255.0 192.168.3.0 255.255.255.0

ASA3配置如下

ciscoasa(config)# access-list lna3_lan1 permit ip 192.168.3.0 255.255.255.0 192.168.2.0 255.255.255.0R3#ping 192.168.3.10Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 192.168.3.10, timeout is 2 seconds:!!!!!

3、访问ISP
如果需要让内网能访问互联网,需要在ASA上做PAT,并启用nat控制,豁免***的流量

ASA1配置如下

ciscoasa(config)# nat-control           # 启用nat控制ciscoasa(config)# nat (inside) 1 0 0            # 配置patciscoasa(config)# global (outside) 1 interface                # 映射到接口# 不使用原来的ACL条目,因为有lan1_lan2和lan1_lan3,无法同时豁免两个,所以重新定义ACLciscoasa(config)# access-list aaa permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0ciscoasa(config)# access-list aaa permit ip 192.168.1.0 255.255.255.0 192.168.3.0 255.255.255.0ciscoasa(config)# nat (inside) 0 access-list aaa                # 应用到接口

ASA2配置如下

ciscoasa(config)# nat (inside) 1 0 0ciscoasa(config)# global (outside) 1 interfaceciscoasa(config)# nat (inside) 0 access-list lan2_lan1

ASA3配置如下

ciscoasa(config)# nat (inside) 1 0 0ciscoasa(config)# global (outside) 1 interfaceciscoasa(config)# nat (inside) 0 access-list lan3_lan1

推荐站点

  • 腾讯腾讯

    腾讯网(www.QQ.com)是中国浏览量最大的中文门户网站,是腾讯公司推出的集新闻信息、互动社区、娱乐产品和基础服务为一体的大型综合门户网站。腾讯网服务于全球华人用户,致力成为最具传播力和互动性,权威、主流、时尚的互联网媒体平台。通过强大的实时新闻和全面深入的信息资讯服务,为中国数以亿计的互联网用户提供富有创意的网上新生活。

    www.qq.com
  • 搜狐搜狐

    搜狐网是全球最大的中文门户网站,为用户提供24小时不间断的最新资讯,及搜索、邮件等网络服务。内容包括全球热点事件、突发新闻、时事评论、热播影视剧、体育赛事、行业动态、生活服务信息,以及论坛、博客、微博、我的搜狐等互动空间。

    www.sohu.com
  • 网易网易

    网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。

    www.163.com
  • 新浪新浪

    新浪网为全球用户24小时提供全面及时的中文资讯,内容覆盖国内外突发新闻事件、体坛赛事、娱乐时尚、产业资讯、实用信息等,设有新闻、体育、娱乐、财经、科技、房产、汽车等30多个内容频道,同时开设博客、视频、论坛等自由互动交流空间。

    www.sina.com.cn
  • 百度一下百度一下

    百度一下,你就知道

    www.baidu.com