Cisco的ASA防火墙和路由器上实现IPSec虚拟专用网
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cisco的ASA防火墙和路由器上实现IPSec虚拟专用网相关的知识,希望对你有一定的参考价值。
博文目录
一、IPSec 虚拟专用网故障排查
二、配置防火墙和路由器实现IPSec 虚拟专用网
三、总结
关于IPSec 虚拟专用网工作原理及概念,前面写过一篇博文:Cisco路由器IPSec 虚拟专用网原理与详细配置,博客里都有详细介绍,前面是在公司网关使用的是Cisco路由器的情况下来搭建虚拟专用网的,今天来配置一下在ASA防火墙上实现IPSec 虚拟专用网。
由于“Virtual Private Network”(请看首字母,就知道是什么了)是敏\感词,所以在博文中使用它的中文名字“虚拟专用网”来代替。
一、IPSec 虚拟专用网故障排查
IPSec 虚拟专用网在工作中应用很广泛,除了掌握如何组建IPSec对等体实现虚拟专用网通信,还应具备一定的故障排查能力。
1、"show crypto isakmp sa"命令
上面超链接的博文讲过,通过“show crypto isakmp 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"命令
如果希望更加详细地了解整个过程,可以使用“debug crypto isakmp”命令,该命令是工作中最常用诊断和排查管理连接出现问题的命令。
将路由器的加密算法有DES改为3DES,这时对等体间阶段1的加密算法显然不匹配,通过“debug crypto isakmp”命令可以很清楚地看到这点。如下图所示:
路由器依然会逐条对比策略,之后发现,“Encryption algorthm offered does not match policy!”(加密算法不匹配),所以“atts are not acceptable”(策略不被接受)。然后路由器会与本地的默认策略进行对比,如果依然没有匹配的策略,就会得出结论“no offers accepted!”(没有策略匹配),最后路由器会回到“MM_NO_STATE”状态。
二、配置防火墙和路由器实现IPSec 虚拟专用网
1、网络环境如下:
2、环境分析:
1)、总公司内网使用192.168.10.0/24网段地址,分公司使用192.168.20.0/24网段地址。ISP路由器为公网上的路由器。R1及ASA-1为总公司及分公司的网关服务器,所以一定会存在默认路由指向公网的路由器。
2)、总公司的内网及分公司的内网之间要建立虚拟专用网,但如果不配置别的东西,是会影响内网访问Internet的,一般都是既可以建立虚拟专用网,也可以访问Internet,所以这个问题也要解决。
3、需求如下:
1、要求实现总公司192.168.10.0/24和分公司的192.168.20.0/24网段通过虚拟专用网实现互通,并且不要影响这两个网段访问公网,也就是ISP路由器(访问公网路由器,通过端口复用的PAT技术实现,不要在ISP路由器上配置任何路由)。
4、开始配置:
配置基本网络参数
1)ASA配置如下:
ASA(config)# int eth0/0 #进入接口
ASA(config-if)# nameif outside #接口配置为outside
ASA(config-if)# ip add 192.168.100.1 255.255.255.0 #接口配置IP地址
ASA(config-if)# no shu #启用接口
ASA(config-if)# exit
ASA(config)# int eth0/1 #进入接口
ASA(config-if)# nameif inside #接口配置为inside
ASA(config-if)# ip add 192.168.10.254 255.255.255.0 #接口配置IP地址
ASA(config-if)# no shu #启用接口
ASA(config-if)# exit
ASA(config)# route outside 0 0 192.168.100.254 #配置去往公网的IP地址
ASA(config)# access-list out_to_in permit ip any any #创建ACL允许所有流量通过outside接口进入inside
ASA(config)# access-group out_to_in in interface outside #ACL应用到outside接口
2)ISP配置如下:
ISP(config)#int f0/0 #(相关注释请参考上面)
ISP(config-if)#ip add 192.168.100.254 255.255.255.0
ISP(config-if)#no shu
ISP(config-if)#no shutdown
ISP(config-if)#exit
ISP(config)#int f1/0
ISP(config-if)#ip add 192.168.200.254 255.255.255.0
ISP(config-if)#no shutdown
ISP(config-if)#exit
ISP(config)#int loopback 0 #创建loop back 0接口(模拟Internet网)
ISP(config-if)#ip add 100.100.100.100 255.255.255.255 #配置IP地址
ISP(config-if)#no shutdown #启用接口
ISP(config-if)#exit
3)R1配置如下:
R1(config)#int f1/0
R1(config-if)#ip add 192.168.200.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#int f0/0
R1(config-if)#ip add 192.168.20.254 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.200.254 #配置去往公网的路由
4)PC1配置如下:
PC1(config)#no ip routing #关闭路由功能
PC1(config)#int f0/0
PC1(config-if)#ip add 192.168.10.1 255.255.255.0
PC1(config-if)#no shutdown
PC1(config-if)#exit
PC1(config)#ip default-gateway 192.168.10.254 #配置网关
PC1(config)#exit
5)PC2配置如下:
PC2(config)#no ip routing
PC2(config)#int f0/0
PC2(config-if)#ip add 192.168.20.1 255.255.255.0
PC2(config-if)#no shutdown
PC2(config-if)#exit
PC2(config)#ip default-gateway 192.168.20.254
PC2(config)#exit
配置IPSec 虚拟专用网
R1配置如下:
R1(config)#crypto isakmp policy 1 #策略序列号为“1”,范围是1~10000,数值越小,优先级越高
R1(config-isakmp)#encryption aes #配置加密算法
R1(config-isakmp)#hash sha #hash命令指定验证过程中采用的散列算法
R1(config-isakmp)#authentication pre-share #配置共享密钥的方式为“预先共享密钥”
R1(config-isakmp)#lifetime 86400 #配置保持时间,默认保持时间为24小时
R1(config-isakmp)#group 2 #配置加密共享密钥方式使用dh算法
R1(config-isakmp)#exit
R1(config)# access-list 100 permit ip 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255#创建ACL抓取需要走虚拟专用网的流量
R1(config)#crypto ipsec transform-set sh-set esp-aes esp-sha-hmac #配置传输集指定加密和验证算法
R1(cfg-crypto-trans)#exit
R1(config)#crypto isakmp key 0 pwd@123 address 192.168.100.1 #创建共享密钥和对等体IP地址建立IPSec 虚拟专用网连接
R1(config)#crypto map sh-虚拟专用网简写 1 ipsec-isakmp #创建crypto map调用,名字为bj-虚拟专用网简写
R1(config-crypto-map)#match address 100 #调用ACL抓取本地走虚拟专用网的流量
R1(config-crypto-map)#set peer 192.168.100.1 #调用对等体的IP地址
R1(config-crypto-map)#set transform-set sh-set #调用本地创建的传输集
R1(config-crypto-map)#exit
R1(config)#interface fastEthernet 1/0 #进入到外网接口,也就是0/0接口
R1(config-if)#crypto map sh-虚拟专用网简写 #应用创建的map
ASA防火墙配置如下:
ASA(config)# crypto isakmp policy 1 #策略序列号为“1”,范围是1~10000,数值越小,优先级越高
ASA(config-isakmp-policy)# encryption aes #配置加密算法
ASA(config-isakmp-policy)# hash sha #hash命令指定验证过程中采用的散列算法
ASA(config-isakmp-policy)# authentication pre-share #配置共享密钥的方式为“预先共享密钥”
ASA(config-isakmp-policy)# lifetime 86400 #配置保持时间,默认保持时间为24小时
ASA(config-isakmp-policy)# group 2 #配置加密共享密钥方式使用dh算法
ASA(config-isakmp-policy)# exit
ASA(config)# access-list 100 permit ip 192.168.10.0 255.255.255.0 192.168.20.0 255.255.255.0 #创建ACL抓取需要走虚拟专用网的流量 (防火墙掩码是正掩码,路由器是反掩码)
ASA(config)# crypto ipsec transform-set bj-set esp-aes esp-sha-hmac #配置传输集指定加密和验证算法
ASA(config)# crypto isakmp key pwd@123 address 192.168.200.1 #创建共享密钥和对等体IP地址建立IPSec 虚拟专用网连接
ASA(config)# crypto map bj-虚拟专用网简写 1 match address 100 #调用ACL识别要走虚拟专用网的流量
ASA(config)# crypto map bj-虚拟专用网简写 1 set peer 192.168.200.1 #调用对等体IP地址
ASA(config)# crypto map bj-虚拟专用网简写 1 set transform-set bj-set #调用本地创建的传输集
ASA(config)# crypto isakmp enable outside #开启IKE协商
ASA(config)# crypto map bj-虚拟专用网简写 interface outside #应用crypto map到外网接口
5、验证IPSec 虚拟专用网
查看IPSec 虚拟专用网管理连接是否建立
IPSec虚拟专用网也就配置完成了,现在PC1和PC2客户端可以互相通信了,开始配置NAT实现两个PC机可以访问Internet网(也就是ISP路由器的loop back0接口)。
6、配置NAT实现客户端访问Internet网
目前两个PC机是ping不通ISP路由器的loop back 0接口的。如下图:
ASA防火墙配置如下:
ASA(config)# nat (inside) 1 192.168.10.0 255.255.255.0 #将内部网段转换为外部接口地址
ASA(config)# global (outside) 1 interface
ASA(config)# fixup protocol icmp #开启icmp协议,防火墙默认是关闭的
ASA(config)# nat-control #开启nat控制
ASA(config)# access-list nonat permit ip 192.168.10.0 255.255.255.0 192.168.20.0 255.255.255.0 #创建ACL抓取流量
ASA(config)# nat (inside) 0 access-list nonat
R1配置如下:
R1(config)#access-list 110 deny ip 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 #创建ACL抓取拒绝虚拟专用网的流量
R1(config)#access-list 110 permit ip any any #允许所有流量
R1(config)#ip nat inside source list 110 int f1/0 overload #采用端口复用的PAT方式,解决内网访问互联网的问题
R1(config)#int f1/0 #进入接口
R1(config-if)#ip nat outside #启用nat功能,接口为outside
R1(config-if)#int f0/0 #进入接口
R1(config-if)#ip nat inside #启用nat功能,接口为inside
R1(config-if)#exit
至此实验需求已经全部满足,既可以访问Internet网,也不影响PCC1和PC2网段通过虚拟专用网互通。
7、验证NAT配置
通过上图可以看出,既可以访问Internet网,PC1到PC2网段又可以通过虚拟专用网互通。
三、总结
1、在数据连接建立过程中,ASA防火墙只支持ESP协议,因此,对端是路由器,也得使用ESP协议实现数据验证功能,路由器与ASA才可以成功地建立数据连接。
2、IKE协商在路由器上是默认开启的,但是在ASA上模式是关闭的,需要使用命令“ crypto isakmp enable outside”开启。
3、防火墙不支持show crypto isakmp policy命令,可以通过show run查看。
4、ASA默认放行一切虚拟专用网的流量,因为虚拟专用网的流量本来就是安全的,所以ASA为其开绿灯。
———————— 本文至此结束,感谢阅读 ————————
以上是关于Cisco的ASA防火墙和路由器上实现IPSec虚拟专用网的主要内容,如果未能解决你的问题,请参考以下文章
Cisco 路由器上配置Easy虚拟专用网(解决员工出差访问公司内网)
Cisco ASA 实现 IPSec 虚拟专用网(内附故障排查)
Cisco路由器之Easy虚拟专用网(解决出差员工访问公司内网的问题)