一、IPSEC原理
(一)IPSEC的基本功能
1、 IPSEC的功能
IPSEC提供通过IP网络的数据安全传输的机制。确保数据的机密性、完整性、真实性。
IPSEC是一套协议,不一定特应的机密、认证和算法。
2、IPSEC的安全性
数据的机密性:IPSEC在传输时加密数据,保证不被窃听数据,即使被拦截也不可读。
数据完整性:以确保数据没有被篡改。
数据原始认证:即确保数据是希望发送者发送的。
Anti-replay:确保每一个数据包是唯一的非复制的。
(二)ipsec协议
1、 IKE:提供一种安全参数协商和创建验证密钥的框架。提供安全密钥交换能力。
2、 ESP:提供加密和认证。ESP主要用于IPSEC。提供内容加密,也提供认证和完整性检查。提供DES,3DES,AES加密。
3、 AH:是一种安全协议,提供数据认证。只提供认证和完整性检查,只能提供数据是合法者传送,且数据未被改。提供:HMAC-SHA1、HMAC-MD5、HMAC的认证
(三)IPSEC的两种模式
1、隧道模式:加密和保护完整的IP数据包。隧道模式加密或隐藏数据包的IP头。加密设备自身拥有IP地址用于新的报头。可以被ESP和AH或者两者一起部署。因新的IP报头导致增加了约20字节
2、传输模式:因为隧道模式中数据包扩展约20字节。在转发小的数据包会出现问题。传输模式通过增加ESP和AH在IP头和传输协议和数据间,而 不是增加新的IP报头。所以会有更少的数据包扩展。这种模式和GRE合在一起用很好。因为GRE会增加自已的IP报头。隐藏终端的IP地址。
标准数据:
L2
|
IP
|
TCP/UDP 4层以上数据
|
传输模式:
L2
|
IP
|
ESP头或AH
|
TCP/UDP 4层以上数据
|
ESP尾
|
隧道模式:
L2
|
新的IP头
|
ESP头或AH
|
IP
|
TCP/UDP 4层以上数据
|
ESP尾
|
(四)IKE(互联网密钥交换)
IKE的两个阶段:
1、 IKE SA:
(1)IKE第一阶段的作用:
建 立IKE SA 。建立IKE两端的SA。协商IKE策略集,认证对端,为第二阶段IPSEC SA的传输,在端点间建一个安全通信通道。 第一阶段有两种模式:主模式和侵占模式。
2、IKE 1 阶段有三次协商过程及主要参数:
(1) IKE SA交换: 协商砍认有关安全策略的过程。交换加密算法、认证算法、认证方法。
加密算法:如:DES 3DES等
认证算法:如:MD5 SHA等。
认证方法:如:pre-share(预共享密钥)、rsa-sig(RSA签名认证)、rsa-ener(RSA加密nonces认证)
(2)Diffie-heleman密钥交换
一种公钥交换模式。交换diffie-heleman公共值和辅助信息。加密密钥在这个时候产生。有两组:一组定义了768位算法;一组定义了1024位的MOPP算法。根据这些产生对称密钥。即配IKE中的 group 参数的配置
(3)认证对端身份
用于交换双方的ID信息和验证数据。进行身份验证和对整个一阶段的IKE SA交换进行验证。主要是配置这三种认证方法(pre-share(预共享密钥)、rsa-sig(RSA签名认证)、rsa-ener(RSA加密nonces认证))的具体认证参数。前面只是指定了用哪种认证方法,但没有确定每种认证方法的认证参数和内容。这里就是指定选中的认证方法的认证参数和内容。
2、 IPSEC SA阶段:第二阶段:
在IKE SA第一阶段创建 的IKE安全通道下,生成IPSEC SA。
主要是协商IPSEC 参数,建立 IPSEC SA,及协商IPSEC 生命周期等。
安全联盟SA,也叫 ipsec sa ,也叫转换集。
SA: 由SPI安全索引、目标IP地址、IPSEC 协议( 包括加密算法、认证算法、传输模式、生命周期)组成。这三项组成唯一的SA。
二、配置步骤:
1、 IKE第一阶段的协商配置。ISAKMP的配置。
加密算法
认证算法
认证方法:如:pre-share(预共享密钥)、rsa-sig(RSA签名认证)、rsa-ener(RSA加密nonces认证)
Diffie-helemen密钥交换
2、 配置IKE第二阶段。即ipsec sa的配置
配置: 加密算法
认证算法
传输模式
生命周期
3、 配置加密映射表,并把ipsec sa关联于加密映射表
并把访问控制列表应用于加密映射表,设定对端IP地址
(还可以先配置一个动态加密映射表关联IPSEC SA,再把动态加密映射表关联到加密映射表)
4、 配置受保护的数据流的访问列表
配置需要加密的数据流,即受保护的数据。哪些数据可以通过VPN隧道传输到另一方
用访问控制表列来控制
5、 把映射表应用于建立VPN隧道的接口
三、配置实例:
(一) IKE策略的配置
(config)#crypto isakmp enable //启用IKE
(config)#no crypto isakmp enable
(config)#crypto isakmp policy {policy_number} //定义策略,后面是策略号
(isakmap)#encryption {des |3des} //定义加密算法
(isakmp)#hash {sha|md5} //定义散列算法,即认证算法
(isakmp)#authentication {pre-share | rsa-sig | rsa-encr } //定义认证方法
Pre-share: 通过手工配置预共享密钥为认证方法。
Rsa-sig: 要求使用CA并且提供防止抵赖功能。默认值
Rsa-encr: 不要CA,提供防止抵赖功能。
(isakmp)#group {1 | 2} //定义diffie-heleman密钥组
(isakmp)#lifetime {seconds} //定义IKE SA的生命周期
三种认证方法的配置:
1、 pre-share
(config)#crypto isakmp key {key-string } {address | hostname} {peer-address | peer-hostname }
Key-sting:共享密钥
例:
(config)#crypto isakmp key zj8s address 192.168.3.11 //指定对端路由器接口的IP地址或名称。
(二) IPSEC SA的配置,即IKE第二步的配置
(config)# crypto ipsec transform-set {name} {ah-md5-hmac | ah-sha-hmac } {esp-des |esp-3des |esp-rfc-1829} //name为变换集名。 后面分别是认证算法和加密算法定义
(crypto-transfom)#mode {tunnel |transport } //选择模式,是隧 道模式还是传输模式
(config)#crypto ipsec security-association liftmme seconds {seconds} //按时间定义IPSEC SA全局生命期,当达到一定秒数则生命到期。
(config)#crypto ipsec security-association liftmme killobytes {killobytes} //按字节数定义IPSEC SA全局生命期。当达到一定的秒数则生命到期。
(三)定义访问列表,以定义受保护的数据流
(config)#access-list 101 permit 192.168.9.0 0.0.0.255 192.168.3.0 0.0.0.255
(confgi)#access-list 101 deny any any
(四)定义保密图
可先定义动态保密图,与变换集相关联,再把动态保密图应用到保密图中。
也可直接把变换集关联到保密图中。
2、 定义动态保密图(也叫动态保密映射表)
(config)#crypto dynamic-map {dynamic-map-name} (dynamic-map-sn) //定义动态保密图名和序号
(cryptomap)# set transform-set {transform-set-name} //引用定义的变换集,即ipsec SA
(cryptomap)# match address access-list {lsit-number} //引用受保护的数据流的访问列表
(cryptomap)#set peer {hostmae |addrss } //设置对端IP地址或名称
(config)#crypto map {map-name} {map-sequence} ipsec-isakmp dynamic {dyn-map-name}
//把动态保密图加入到保密图中。
Ipsec-isakmp:指自动用IKE创建的策略。还可以手动创建IKE策略
Map-name 和map-sequence是保密图的名和序号
Dyn-map-name:是上面定义过的动态保密图的名称。
2、可以直接定义保密图
config)#crypto map { map-name} {map-sequence} {ipsec-isakmp | ipsec-manual} //定义保密图名和序号。Ipsec-isakmp 是自动用IKE创建策略。 Ipsec-manual是手工创建
(cryptomap)# set transform-set {transform-set-name} //引用定义的变换集,即ipsec SA
(cryptomap)# match address access-list {lsit-number} //引用受保护的数据流的访问列表
(cryptomap)#set peer {hostmae |addrss } //设置对端IP地址或名称
(五)把保密映射表应用到接口
(config-if)# crypto map {map-name} // 把保密图应用到接口
希望我们成都华三网的相关分享可以帮助到您!