在以前写过了Cisco路由器之IPSec 虚拟专用网;在Cisco的ASA防火墙上实现IPSec虚拟专用网。这两篇博文都是用于实现总公司和分公司之间创建虚拟专用网的,那么还有一种使用不少的状况,就是出差人员想要访问公司内网的资源呢?因为出差人员只是单一的一个客户端,因此和前两篇博文不同,前两篇博文.da.建.虚.拟.专.用网,两端设备都是路由器或防火墙,有固定的IP地址,因此呢,并不能实现出差人员访问,这篇博文的目的,就是实现出差人员能够访问公司内网资源的,这个技术被称之为——Easy 虚拟专用网。web
传送门:
Cisco路由器之IPSec 虚拟专用网:https://blog.51cto.com/14227204/2448319
Cisco ASA 实现 IPSec 虚拟专用网:http://www.javashuo.com/article/p-yibmzhvl-hp.html算法
1、在路由器上实现Easy 虚拟专用网须要配置什么?这篇博文将写下如何在路由器上实现Easy 虚拟专用网。若是网关设备是Cisco ASA防火墙,配置可参考:
一、XAUTH身份验证
在原有的IPSec协议上,并无用户验证的功能,因此引入了一个RFC的草案——XAUTH。它是一个虚拟专用网网关的加强特性,提供用户名和密码的方式来验证用户身份。因为这个过程是在两个链接创建之间完成的,因此被戏称为“阶段1.5”(关于两个阶段的介绍,能够参考Cisco路由器之IPSec 虚拟专用网,有详细的介绍)。数据库
谈到用户验证天然就涉及到了用户名和密码的存储方式,一般状况下有两种方式:windows
二、组策略
要实现Easy 虚拟专用网,那么必定要在虚拟专用网设备上配置一些策略,而后,当客户端来链接虚拟专用网设备时,通过身份验证后,主动将配置的策略推送给客户端,以便成功创建链接,那么这个提早被配置的策略就被称之为组策略。服务器
组策略包含以下:
(1)地址池:可使虚拟专用网设备像DHCP服务器同样为每一个经过验证的客户端“推送”IP地址。这样,因为客户端的IP地址是虚拟专用网网关动态分配的,虚拟专用网设备天然也就知道该与哪一个IP创建虚拟专用网链接。示意图以下:
(2)DNS和网关:和DHCP服务器同样,除了给客户端分配IP地址之外,还要分配网关和DNS,这样客户端就拥有了内网的IP、网关及DNS等必备的资源,真正成为内网的一员,以下所示:
(3)交换共享密钥:在远程访问虚拟专用网中,虚拟专用网网关须要与多组客户端“共享密钥”,所以在配置虚拟专用网时须要为每组客户端设置不一样的共享密钥,客户端的密钥并非虚拟专用网网关推送的,而是须要用户经过客户端软件配置在主机上,而这个过程通常是由公司的网络管理员来实现的,那么这个密钥天然是保存在客户端主机本地了,所以才有了“阶段1.5”的存在,以下:
(4)分离隧道:默认状况下,客户端与虚拟专用网网关创建隧道后,只能访问内网受权的资源,这是由于隧道会容许全部的流量,也就是说全部的流量必须通过隧道到达公司内网,天然也就不容许任何流量fang wen wai wang ,而对于客户端来讲,fang wen wai wang,再正常不过了,因此须要针对远程访问虚拟专用网配置ACL来分离隧道,经过配置ACL,全部“permit”的流量都被加密传输,全部“deny”的流量都被明文传输,而加密的流量就是经过隧道访问公司内网的流量,明文的流量就是访问Internet的流量,将这个ACL应用到组策略中便可实现需求,以下:
(5)分离DNS:当客户端主机经过远程访问虚拟专用网链接到公司内网,即便隧道分离后,客户端访问Internet的web服务器时,也须要使用公司内网的DNS解析,但这不是一个合理的过程,若是客户端每次访问百度,都要通过公司内网进行DNS解析,实际上是不必的,太浪费资源了,因此要实现客户端访问公司内网的web服务器时,使用公司内网的DNS解析,若访问百度,则使用Internet的DNS,若是要实现不一样的域名使用不一样的DNS,就须要用到了分离DNS,以下图:
三、动态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的通常思路,以下图所示:
2、配置实例
一、环境以下:
二、环境分析:ide
(1)在公司网关路由器上配置虚拟专用网,客户端(出差人员)能够链接到虚拟专用网,并访问内网提供的DNS服务及HTTP(www.test.com ) 服务(使用该域名访问,内网中的DNS负责解析该域名),为了简化环境,因此集成到一台服务器上了。
(2)客户端链接到虚拟专用网后,还可使用Internet的DNS及HTTP服务,模拟www.baidu.com 网站服务,并使用Internet上的服务器提供的DNS服务解析该域名。
(3)自行配置正确的路由器接口及各个服务器的IP、网关、路由(服务器配置相应的网关,路由器R1只需配置接口IP及一条默认路由指向R2路由器便可,R2路由器除了接口IP之外什么都不要配置,尤为是路由表,不然可能测试不出来虚拟专用网的效果)。
(4)客户端须要安装Cisco提供的客户端软件进行链接。
三、配置前准备:测试
(1)下载客户端使用的软件,并安装在客户端,用来链接虚拟专用网(我这里是windows 7的client安装包,若是客户端是Windows 10,请参考博文:Windows 10 安装虚拟专用网client端):https://blog.51cto.com/14154700/2431163
(2)自行配置路由器接口IP地址及路由(这些基础配置命令就不展现了,我以前的博文有写到过,或者自行百度吧)。
(3)自行配置各个服务器及客户端的IP及网关。
(4)自行在相关服务器上搭建web服务及DNS服务(这两个服务不是这篇博客想要介绍的,我这里简单搭了一个,我以前的博文有搭相关服务的,能够自行查看)。
四、开始配置
公司内网路由器配置(接口IP自行配置):网站
Router(config)#ip route 0.0.0.0 0.0.0.0 200.0.0.1 # 配置一条向外的默认路由 Router(config)#aaa new-model # 开启三A #如下是为远程访问虚拟专用网客户端进行认证及受权。 # “ test1-authen”是自定义的认证名称,“local”表示本地认证方式, #也可使用“group radius”,路由器会转发给指定的RADIUS服务器进行验证, #这里就使用“local”了,方便。 Router(config)#aaa authentication login test-authen local # 认证 Router(config)#aaa authorization network test-author local # 受权 Router(config)#username zhangsan secret 123123 # AAA的认证用户及密码 #如下是"配置虚拟专用网阶段1",是指定管理链接的相关参数,加密算法等 Router(config)#crypto isakmp policy 10 Router(config-isakmp)#encryption 3des Router(config-isakmp)#hash sha Router(config-isakmp)#authentication pre-share Router(config-isakmp)#group 2 #阶段1至此配置完毕 Router(config-isakmp)#exit #接下来"配置阶段1.5",就是须要在管理链接后创建成功后,推送给客户端的配置了。 #如下是配置一个地址池,池中的地址是向客户端分发的, #地址池的网段地址,不能够和内网使用同一网段,不然将会影响最终通讯 Router(config)#ip local pool test-pool 192.168.1.200 192.168.1.210 #如下是定义一个命名的ACL,这个ACL是推送给客户端使用的,只有ACL容许的源地址是能够被客户端访问的 Router(config)#ip access-list extended split-acl #这个ACL是容许192.168.0.0去往任何地址,当推送到客户端时,就会反过来。 #变成了容许任何IP地址访问192.168.0.0。由于这里的源地址是站在路由器的角度的。 Router(config-ext-nacl)#permit ip 192.168.0.0 0.0.0.255 any #如下是建立用户组 Router(config)#crypto isakmp client configuration group test-group Router(config-isakmp-group)#key 321321 # 用户组密码 Router(config-isakmp-group)#pool test-pool # 应用刚才定义的地址池 Router(config-isakmp-group)#dns 192.168.0.10 # 指定dns Router(config-isakmp-group)#acl split-acl # 应用acl Router(config-isakmp-group)#split-dns test.com # 指定要分离出来的域名 Router(config-isakmp-group)#exit #阶段1.5至此就配置完毕了。 #"配置阶段2,也就是数据链接的相关配置" Router(config)#crypto ipsec transform-set test-set esp-3des esp-sha-hmac # 配置传输集 Router(cfg-crypto-trans)#exit Router(config)#crypto dynamic-map test-dymap 1 # 建立动态map,“1”是序号,用来定义优先级 Router(config-crypto-map)#set transform-set test-set #在动态crypto map中定义transform-set(传输集) Router(config-crypto-map)#exit #如下是配置应用到静态crypto map中,因为同一台网关设备还会存在和分公司的虚拟专用网静态map, #因此建议将这种方式的虚拟专用网配置的序号靠后一点,优先匹配与分公司之间的虚拟专用网静态map,这里定义为1000 Router(config)#crypto map test-stamap 1000 ipsec-isakmp dynamic test-dymap #引用刚才建立的动态map # 如下配置是让客户端发起链接 Router(config)#crypto map test-stamap client authentication list test-authen Router(config)#crypto map test-stamap isakmp authorization list test-author Router(config)#crypto map test-stamap client configuration address respond Router(config)#int f 0/1 Router(config-if)#crypto map test-stamap # 应用到接口
公司网关路由器上关于虚拟专用网的配置已经完成了,如今使用客户端安装专用软件,链接虚拟专用网,并测试访问便可。
客户端配置以下:
使用客户端进行访问验证:加密