1.ipsec技术
IPSec并不是一个单一的协议或算法,它是一系列加密实现中使用的加密标准定义的集合。IPSec实现在I P层的安全,因而它与任何上层应用或传输层的协议无关。上层不需要知道在IP层实现的安全,所以在IP层不需要做任何修改。
IPSec在IP报文中使用一个新的IPSec的报头来封装信息,这一过程十分类似于用一个正常的I P报文头封装上层的TCP或UDP信息。新的IPSec报文包含I P报文认证的信息,原始IP报文的内容,可以根据特定应用的需求选择加密与否。可以配置 IPSec封装完整的I P数据报或只是上层信息。如果配置为封装整个IP数据报,那么它就工作在隧道模式( tunnel mode)。除了IPSec模式之外,还有两种 IPSec的报头。第一类报头称为认证报头(AH)。另一种称为封装安全负载(encapaulating Security payload,ESP)、AH报头只用于认证I P报文,对原始I P报文不做任何加密。ESP报头实现加密,并可以像A H报头那样对原始I P报文实现认证。(参考cisco
配置指南)。
上图所示 ipsec报文格式,隧道模式
上图所示 ipsec报文格式,传输模式
2.ipsec目标
1)认证IP报文的来源。***者可以很容易利用伪装的 IP地址来发送IP报文。许多***者利用机器间基于IP地址的信任,来伪装IP地址。IPSec允许设备使用比源IP地址更安全的方式来认证IP数据报的来源。IPSec的这一标准称为原始认证(Origin Authentication)。
2)保证IP数据报的完整性。除了确认IP数据报的来源,还希望能确保报文在网络中传输时没发生变化。使IPSec,可以确信在IP报文上没有发生任何变化.IPSec的这一特性称为无连接完整性。
3)确保I P报文的内容在传输过程中未被读取。除了认证与完整性之外,还期望当报文在网上传播时,未授权方不能读取报文的内容。这可以通过在传输前,将报文加密来实现。通过加密报文,可以确保***者不能破解报文的内容,即使他们可以用侦听程序截获报文。
4)确保认证报文没有重复。最终,即使***者不能发送伪装的报文,不能改变报文,不能读取报文的内容,***者仍然可以通过重发截获的认证报文来干扰正常的通信,从而导致事务多次执行,或是使依赖于被复制报文的上层应用发生混乱。 IPSec能检测出重复报文并丢弃它们。这一特性称为反重传(antireplay)。目前的IP报头不能提供这类服务。
3.ipsec基本特点
IPSec建立在两个基本概念之上:
1) 安全协议。
2) 密钥管理。
a. 安全协议
安全协议提供了下列服务:原始认证、无连接完整性、加密,反回复,通过使用两种报头来实现这些服务:认证报头(AH)和封装安全荷载(ESP).
b. 密钥管理
IPSec安全协议处理使用的算法和安全协议报头格式。密钥管理的焦点在于如何在非安全的网络上交换IPSec算法使用的秘密密钥。IKE使用公开密钥加密算法在非安全网络上安全地交换秘密密钥。 IKE是一种在ISAKMP框架下运行的协议。ISAKMP允许在非安全的网络上交换秘密会话密钥,这些秘密会话密钥用于 A H和ESP安全协
议的认证与加密。
4.基于cisco案例配置
下面是配置IPSec的两个基本步骤:
1) 使能ISAKMP进行密钥交换。
2) 使能IPSec。
案例所使用的拓扑图
1. 使能ISAKMP
使能ISAKMP的第一步是在每个IPSec对等端上建立一个策略。ISAKMP的策略定义了与每个IPSec对等端协商的参数。这些策略定义保护 ISAKMP协商的加密参数。每一个 ISAKMP协商都要防止被监听,因此每个对等端需要就加密参数达成一致,来保证未来 ISAKMP会话的安全。如果不保护I S A K M P协商,每个I P S e c对等端就不能确保它们是与真正的对等端在进行协商。***者会插入到I P S e c对等端中间,侦听连接,并截获足够的信息用来窃听未来所有的ISAKMP协商,从而危及自己的IPSec通信。ISAKMP策略的参数如下所示:
* 加密算法 DES, 3DES
* H a s h算法 SHA,MD5。
* 认证方式 RSA数字签名,RSA 临时预共享密钥。
* Diffie - Helleman组,7 6 8位或1 0 2 4位(组1或组2)。
* 安全连接生存期,缺省期86 400秒(1天)。
R1配置:
R1(config)#crypto isakmp policy 2
R1(config-isakmp)#encryption des
R1(config-isakmp)#hash sha
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#lifetime 86400
R1(config-isakmp)#group 1
一旦定义好了ISAKMP策略,剩下的工作就是定义共享密钥
R1(config)#crypto isakmp key xht2 address 202.102.2.2
R1(config)#crypto isakmp key xht3 address 202.102.3.2
2. 使能IPSec
一旦成功配置好了ISAKMP,完成IPSec特定部分的配置需要以下4步:
1)创建一个定义IPSec处理流量的访问表。
2)创建一个定义用于第1步所建立的访问表上的安全策略的变换。
3) 创建一个匹配第1步中访问表和第二步中变换集的Crypto映射给特别的IPSec对等端
4)将crypto映射应用到接口上。
R1(config)#access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
R1(config)#access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255
R1(config)#access-list 101 permit ip 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255
R1(config)#access-list 101 permit ip 192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255
创建用于定义与某个对等端通信时使用的安全协议和算法的变换集
R1(config)#crypto ipsec transform-set test esp-des esp-md5
建立匹配访问表和某一特定IPSec对等端的变换集的crypto, map。可以在每个映射表项中定义多个对等端的I P地址,但每个匹配表项中只能定义一个变换集和一条访问表。
R1(config)#crypto map map1 10 ipsec-isakmp
match address 101
set transform-set test
set peer 202.102.2.2
set peer 202.102.3.2
将crypto映射应用到一个路由器的接口上。一般而言,crypto map会被应用到离I P S e c对等端最近的一个接口上。
R1(config)#interface e0/0
R1(config-if)#crypto map map1
另外还需要配置ip地址及默认路由
R1(config)#interface e0/0
R1(config-if)#ip address 202.102.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config)#interface loopback 0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config)#ip route 0.0.0.0 0.0.0.0 202.102.1.2
至此R1配置完毕!
下面是R1配置截图
ip配置
策略及共享密钥
匹配表
访问控制列表
R2的配置如下图
R3,R4的配置和R1类似下面只将配置截图列出。
R3
R4
测试结果