1. 用路由器实现站点到站点的EZ×××
EZ×××有的也写作Easy ×××,顾名思义就是容易使用的×××。它是Cisco开发的用于简化远程端配置和管理的一种基于IPSec ×××的实现,降低了×××在实施过程中的复杂程度。EZ×××的结构由EZ×××的服务器端和若干远程的EZ×××客户端组成,服务器端是整个EZ×××网络的中心节点,它的主要的参数定义和配置都是在服务器端完成,而EZ×××的客户端只需要几条简单的命令就可以完成×××的配置,所以在企业中,远程的分支机构不需要配备专业的IT技术人员就可以完成×××的配置。
EZ×××的远程客户端支持三种操作模式,分别是客户端模式、网络扩展模式和网络扩展加模式。
客户端模式是默认的模式,它需要由作为EZ×××服务器端的路由器来分配地址,然后通过客户端路由器自动建立NAT/PAT转换来实现与服务器端的通讯;
网络扩展模式不需要由EZ×××服务器端路由器分配地址,这种方式下,客户端的网络被认为是一个完全可路由的网络,客户端路由器上也不会自动的建立NAT/PAT;
网络扩展模式加是对网络扩展模式的扩展,主要就是增加了能够通过MC和自动分配功能为回环接口请求IP地址的功能,EZ×××的远端会为这个接口自动创建IPSec SA。这个接口主要被用来排错(如用ping,Telnet或SSH);
下面仍以笔者单位为例来说明EZ×××的配置。笔者单位除了几个分公司以外,还有若干个改制单位和存续企业,也需要连接到笔者单位的网络中。这些改制单位和存续企业由于规模都较小,没有复杂的网络结构,因此在部分拥有固定公网IP的单位笔者就采用了EZ×××这种方式来实现。对EZ×××客户端的模式笔者统一采用网络扩展模式,并对各改制单位的地址进行了统一的规划。由于规模都不大,因此就采用了C类的私有地址,从192.168.1.0开始依次类推,每个单位占用一个C类地址,改制单位采用Cisco1841路由器,拓扑结构如图二所示:
图2
武汉总部EZ×××服务器端路由器的配置:
ZB(config)#aaa new-model //启用aaa,用于授权EZ×××客户端访问网络
ZB(config)#aaa authorization network cjgs-remote local //建立授权的策略,策略名称为cjgs-remote,并使用本地的授权
ZB(config)#crypto isakmp policy 10 //定义ISAKMP的策略,参数和前面的例子一致,这个策略用于分配给EZ×××远程客户端
ZB(config-isakmp)#encryption 3des
ZB(config-isakmp)#authentication pre-share
ZB(config-isakmp)#hash sha
ZB(config-isakmp)#group 2
ZB(config)#crypto isakmp client configuration group cjgsez*** //定义MC(模式配置)中需要“推”的组策略,组名为cjgsez***,这个策略是将要推给客户端路由器的
ZB(config-isakmp-group)#key cjgs*** //定义IKE的预共享密钥
ZB(config-isakmp-group)#dns 172.19.63.10 //定义要推给客户端的DNS服务器地址
ZB(config-isakmp-group)#exit
ZB(config)#crypto ipsec transform-set cjgs***set esp-3des esp-sha-hmac //定义转换集和IPSec参数
ZB(config)#crypto dynamic-map cjgsdyna*** 10 //使用RRI建立动态加密映射,映射名称为cjgsdyna***,优先级为10,RRI(Reverse Route Injection逆向路由注入),目的是在服务器端的路由器上为每个客户端路由器的IP地址动态建立一条静态路由,并加入到路由表中
ZB(config-crypto-map)#set transform-set cjgs***set //将指定的转换集应用到动态加密映射中
ZB(config-crypto-map)#reverse-route //启用RRI
ZB(config)#crypto map cjgsmap client configuration address respond //配置加密映射响应客户端的请求,加密映射的名称为cjgsmap
ZB(config)#crypto map cjgsmap 10 ipsec-isakmp dynamic cjgsdyna*** //将RRI建立的动态加密映射应用到名称为cjgsmap的加密映射中去,并使用ISAKMP策略自动建立SA,优先级为10
ZB(config)#crypto map cjgsmap isakmp authorization list cjgs-remote //使用前面建立的cjgs-remote本地授权策略使客户端能够有权限访问网络
ZB(config)#int fa0/0
ZB(config-if)#crypto map cjgsmap //把加密映射应用到外部接口
EZ×××服务器端路由器的配置基本完成,但是在实际使用时还会碰到问题。因为那些改制单位都是在路由器上建立了NAT,使内部的用户能够访问互联网,但在和笔者单位建立了×××后,所有的流量到进入到×××的隧道中去了,造成互联网的访问中断,对这种情况的解决方案就是配置隧道分离,使得只有访问武汉总部的流量进入隧道,其它的流量进行NAT转换。配置如下:
ZB(config)#ip access-list ext to*** //建立需要进入到×××隧道的访问列表
ZB(config-ext-nacl)#permit ip 172.19.0.0 0.0.255.255 any //将武汉总部的地址段加入到列表中,表明只允许访问武汉总部的网络
ZB(config-ext-nacl)#exit
ZB(config)#crypto isakmp client configuration group cjgsez***
ZB(config-isakmp-group)#acl to*** //在推给用户的组策略中加入隧道分离,只允许到武汉总部的网络进入隧道
如果武汉总部的路由器上做了NAT,就需要在NAT的控制中将改制单位和存续企业的IP地址段加入到访问控制列表中,避免总部访问到这些地方的流量也做NAT转换。
EZ×××服务器端路由器的配置完成,下面再来看看客户端路由器的配置,客户端路由器的配置就要简单得多了,只需要配置客户端路由器的策略并应用到接口就可以了:
GZ(config)#crypto ipsec client ez*** gz*** //在改制单位的路由器上建立EZ×××客户端的策略,名称为gz***
GZ(config-crypto-ez***)#group cjgsez*** key cjgs*** //定义服务器端路由器组策略的名称,预共享密钥,这些参数需要和服务器端路由器的设置对应
GZ(config-crypto-ez***)#peer 59.175.234.100 //指定服务器端路由器公网接口的地址
GZ(config-crypto-ez***)#mode network-extension //定义客户端的使用模式,这里采用的是网络扩展模式
GZ(config-crypto-ez***)#connect auto //配置客户端自动连接
GZ(config)#int fa0/0 //把策略应用到接口上,在应用策略时要注意客户端路由器的EZ×××接口分内部接口和外部接口,公网接口为外部接口,局域网的接口为内部接口,两个接口都要进行配置,否则EZ×××无法建立
GZ(config-if)#crypto ipsec client ez*** gz*** //应用到外部接口
GZ(config)#int fa0/1
GZ(config-if)#crypto ipsec client ez*** gz*** inside //应用到内部接口
客户端路由器的配置完成,很快IPSec ×××隧道就自动的建立起来了,经过测试,改制单位到互联网的访问和到武汉总部的访问均不受影响。在服务器端路由器上用sh ip route命令能够发现自动的添加了一条到该改制单位的静态路由,如果有多个改制单位连接进来,就会增加多条静态路由。其它的改制单位和存续企业配置与此完全一样,可见在客户端的配置真的是非常简单的。