Cisco路由器之Easy虚拟专用网(解决出差员工访问公司内网的问题)
博文大纲:
一、在路由器上实现Easy 虚拟专用网需要配置什么?
二、配置实例
前言:由于“Virtual Private Network”(请看首字母,就知道是什么咯)是敏\感词汇,所以在博文中使用它的中文名字“虚拟专用网”来代替。
在之前写过了Cisco路由器之IPSec 虚拟专用网;在Cisco的ASA防火墙上实现IPSec虚拟专用网。这两篇博文都是用于实现总公司和分公司之间建立虚拟专用网的,那么还有一种使用很多的情况,就是出差人员想要访问公司内网的资源呢?由于出差人员只是单一的一个客户端,所以和前两篇博文不一样,前两篇博文搭建虚拟专用网,两端设备都是路由器或防火墙,有固定的IP地址,所以呢,并不能实现出差人员访问,这篇博文的目的,就是实现出差人员可以访问公司内网资源的,这个技术被称之为——Easy 虚拟专用网。
一、在路由器上实现Easy 虚拟专用网需要配置什么?
这篇博文将写下如何在路由器上实现Easy 虚拟专用网。如果网关设备是Cisco ASA防火墙,配置可参考:Cisco ASA防火墙之Easy虚拟专用网
1、XAUTH身份验证
在原有的IPSec协议上,并没有用户验证的功能,所以引入了一个RFC的草案——XAUTH。它是一个虚拟专用网网关的增强特性,提供用户名和密码的方式来验证用户身份。由于这个过程是在两个连接建立之间完成的,所以被戏称为“阶段1.5”(关于两个阶段的介绍,可以参考Cisco路由器之IPSec 虚拟专用网,有详细的介绍)。
谈到用户验证自然就涉及到了用户名和密码的存储方式,通常情况下有两种方式:
- 存储在虚拟专用网网关设备的内部数据库中,实现简单,我接下来就使用这种方式;
- 存储在第三方设备上,如一台AAA服务器。
2、组策略
要实现Easy 虚拟专用网,那么一定要在虚拟专用网设备上配置一些策略,然后,当客户端来连接虚拟专用网设备时,经过身份验证后,主动将配置的策略推送给客户端,以便成功建立连接,那么这个提前被配置的策略就被称之为组策略。
组策略包含如下:
(1)地址池:可以使虚拟专用网设备像DHCP服务器一样为每个通过验证的客户端“推送”IP地址。这样,由于客户端的IP地址是虚拟专用网网关动态分配的,虚拟专用网设备自然也就知道该与哪个IP建立虚拟专用网连接。示意图如下:
(2)DNS和网关:和DHCP服务器一样,除了给客户端分配IP地址以外,还要分配网关和DNS,这样客户端就拥有了内网的IP、网关及DNS等必备的资源,真正成为内网的一员,如下所示:
(3)交换共享密钥:在远程访问虚拟专用网中,虚拟专用网网关需要与多组客户端“共享密钥”,因此在配置虚拟专用网时需要为每组客户端设置不同的共享密钥,客户端的密钥并不是虚拟专用网网关推送的,而是需要用户通过客户端软件配置在主机上,而这个过程一般是由公司的网络管理员来实现的,那么这个密钥自然是保存在客户端主机本地了,因此才有了“阶段1.5”的存在,如下:
(4)分离隧道:默认情况下,客户端与虚拟专用网网关建立隧道后,只能访问内网授权的资源,这是因为隧道会允许所有的流量,也就是说所有的流量必须经过隧道到达公司内网,自然也就不允许任何流量访问外网,而对于客户端而言,访问外网,再正常不过了,所以需要针对远程访问虚拟专用网配置ACL来分离隧道,通过配置ACL,所有“permit”的流量都被加密传输,所有“deny”的流量都被明文传输,而加密的流量就是通过隧道访问公司内网的流量,明文的流量就是访问Internet的流量,将这个ACL应用到组策略中即可实现需求,如下:
(5)分离DNS:当客户端主机通过远程访问虚拟专用网连接到公司内网,即使隧道分离后,客户端访问Internet的web服务器时,也需要使用公司内网的DNS解析,但这不是一个合理的过程,如果客户端每次访问百度,都要经过公司内网进行DNS解析,其实是没必要的,太浪费资源了,所以要实现客户端访问公司内网的web服务器时,使用公司内网的DNS解析,若访问百度,则使用外网的DNS,如果要实现不同的域名使用不同的DNS,就需要用到了分离DNS,如下图:
3、动态crypto map
因为我们无法实现在虚拟专用网设备的静态crypto map中指定客户端的地址(客户端的地址由虚拟专用网的DHCP服务分发,不是固定的),所以需要将静态crypto map中需要的参数被动态填充,使用动态crypto map 必须采用ISAKMP/IKE发起协商,而且在实现远程访问虚拟专用网的时候通常在虚拟专用网网关上同时配置静态和动态的crypto map,因为只有一台具有静态配置的设备可以发起IPSec的隧道,也正是如此,动态的crypto map很少被用于L2L(局域网to局域网)会话建立。
在实现远程访问虚拟局域网的时候,一般会先配置transform-set,因为指定传输集与peer的IP地址无关,可以将传输集直接应用到动态crypto map;由于在接口上只能配置一个crypto map,且虚拟专用网网关上必须有静态crypto map,所以需将动态crypto map 应用到静态的crypto map中,再将静态crypto map应用到接口上,这就是配置crypto map的一般思路,如下图所示:
二、配置实例
1、网络环境如下:
2、环境分析:
(1)在公司网关路由器上配置虚拟专用网,客户端(出差人员)可以连接到虚拟专用网,并访问内网提供的DNS服务及HTTP(www.lvjianzhao.com ) 服务(使用该域名访问,内网中的DNS负责解析该域名),为了简化环境,所以集成到一台服务器上了。
(2)客户端连接到虚拟专用网后,还可以使用Internet的DNS及HTTP服务,模拟www.baidu.com 网站服务,并使用Internet上的服务器提供的DNS服务解析该域名。
(3)自行配置正确的路由器接口及各个服务器的IP、网关、路由(服务器配置相应的网关,路由器R1只需配置接口IP及一条默认路由指向R2路由器即可,R2路由器除了接口IP以外什么都不要配置,尤其是路由表,否则可能测试不出来虚拟专用网的效果)。
(4)客户端需要安装Cisco提供的客户端软件进行连接。
3、配置前准备:
(1)下载客户端使用的软件,并安装在客户端,用来连接虚拟专用网(我这里提供的是windows 7的client安装包,如果客户端是Windows 10,请参考博文:Windows 10 安装虚拟专用网client端):。
(2)自行配置路由器接口IP地址及路由(这些基础配置命令就不展示了,我之前的博文有写到过,或者自行百度吧)。。
(3)自行配置各个服务器及客户端的IP及网关。
(4)自行在相关服务器上搭建HTTP服务及DNS服务(这两个服务不是这篇博客想要介绍的,我这里简单搭了一个,我之前的博文有搭相关服务的,可以自行查看)。
4、开始配置:
当所有基础配置(接口IP地址、路由、网关)配置完毕后,即可进行以下虚拟专用网的配置。
(1)公司网关R1路由器配置如下:
R1(config)#aaa new-model #启用AAA #以下是为远程访问虚拟专用网客户端进行认证及授权。 # “ test1-authen”是自定义的认证名称,“local”表示本地认证方式, #也可以使用“group radius”,路由器会转发给指定的RADIUS服务器进行验证, #这里就使用“local”了,方便。 R1(config)#aaa authentication login test1-authen local #认证 R1(config)#aaa authorization network test1-author local #授权 #以下是配置用于客户端连接的用户名及密码,“secret”表示加密该密码。 #可以配置多个用户名和密码,以供路由器与多组客户端进行身份验证。 R1(config)#username lvjianzhao secret 2019.com #以下是"配置虚拟专用网阶段1",是指定管理连接的相关参数,加密算法等。 R1(config)#crypto isakmp policy 10 R1(config-isakmp)#encryption 3des R1(config-isakmp)#hash sha R1(config-isakmp)#authentication pre-share R1(config-isakmp)#group 2 R1(config-isakmp)#exit #阶段1至此配置完毕。 #接下来"配置阶段1.5",就是需要在管理连接后建立成功后,推送给客户端的配置了。 #以下是配置一个地址池,池中的地址是向客户端分发的, #地址池的网段地址,不可以和内网使用同一网段,否则将会影响最终通信 R1(config)#ip local pool test-pool 192.168.1.200 192.168.1.210 #以下是定义一个命名的ACL,这个ACL是推送给客户端使用的,只有ACL允许的源地址是可以被客户端访问的。 R1(config)#ip access-list extended fenli-acl #这个ACL是允许192.168.0.0去往任何地址,当推送到客户端时,就会反过来。 #变成了允许任何IP地址访问192.168.0.0。因为这里的源地址是站在路由器的角度的。 R1(config-ext-nacl)#permit ip 192.168.0.0 0.0.0.255 any #以下是创建用户组 R1(config)#crypto isakmp client configuration group test-group R1(config-isakmp-group)#key pwd123 #用户组的密钥 R1(config-isakmp-group)#pool test-pool #应用刚才创建的地址池 R1(config-isakmp-group)#dns 192.168.0.1 #为客户端指定DNS R1(config-isakmp-group)#acl fenli-acl #引用刚才创建的ACL R1(config-isakmp-group)#split-dns lvjianzhao.com #指定需要分离出来的域名(内网的域名) R1(config-isakmp-group)#exit #阶段1.5至此就配置完毕了。 #"配置阶段2,也就是数据连接的相关配置" R1(config)#crypto ipsec transform-set test-set esp-3des esp-sha-hmac #配置传输集 R1(cfg-crypto-trans)#exit R1(config)#crypto dynamic-map test-dymap 1 #创建动态map,“1”是序号,用来定义优先级 R1(config-crypto-map)#set transform-set test-set #在动态crypto map中定义transform-set(传输集) R1(config-crypto-map)#exit #以下是配置应用到静态crypto map中,由于同一台网关设备还会存在和分公司的虚拟专用网静态map, #所以建议将这种方式的虚拟专用网配置的序号靠后一点,优先匹配与分公司之间的虚拟专用网静态map,这里定义为1000 R1(config)#crypto map test-stamap 1000 ipsec-isakmp dynamic test-dymap #引用刚才创建的动态map。 #以下配置是用于让客户端发起连接 R1(config)#crypto map test-stamap client authentication list test1-authen R1(config)#crypto map test-stamap isakmp authorization list test1-author R1(config)#crypto map test-stamap client configuration address respond #以下配置是应用到公司网关路由器的外网接口。 R1(config)#int f1/0 R1(config-if)#crypto map test-stamap
公司网关路由器上关于虚拟专用网的配置已经完成了,现在使用客户端安装专用软件,连接虚拟专用网,并测试访问即可。
(2)客户端配置如下:
将我提供的压缩包解压后安装虚拟专用网的客户端软件。
还需要再次解压,选择解压到哪里:
解压后,会弹出下面的安装向导,如下,选择安装语言:
基本上就是无脑下一步了,自己看吧!
选择安装路径:
等待安装完成即可!
安装完成后,可以通过以下来找到client软件:
单击打开client:
添加一个连接:
填写具体信息:
连接虚拟专用网:
弹出以下对话框后,填写在网关设备上创建的用户及密码:
连接成功后,可以查看我们客户端的网络适配器有什么变化。
使用客户端分别访问www.lvjianzhao.com 及 www.baidu.com 即可验证公司内网及Internet上的http服务和DNS服务
至此,效果实现,客户端既可以访问公司内网的服务,也可以访问Internet的服务,OK,齐活。
———————— 本文至此结束,感谢阅读 ————————

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
海量数据的分页怎么破
一、背景 分页应该是极为常见的数据展现方式了,一般在数据集较大而无法在单个页面中呈现时会采用分页的方法。各种前端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...
- 下一篇
基于虚拟隧道的IPsec -华三 MSR26 路由器对接Juniper SSG
业务需要,做个IPSec,本来想做传统的基于策略的IPsec,后面想了下还是做基于虚拟隧道的IPSec*后续方便扩展。这种不同厂商设备做 威皮N 本来就各种问题,做之前就心有揣之。 果不其然配置过程遇到几个问题,找了厂家,厂家回复说很少做基于虚拟隧道的*,一时半会找不到问题,后续还是自己一步步排查** H3C路由配置:配置第一阶段协商参数比较重要,华三路由器有默认的,但是不同厂商之间默认参数有时候会对不上 ike local-name h3c //设置本地ID ike proposal 20 //配置第一阶段参数 dh group2 authentication-algorithm md5 encryption-algorithm des-cbc authentication-method pre-share ike peer juniperfw //配置对等体,因为本端ADSL无固定IP,本地ID跟对端ID 要两端匹配上 exchange-mode aggressive proposal 20 pre-shared-key cipher 123456 id-type name rem...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS关闭SELinux安全模块
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6