一、
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、
配置受保护的数据流的访问列表
配置需要加密的数据流,即受保护的数据。哪些数据可以通过
×××
隧道传输到另一方
用访问控制表列来控制
5、
把映射表应用于建立
×××
隧道的接口
三、
配置实例:
(一)
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、
定义动态保密图(也叫动态保密映射表)
(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
地址或名称
(五)把保密映射表应用到接口
转载于:https://blog.51cto.com/kuangkuang/314610