***技术介绍:
      所谓虚拟专用网(Virtual Private Network, ***)就是建立在公网上的,由某一组织或某一群用户专用的通信网络,其虚拟性表现在任意一对***用户之间没有专用的物理连接,而是通过ISP提供的公共网络来实现通信的,其专用性表现在***之外的用户无法访问***内部的网络资源,***内部用户之间可以实现安全通信。
      由于Internet本质上是一个开放的网络,没有任何的安全措施可言。专线的连接可以实现不同地区之间的互访,但需要支付高额的费用,维护也相当的困难。随着Internet应用的扩展,很多要求安全和保密的业务需要通过廉价的Internet实现,这一需求促进了***技术的发展。
      广泛地讲,***体系结构可以被分为两种常见的情况:站点到站点的***(企业总部与各个分部之间的互联)和远程访问***(远程用户与公司总部之间的互联)。***技术实现安全互联有多种方式,如MPLS ***、SSL ***等,但IPSec ***技术是现在企业用的最多的接入方式,本实验就是通过使用Cisco路由器和预共享密钥建立多条IPSec ***实现站点到站点之间的访问。
 
实验背景:
      某一外资企业在中国有三个分公司,分别坐落于上海、北京和深圳。由于企业信息的安全需求,要求与分公司之间建立不同的安全通道。其中,总部与深圳分部之间互相通信只需要互相验证并保持数据的完整性就可以了;与北京分部之间要求数据加密而且具有一般的验证功能,并能提供数据的完整性验证;由于上海分部在中国充当了总代理的角色,传输的数据都是机密性文件,所以要求和上海分部之间建立严格的验证功能,并能对数据进行加密和完整性验证。(注意:每多一项功能,安全性就会升一级。但是,链路的开销必然会增大。如何将各个功能配置使用,需要根据企业需求和网络带宽而定)
 
实验目的:
通过IPSec ***技术实现公司总部和各个分部之间不同的安全通信,总部与分部之间通过两台路由互联并运行OSPF多区域路由协议模拟Internet,总部和分部并不知道模拟Internet的具体连接情况,需要配置默认路由连接到模拟公网之上。
 
实验环境:
使用DynamipsGUI 2.8模拟器,路由器IOS使用c3640-jk9o3s-mz.122-26.bin(带有***功能)。DynamipsGUI 2.8的具体使用可参考网络的一些资料。
 
实验网络拓扑:
 
试验步骤:
一、 配置模拟公网的具体网络参数(R2和R3之间的级联。不是重点,只做简单介绍)
 
1、 首先,在R2上配置各个端口的IP地址,并启用OSPF协议,进程号为200,将直连的网络宣告到对应的区域里(注意:是两个区域,R2和R3之间的区域为骨干区域area 0,端口Ethernet 0/1所对应的区域为area 1,具体可参考网络拓扑图)
clip_image004[4]
 
 
2、 其次,在R3上配置各个端口的IP地址,并启用OSPF协议,进程号为300,将直连的网络宣告到对应的区域里(注意:是四个区域,R2与R3之间的区域为骨干区域,其它区域为area 2 ,area 3和area 4。具体可参考网络拓扑图)
clip_image006[4]
 
 
3、 公网模拟好之后,使用show ip route命令在R2或者R3上查看是否学习到不同区域之间的路由条目,不同区域之间的路由条目表示为“O IA *****”
clip_image008[4]
 
 
二、 配置总部和分部的具体网络参数( R1、R4、R5和R6的配置,不是重点,只做简单介绍)
 
1、 配置公司总部各个端口的具体网络参数,并启用一条默认路由,下一跳地址由于不知道,配置为连接模拟公网的端口Ethernet 0/0。
clip_image010[4]
 
 
2、 配置深圳分部各个端口的具体网络参数,并启用一条默认路由,下一跳地址由于不知道,配置为连接模拟公网的端口Ethernet 0/1。
clip_image012[4]
 
 
3、 配置北京分部各个端口的具体网络参数,并启用一条默认路由,下一跳地址由于不知道,配置为连接模拟公网的端口Ethernet 0/1。
clip_image014[4]
 
 
4、 配置上海分部各个端口的具体网络参数,并启用一条默认路由,下一跳地址由于不知道,配置为连接模拟公网的端口Ethernet 0/1。
clip_image016[4]
 
 
三、 配置总部的三条IPSec ***,分别指向不同的分部。(重点讲解)
*******************R1的具体配置*******************
 
1、 配置IKE协商
 
1.1、 启用IKE(IKE-Internet Key Exchange是基于Internet安全联盟和密钥管理协议(ISAKAMP)定义的框架。IPSec 传送认证或加密的数据之前,必须就协议、加密算法和使用的密钥进行协商。而IKE提供了这个功能,ISAKAMP定义了两个通信对等体如何能够通过一系列的过程来保护他们之间的通信信道。然而,它并没有规定传送的内容,只是充当了交通工具的角色。)
默认条件下,IKE在Cisco ISO软件中是激活的。如果被人工关闭,则需要再次激活它。
clip_image018[4]
 
 
1.2、 建立IKE协商策略并配置IKE协商参数(在启用IKE后可以构造IKE策略,根据每个***连接的安全系数不同,构造多个策略。不同的IKE策略实现不同的安全连接方式)
定义公司总部与分部之间的IKE的编号为policy (取值范围为1~10000,策略编号越低,其优先级越高),以policy 2为例进行讲解:
 
encryption 3des命令被用来设置加密所需要的算法,(DES—Data Encryption Standard数据加密标准,是使用最广泛的共享密钥加密算法。它使用对称式加密算法,加密和解密使用相同的密钥值,共56位,而3DES是DES的扩展,共168位。由于算法的复杂性,因此需要的网络宽带和内存)
 
authertication pre-share命令告诉路由器要使用预先共享的密钥(对等体认证方法除了预共享密钥还有RSA加密的nonces,RSA签名,默认为RSA签名)
 
hash sha命令被用来设置密钥认证所用的算法,有MD5和SHA-1两种,默认为SHA-1。(Hash散列算法是一种基于密钥(对称密钥或公钥)的加密不同的数据转换类型。其中MD5是使用最广泛的报文摘要算法,可产生128位散列值的散列算法。SHA-1是安全散列算法,可产生一个160位的散列值。SHA-1算法的缺点是速度被MD5慢,但是SHA的报文摘要更长,具有更高的安全性)
 
group 2 为密钥交换方式,一般有三种模式,分部为group 1,group 2,group 5,其中,group 1的密钥交换最简单,而group 5的密钥交换方式最复杂。(注意:同等实体两端策略的密钥交换方式必须一样,就本实验而言,总部和深圳分部使用group 1,总部和北京分部使用group 2,总部和上海分部使用group 5)
 
Lifetime 86400 声明了SA的生存时间,默认为86400。在超过生存时间后,SA将被重新协商。(SA—Secuity Associations安全联盟,定义了各种类型的安全措施,这些措施的内容包含了IP包加密解密和认证的相关信息)
clip_image020[4]
 
 
1.3、 设置IPSec对等体的验证方法(由于SA是单向的,因此,需要设置预先共享的密码和对端的IP地址或主机名。也就是说有两种验证方法,一种是通过对端主机名进行验证;另一种是通过对端IP地址进行验证。语法为Router(config)#crypto isakmp key keystring address <hostname> peer-addresspeer-hostname注意:***链路两端的密码必须匹配。)
clip_image022[4]
 
 
2、配置IPSec相关参数
 
2.1 指定Crypto map加密用的访问列表(注意:IPSec只用于加密的访问类别,而没有定义的访问列表就等于没有IPSec的验证,直接以明文的方式进行传送。这个不同于普通的访问控制列表那样“运行”和“拒绝”流量)Crypto访问列表必须是互为镜像的。比如:总部连接外网的路由器加密了所有流向深圳分部连接外网的路由器的IP流量,则分部连接外网的路由器必须加密流回总部连接外网的路由器的所有IP流量。其实,这个类似于windows 系统中的IP安全策略(开始—运行—mmc—添加/删除管理单元—IP安全策略))
考虑到试验的局限性,这里只定义了给IP包和ICMP包(ping包)进行数据的加密,其它数据包正常通过。
clip_image024[4]
 
 
2.2、 配置IPSec工作模式并配置交换集(定义总部和深圳分部之间路由器的IPSec工作模式为传输模式(transport,默认为tunnel)并定义交换集名为aaa ,并使用了ah-md5-hmac的验证参数。定义总部和北京分部之间路由器的工作模式为隧道模式(tunnel)并定义交换集名为bbb,并使用了esp-3des 和esp-sha-hmac。定义总部和上海分部之间路由器的工作模式为隧道模式(trunel)并定义交换集名为ccc,并使用了esp-3des和ah-sha-hmac)
 
工作模式可选择的参数有:(每种参数类型中只可以选择一种方式,但三者可以同时使用,可以看出总部和上海分部之间的IPSec工作模式在三者之间是最安全的)
AH验证参数:ah-md5-hmac、ah-sha-hmac
ESP加密参数:esp-des、esp-3des、esp-null
ESP验证参数:esp-md5-hma、esp-sha-hmac
AH: IPSec认证头提供数据完整性和数据源认证,但是不提供保密服务。
ESP: 带认证的封装安全负荷提供数据完整性和数据源认证,同时也提供了保密服务。但是,其数据源认证没有AH功能强。
 
IPSec的工作模式:
 
传输模式---在传输模式中,IPSec的AH头或ESP头插入原来的IP头之后,而整个过程当中,原来的IP头并没有进行认证和加密。也就是说,源和目的IP以及所有的IP包头域都是不加密发送的。
 
隧道模式---在隧道模式中,IPSec的AH头或ESP头插入原来的IP头之前,在整个过程中,加密和认证之后会从新生产一个新的IP头加到AH头或ESP头之前。也就是说,真正的IP源地址和目的地址都可以隐藏为因特网发送的普通数据。因此隧道模式比传输模式具有更高的安全性。同时,隧道模式加密的复杂性也占有了一定的网络带宽。
clip_image026[4]
 
 
2.3、 配置全局IPSec安全关联生命期(全局的和指定接口的SA生命期都可以被配置,SA生命期确定在它们重新协商前IPSec SA保持有效的时间,在加密映射条目内,全局生命期将被覆盖,当一个SA快要过期时,会协商一个新的,而不会打断数据流)
 
clip_image028[4]
 
 
3、配置加密映射并安全关联(现在已经构造好了***隧道需要的信息,需要通过配置cryto map将它们整合在一起然后运用到指定的接口上)
创建三个Crypto map,全部命名为map-all,并定义不同的优先级。
以第一条crypto map为例进行讲解:
 
Crypto map map-all 11 ipsec-isakmp:创建crypto map,并命名为map-all,优先级为11(优先级范围为1~65535,值越小,优先级越高),并将IPSec和ISAKMP关联起来。下面有个警告,意思是这个新的crypto map 在没有配置一个对等体或着一个有效的访问控制列表之前,始终保持关闭状态。
Match address 112匹配前面定义的加密访问控制列表,编号必须相同。
Set peer 160.160.160.2指定所对应***链路对端的IP地址,IP地址应该同前面在IKE中配置的对端IP地址相同。
Set transform-set aaa指定了此Crypto Map所使用的交换集名称,这个名称应该与IPSec中配置的交换集名称相同。
Set pfs group1关联共享密钥的交换方式,应该与配置IKE协商阶段使用的交换方式相同。
clip_image030[4]
 
 
4、应用Crypto Map到端口
注意:在端口上只能应用一种crypto map,所以要将三个crypto map综合到一起,并配置同样的名称map-all。
clip_image032[4]
 
****************R4的具体配置*******************
 
1、配置IKE协商(建立IKE协商策略,并配置IKE协商参数,应与R1上配置 对应的策略相同)
clip_image034[4]
 
 
2、 设置IPSec对等体的验证方法(预共享密钥为123456,对等实体地址为100.100.100.1)
clip_image036[4]
 
 
3、 设置IPSec的相关参数(crypto map加密用的访问列表)
clip_image038[4]
 
 
4、 配置IPSec工作模式为隧道模式,并配置交换集名称为aa ,内容为ah-md5-hmac
clip_image040[4]
 
 
5、配置全局IPSec安全关联生命期为86400(对等体两端必须一样)
clip_image042[4]
 
 
6、 配置加密映射并安全关联(定义crpto map的名称为map-1 优先级为20)
clip_image044[4]
 
 
7、 应用Crypto map到对应的端口上
clip_image046[4]
 
 
****************R5的具体配置********************
clip_image048[4]
 
 
***************R6的具体配置*****************
clip_image050[4]
 
 
四、 设置PC1PC2PC3PC4IP地址、子网掩码以及网关。(注意写法:“ip ip-address ip-gateway /子网掩码”
clip_image052[4]
 
 
在PC1上(总部)分别ping分部主机的IP地址,可以看出隧道已建立成功。
clip_image054[4]
 
 
在PC4上(上海分部)ping公网的IP地址,可以看出是ping不通的,因为公网对于***来说只是一条透明的链路而已。
clip_image056[4]
 
 
五、 IPSec ***配置的检查(以R1和R4为例进行说明)
 
1、 使用show crypto isakmp policy命令可以查看所配置的IKE策略(通过两个路由器上IKE策略的对比进行排错)
clip_image058[4]
clip_image060[4]
 
 
2、 使用show crypto isakmp key 可以查看***两端的共享实体的IP地址或者主机名,预共享密钥。
clip_image062[4]
clip_image064[4]
 
 
3、 使用show crypto isakmp sa可以查看***对等实体两端的IP地址参数,如果协商不成功,是没有这些参数出现的。
clip_image066[4]
clip_image068[4]
 
 
4、 使用show crypto ipsec sa查看安全联盟当前使用的设置。在ping的过程中,还能看到数据包的增加过程。
clip_image070[4]
 
 
5、 使用show crypto ipsec security-association-lifetime查看全局IPSec安全关联生命周期。(注意:对等实体两端是一样的)
clip_image072[4]
clip_image074[4]
 
 
6、 使用show crypto ipsec transform-set可以查看IPSec的工作模式以及变换集的配置。
clip_image076[4]
clip_image078[4]
 
 
7、 使用show crypto map 显示所有配置在路由器上的Crypto Map,便于更详细的查看。
clip_image080[4]
clip_image082[4]
 
 
六、 实验总结:
1、 配置多条***隧道的时候,注意在端口只能应用一个Crypto Map,如果有多条***,应该将所有的crypto map定义相同的名称。
 
2、 配置Crypto Map时候所使用的密钥交换方式应该与IKE阶段所配置的密钥交换方式相同。
 
3、 配置交换集的时候,每种类型只能选择一种参数。
 
4、 定义Crypto加密访问列表时候,注意应用的先后次序,记得将特殊的放到前面,然后再将一般的放到后面。最后加上access-list access-list-number deny ip any any,拒绝其它没有数据通过。
 
5、 检查Crypto加密访问列表出错,应该重新定义访问列表,删除或者添加某一条都不会生效的。
 
6、 检查错误的时候,如果内容较多,也可以使用show running将两个结果进行对比排错。
 
7、 使用DynamipsGUI 2.8的时候,如果路由器启动起来,最好让路由器一直处于当前会话状态,千万别退出会话,这样会消耗更多内存造成对实验的干扰。可以在全局模式下使用命令line console 0,然后进去使用exec-time 0 0就可以了。
 
8、 在配置*** IPSec之前最后让全网都互通,可以使用ping命令,让各自路由器里都学习到其它路由器的路由条目,以免造成对实验的干扰。
 
9、 配置IKE协商参数应该与对应的交换集保持一直。