在Cisco的ASA防火墙上实现IPSec虚拟专用网
博文大纲:
- 一、网络环境需求
- 二、配置前准备
- 三、配置虚拟专用网
- 四、总结
前言:
之前写过一篇博文:Cisco路由器之IPSec 虚拟专用网,那是在公司网关使用的是Cisco路由器的情况下,来搭建虚拟专用网的,那么公司网关若是Cisco的ASA防火墙呢?就让这篇博文来带你配置一下。
注:虚拟专用网:(Virtual Private Network),请看英文的首字母,就知道是什么咯,由于它是敏/感词汇,所以文中全部使用虚拟专用网来代替
关于其中的知识点及相关概念,都在文章开头的那篇博文链接中介绍的差不多了,在防火墙和路由器上实现虚拟专用网,原理差不多,所以这里就不啰嗦了,直接上配置。
网络环境如下:
一、网络环境需求
1、需要在总公司和各个分公司的网关ASA上建立IPSec虚拟专用网,实现总公司和分公司的某个网段(一般是只有某个部门有互通的必要性)互通。
2、两个分公司之间也需要配置虚拟专用网实现互通,并且是通过总公司的网关ASA的outside区域的E0/1实现互通的(当然,也可以绕过总公司的ASA防火墙,根据实际需求来定即可)。
3、不但总公司与分公司之间需要有虚拟专用网,而且不要影响公司内部主机访问Internet(通过端口PAT来实现,配置完成后,Telnet登录R2路由器进行验证)。
4、公司内部使用路由器来代替PC机进行测试,Internet的R2路由器除了配置IP地址外,不可配置任何路由条目。
二、配置前准备
(若直接在生产环境配置,并且配置了基本接口IP、路由等。则可以忽略配置前准备)
1、我这里使用的是GNS3模拟器,自行搭建网络拓扑图,使用防火墙时,需要将接口类型改一下,如下(GNS3默认不带防火墙,需要自行载入,若需要帮助,可以私信我):
2、自行配置接口IP地址以及路由条目,范例如下:
'路由器配置接口IP及路由条目(R2除外,都需要配置默认路由,相当于它的网关)' R1#conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)#in f0/0 R1(config-if)#ip add 192.168.1.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#ip route 0.0.0.0 0.0.0.0 192.168.1.254 '防火墙ASA配置接口IP及路由条目:' ciscoasa> en Password: #默认没有密码,直接回车即可 ciscoasa# conf t ciscoasa(config)# in e0/0 ciscoasa(config-if)# nameif inside #需要先定义区域 INFO: Security level for "inside" set to 100 by default. ciscoasa(config-if)# ip add 192.168.1.254 255.255.255.0 ciscoasa(config-if)# no sh ciscoasa(config)# in e0/1 ciscoasa(config-if)# nameif ouside INFO: Security level for "ouside" set to 0 by default. ciscoasa(config-if)# ip add 201.0.0.1 255.255.255.0 ciscoasa(config-if)# no sh ciscoasa(config-if)# route ouside 0 0 201.0.0.2 #配置默认路由,下一跳指向互联网的R2路由器。
三、配置虚拟专用网
配置完接口IP及路由信息,即可跟着配置下面的虚拟专用网。
1、配置总公司与分公司1之间的虚拟专用网:
(1)总公司的ASA-1配置如下:
ASA-1(config)# crypto isakmp enable outside #启用ISAKMP/IKE #'以下是配置ISAKMP策略(也就是管理连接的配置)' ASA-1(config)# crypto isakmp policy 1 #策略序列号为“1”,范围是1~10000,数值越小,优先级越高 ASA-1(config-isakmp-policy)# authentication pre-share #声明设备认证方式为“预先共享密钥” ASA-1(config-isakmp-policy)# encryption aes #配置加密算法 ASA-1(config-isakmp-policy)# hash md5 #hash命令指定验证过程中采用的散列算法 ASA-1(config-isakmp-policy)# group 2 #采用DH算法的强度为group2 ASA-1(config-isakmp-policy)# lifetime 10000 #可选,管理连接生存周期,默认为86400s(24小时) ASA-1(config-isakmp-policy)# crypto isakmp key 2019.com address 202.0.0.1 #配置“预先共享密钥” #'下面是数据连接配置' ASA-1(config)# access-list lan1_lan2 permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0 #定义虚拟专用网保护的流量 ASA-1(config)# crypto ipsec transform-set test-set esp-aes esp-md5-hmac #数据连接协商参数,“test-set”是自定义的名称 ASA-1(config)# crypto map test-map 1 match address lan1_lan2 #匹配的ACL ASA-1(config)# crypto map test-map 1 set peer 202.0.0.1 #虚拟专用网对端地址 ASA-1(config)# crypto map test-map 1 set transform-set test-set #将数据连接关联刚才创建的传输集 ASA-1(config)# crypto map test-map interface outside #将crypto map 应用到outside接口上。
关于配置中的命令已经在上面全部体现出来了,接下来的大多数配置命令都可在上面找到相应的注释,所以下面我就不写注释了(体谅一下懒癌晚期患者)。
(2)分公司1的ASA-2配置如下:
ASA-2(config)# crypto isakmp enable outside ASA-2(config)# crypto isakmp policy 1 ASA-2(config-isakmp-policy)# authentication pre-share ASA-2(config-isakmp-policy)# encryption aes ASA-2(config-isakmp-policy)# hash md5 ASA-2(config-isakmp-policy)# group 2 ASA-2(config-isakmp-policy)# lifetime 10000 ASA-2(config-isakmp-policy)# crypto isakmp key 2019.com address 201.0.0.1 ASA-2(config)# access-list lan2_lan1 permit ip 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0 ASA-2(config)# crypto ipsec transform-set test-set esp-aes esp-md5-hmac ASA-2(config)# crypto map test-map 1 match address lan2_lan1 ASA-2(config)# crypto map test-map 1 set peer 201.0.0.1 ASA-2(config)# crypto map test-map 1 set transform-set test-set ASA-2(config)# crypto map test-map interface outside
至此,总公司和分公司1的虚拟专用网就建立完成了,可以使用R3和R1进行ping测试,虚拟专用网建立连接需要时间,在路由及接口IP配置无误的情况下,ping个两三次才可ping通,如果ping了三五次都没ping通,多半是凉了,自行排错吧,通过show run命令查看哪里配置错了吧!
2、配置总公司与分公司3之间的虚拟专用网:
(1)总公司的ASA-1配置如下(关于管理连接的配置可以和总公司到分公司1的配置共用,可以说只要配置涉及了ACL及IP地址的命令改动下再配置一下就可以了):
ASA-1(config)# crypto isakmp key 2020.com address 203.0.0.1 ASA-1(config)# access-list lan1_lan3 permit ip 192.168.1.0 255.255.255.0 192.168.3.0 255.255.255.0 ASA-1(config)# crypto map test-map 2 match address lan1_lan3 WARNING: The crypto map entry is incomplete! ASA-1(config)# crypto map test-map 2 set peer 203.0.0.1 WARNING: The crypto map entry is incomplete! ASA-1(config)# crypto map test-map 2 set transform-set test-set
(2)分公司2的ASA-3配置如下:
ASA-3(config)# crypto isakmp enable outside ASA-3(config)# crypto isakmp policy 1 ASA-3(config-isakmp-policy)# authentication pre-share ASA-3(config-isakmp-policy)# encryption aes ASA-3(config-isakmp-policy)# hash md5 ASA-3(config-isakmp-policy)# group 2 ASA-3(config-isakmp-policy)# lifetime 10000 ASA-3(config-isakmp-policy)# crypto isakmp key 2020.com address 201.0.0.1 ASA-3(config)# access-list lan3_lan1 permit ip 192.168.3.0 255.255.255.0 192.168.1.0 255.255.255.0 ASA-3(config)# crypto ipsec transform-set test-set esp-aes esp-md5-hmac ASA-3(config)# crypto map test-map 1 match address lan3_lan1 ASA-3(config)# crypto map test-map 1 set peer 201.0.0.1 ASA-3(config)# crypto map test-map 1 set transform-set test-set ASA-3(config)# crypto map test-map interface outside
配置至此,分公司2的R4路由器就可以ping通总公司的R1路由器了。
3、配置分公司2和分公司3的虚拟专用网(其实就是配置几条ACL即可):
#'总公司的ASA-1配置如下:' ASA-1(config)# same-security-traffic permit intra-interface #允许流量进入和离开同一个接口,默认是禁止 ASA-1(config)# access-list lan1_lan2 permit ip 192.168.3.0 255.255.255.0 192.168.2.0 255.255.255.0 ASA-1(config)# access-list lan1_lan3 permit ip 192.168.2.0 255.255.255.0 192.168.3.0 255.255.255.0 #'分公司1的ASA-2配置如下:' ASA-2(config)# access-list lan2_lan1 permit ip 192.168.2.0 255.255.255.0 192.168.3.0 255.255.255.0 #'分公司2的ASA-3配置如下:' ASA-3(config)# access-list lan3_lan1 permit ip 192.168.3.0 255.255.255.0 192.168.2.0 255.255.255.0
至此,总公司、分公司1和分公司2之间的虚拟专用网就建立成功了。其中需要注意的是,分公司1和分公司2之间的虚拟专用网的建立是基于总公司的防火墙的,一旦总公司的防火墙出现故障,那么分公司1和分公司2之间的虚拟专用网也就不复存在了。也可以选择分公司1和分公司2之间直接建立虚拟专用网,它们之间的流量不再经过总公司的防火墙,这个可以根据实际情况来定即可。
那么,被虚拟专用网保护的流量,如何访问互联网资源呢?现在就通过PAT来实现。让每个公司内部的主机,既可以通过虚拟专用网访问到另一个公司的内部资源,也可以使每个公司内部的主机可以访问到互联网资源。
注:我查到的资料上看到,需要启用NAT控制,并且豁免虚拟专用网流量,但是,我测试发现完全不需要,直接在ASA上做了PAT端口映射即可实现想要的效果,原本想再验证下我的想法,但是网络环境已经被我关闭了,算了,有兴趣的话自行验证吧。
4、配置各个防火墙上的PAT端口映射:
总公司防火墙配置:
ASA-1(config)# nat-control ASA-1(config)# nat (inside) 1 0 0 ASA-1(config)# global (outside) 1 interface INFO: outside interface address added to PAT pool ASA-1(config)# access-list vpm permit ip 192.168.1.0 255.255.255.0 192.168.2.0$ ASA-1(config)# access-list vpm permit ip 192.168.1.0 255.255.255.0 192.168.3.$ ASA-1(config)# nat (inside) 0 access-list vpm
分公司1防火墙配置:
ASA-2(config)# nat-control ASA-2(config)# nat (inside) 1 0 0 ASA-2(config)# global (outside) 1 interface INFO: outside interface address added to PAT pool ASA-2(config)# nat (inside) 0 access-list lan2_lan1
分公司2防火墙配置:
ASA-3(config)# nat-control ASA-3(config)# nat (inside) 1 0 0 ASA-3(config)# global (outside) 1 interface INFO: outside interface address added to PAT pool ASA-3(config)# nat (inside) 0 access-list lan3_lan1
5、启用Internet中的R2路由器的Telnet功能,以便公司内部进行访问测试:
R2(config)#line vty 0 4 R2(config-line)#password 123 R2(config-line)#login R2(config-line)#exit R2(config)#enable secret 123456
6、验证(在验证过程中,发现会ping一两次才会完全ping通,刚开始会不通或丢包,属于正常现象,因为虚拟专用网建立连接也是需要时间的):
四、总结
1、在数据连接建立过程中,ASA防火墙只支持ESP协议,因此,如果对端是路由器,使用了AH协议实现数据验证功能,将无法与ASA成功地建立数据连接。
2、IKE协商在路由器上是默认开启的,但是在ASA上模式是关闭的,需要使用命令“ crypto isakmp enable outside”开启。
3、ASA上配置预共享密钥时,一般使用隧道组来配置密钥,隧道组配置密钥的过程将在下面文章末尾写出来,我在上面使用的配置方法,是和路由器上一样的配置方法,ASA会自动识别,并自动改为隧道组配置。
4、防火墙存在一种这样一个限制,就是流量从一个接口进入,就不能从相同安全级别的端口流出。当然也不可以进入和离开同一个接口,可以使用命令“ same-security-traffic permit intra-interface”,在上面的配置中,配置分公司1和分公司2时,由于流量需要进入和离开总公司的e0/1接口,所以在总公司的防火墙上配置了这条命令。
5、ASA默认放行一切虚拟专用网的流量,因为虚拟专用网的流量本来就是安全的,所以ASA为其开绿灯。
———————— 本文至此结束,感谢阅读 ————————
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
exchange灾难恢复篇——环境准备
原机器信息:系统版本:windows server 2003 r2 ent sp2 x64邮件版本:exchange2007 sp3计算机名:demo-mailIP地址:172.16.10.241数据库文件路径:F: \分区:CDF盘说明:客户邮件系统部署在hyper-v虚拟机,某天虚拟机存放数据库的D盘莫名其妙丢失,无法找回。有定期使用DPM对数据库进行备份。以下,开始准备环境:在活动目录中重置demo-MAIL计算机账户 更改灾难恢复服务器IP地址与旧邮件服务器IP一样更改灾难恢复服务器计算机名与旧邮件系统一样灾难恢复服务器加入域安装必备插件及补丁(这些插件已经很难找到了,恢复的大部分时间都在找插件)其它补丁安装截图略过……添加磁盘,分区驱动器号与原先旧邮件服务器保持一致,分区 容量大于等于原分区容量安装IIS服务 因旧版本邮件系统为exchange2007sp3,所以,这里使用exchange2007sp3.exe安装包进行灾难恢复。双击解压到目录Cmd进入到解压目录,运行setup.com /M:RecoverServer提示需要安装installer4.5对应网址下载 再次运...
- 下一篇
海量数据的分页怎么破
一、背景 分页应该是极为常见的数据展现方式了,一般在数据集较大而无法在单个页面中呈现时会采用分页的方法。各种前端UI组件在实现上也都会支持分页的功能,而数据交互呈现所相应的后端系统、数据库都对数据查询的分页提供了良好的支持。以几个流行的数据库为例: 查询表 t_data 第 2 页的数据(假定每页 5 条) MySQL 的做法: select * from t_data limit 5,5 PostGreSQL 的做法: select * from t_data limit 5 offset 5 MongoDB 的做法: db.t_data.find().limit(5).skip(5); 尽管每种数据库的语法不尽相同,通过一些开发框架封装的接口,我们可以不需要熟悉这些差异。如 SpringData 提供的分页接口: public interface PagingAndSortingRepository<T, ID extends Serializable> extends CrudRepository<T, ID> { Page<T> findAl...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境