IPSec 协议简介

    

    IPSec 是一系列网络安全协议的总称,它是由IETFInternet Engineering Task ForceInternet 工程任务组)开发的,可为通讯双方提供访问控制、无连接的完整性、数据来源认证、反重放、加密以及对数据流分类加密等服务。

    IPSec 是网络层的安全机制。通过对网络层包信息的保护,上层应用程序即使没有实现安全性,也能够自动从网络层提供的安全性中获益。这打消了人们对××× Virtual Private Network,虚拟专用网络)安全性的顾虑,使得××× 得以广泛应用。

    加密卡

    在实际应用中,IPSec 对报文的处理包括进行ESP 协议处理、加密后给报文添加认证头、对报文完成认证后删除认证头。为了确保信息的安全性,加密/解密、认证的算法一般比较复杂,路由器IPSec 软件进行加密/解密运算将会占用了大量的CPU资源,从而影响了整机性能。模块化路由器还可以使用加密卡(模块化硬件插卡)以硬件方式完成数据的加/解密运算,消除了路由器VRP 主体软件处理IPSec 对性能的影响,提高了路由器的工作效率。

    (1) 加密卡进行加密/解密的工作过程是:路由器主机将需要加密/解密的数据发送给加密卡,加密卡对数据进行加密/解密运算并给数据添加/删除加密帧头,然后加密卡将完成加密/解密的数据发送回主机,由主机转发处理后的数据。

    (2) 多块加密卡分流处理用户数据:模块化路由器支持多块加密卡,主机软件通过轮循方式将用户数据发送给多块状态正常的加密卡进行分流处理,实现多块加密卡对用户数据的同步处理,从而提高了数据加密/解密的处理速度。

    (3) 对于应用于加密卡侧的IPSec,当该路由器所有加密卡都状态异常则加密卡将无法进行IPSec 处理,此时若已经打开主机备份处理开关,并且VRP 主体软件IPSec 模块支持该加密卡使用的加密/认证算法,则VRP 主体软件IPSec模块将替代加密卡进行IPSec 处理,实现对加密卡的备份。加密卡与 VRP 主体软件IPSec 模块对数据的处理机制完全相同,区别仅仅在于是通过硬件还是通过VRP 主体软件实现加/解密处理。

    IPSec 对报文的处理过程

    IPSec 对报文的处理过程如下(以AH 协议为例):

    (1) 对报文添加认证头:从IPSec 队列中读出IP 模块送来的IP 报文,根据配置选择的协议模式(传输或是隧道模式)对报文添加AH 头,再由IP 层转发。

    (2) 对报文进行认证后解去认证头:IP 层收到IP 报文经解析是本机地址,并且协议号为51,则查找相应的协议开关表项,调用相应的输入处理函数。此处理函数对报文进行认证和原来的认证值比较,若相等则去掉添加的AH 头,还原出原始的IP 报文再调用IP 输入流程进行处理;否则此报文被丢弃。

      在接口上应用安全策略组

 

创建加密访问控制列表

 

acl acl-number [ match-order config | auto ]

rule { normal | special }{ permit | deny } pro-number [source source-addr source-wildcard | any ]

[source-port operator port1 [ port2 ] [ destination dest-addr dest- wildcard | any ] [destination-port operator port1 [ port2 ] [icmp-type icmp-type icmp-code][logging]

删除加密访问控制列表

undo acl {acl-number| all }

undo rule { rule-id | normal | special }

缺省情况下,未配置加密访问控制列表。

   配置加密卡

加密卡的配置包括:

  使能加密卡

  配置加密卡时钟与路由器主机时钟同步

  设置加密卡日志输出开关

  设置加密卡的接收队列长度

  配置对加密卡相关报文进行快速转发

 

    定义安全提议

    安全提议保存 IPSec 需要使用的特定安全性协议以及加密/验证算法,为IPSec 协商安全联盟提供各种安全参数。为了能够成功的协商IPSec 的安全联盟,两端必须使用相同的安全提议。

    安全提议的配置包括:

  定义安全提议

  设置安全协议对 IP 报文的封装模式

  选择安全协议

    1. 定义安全提议

定义安全提议,进入安全提议视图

ipsec proposal proposal-name

删除安全提议 

undo ipsec proposal proposal-name

定义安全提议,进入安全提议视图

ipsec card-proposal proposal-name

删除加密卡安全提议

undo ipsec card-proposal proposal-name

缺省情况下,未配置安全提议。

    2. 设置安全协议对IP 报文的封装模式

    安全隧道的两端所选择的 IP 报文封装模式必须一致。

设置安全协议对报文的封装模式

encapsulation-mode { transport | tunnel }

恢复缺省的报文封装模式

undo encapsulation-mode

缺省情况下,采用隧道模式,即采用 tunnel 封装。

    3. 选择安全协议

    定义了安全提议后,还需要选择安全提议所采用的安全协议。目前可选的安全协议有AH ESP,也可指定同时使用AH ESP。安全隧道两端所选择的安全协议必须一致。不同安全协议在 transport tunnel 模式下的数据封装形式如下图

设置安全提议采用的安全协议

transform { ah-new | ah-esp-new | esp-new }

恢复缺省的安全协议

undo transform

缺省情况下,采用 RFC2406 中所使规定安全协议esp-new

设置 VRP 主体软件IPSec ESP 协议采用的加密算法

esp-new encryption-algorithm { 3des | des |blowfish | cast | skipjack }

设置加密卡ESP 协议采用的加密算法

esp-new encryption-algorithm { 3des | des |blowfish | cast | skipjack | aes }

配置 ESP 协议不使用加密算法 

undo esp-new encryption-algorithm

设置 ESP 协议采用的认证算法

esp-new authentication-algorithm{ md5-hmac-96 | sha1-hmac-96 }

配置ESP 协议不使用认证算法 

undo esp-new authentication-algorithm

设置 AH 协议采用的认证算法

ah-new authentication-algorithm { md5-hmac-96| sha1-hmac-96 }

恢复AH 协议缺省的认证算法

undo ah-new authentication-algorithm

缺省情况下,ESP 协议采用des 加密算法与md5-hmac-96 认证算法;AH 协议采用md5-hmac-96 认证算法。

命令undo esp-new encryption-algorithm 和命令undo esp-new authentication-algorithm 不能同时使用,即ESP 协议必须至少使用一种加密算法或者验证算法。

创建安全策略

 手工创建安全策略

 手工创建安全策略的配置包括:

 手工创建安全策略

 配置安全策略引用的访问控制列表

    指定安全隧道的起点与终点

    配置安全策略中引用的安全提议

    配置安全策略联盟的 SPI 及使用的密钥

    (1) 手工创建安全策略

手工创建安全策略,进入安全策略视图

ipsec policy policy-name sequence-number manual

修改手工创建的安全策略

ipsec policy policy-name sequence-number

删除创建的安全策略

undo ipsec policy policy-name sequence-number

缺省情况下,未创建任何安全策略。

    (2) 配置安全策略引用的访问控制列表

设置安全策略引用的加密访问控制列表 

security acl access-list-number

取消安全策略引用的加密访问控制列表

undo security acl

缺省情况下,安全策略不引用任何加密访问控制列表。

    (3) 指定安全隧道的起点与终点

指定安全隧道的本端地址

tunnel local ip-address

删除安全隧道的本端地址

undo tunnel local ip-address

指定安全隧道的对端地址 

tunnel remote ip-address

删除安全隧道的对端地址

undo tunnel remote ip-address

缺省情况下,不指定安全隧道起点与终点。

    (4) 配置安全策略中引用的安全提议

配置安全策略中引用的安全提议

proposal proposal-name

取消安全策略引用的安全提议

undo proposal

缺省情况下,安全策略不引用任何的安全提议。

    (5) 配置安全策略联盟的SPI 及使用的密钥

配置 AH/ESP 协议输入安全联盟的SPI

sa inbound { ah | esp } spi spi-number

删除 AH/ESP 协议输入安全联盟的SPI 

undo sa inbound { ah | esp } spi

配置 AH/ESP 协议输出安全联盟的SPI 

sa outbound { ah | esp } spi spi-number

删除 AH/ESP 协议输出安全联盟的SPI

undo sa outbound { ah | esp } spi

缺省情况下,未设置输出/输入安全联盟SPI 值。

    (6配置安全策略联盟使用的密钥

配置 AH 协议的认证密钥

sa { inbound | outbound } ah hex-key-string hex-key

删除 AH 协议的认证密钥

undo sa { inbound | outbound } ah hex-key-string

配置 AH 协议的认证密钥

sa { inbound | outbound } ah string-key string-key

删除 AH 协议的认证密钥

undo sa { inbound | outbound } ah string-key

配置ESP 协议的认证密钥

sa { inbound | outbound } esp authentication-hex hex-key

删除 ESP 协议的认证密钥

undo sa { inbound | outbound } esp authentication-hex

配置 ESP 协议的加密密钥

sa { inbound | outbound } esp encryption-hex hex-key

删除 ESP 协议的加密密钥

undo sa { inbound | outbound } esp encryption-hex

同时配置 ESP 协议的加密和认证密钥

sa { inbound | outbound } esp string-key string-key

删除 ESP 协议的加密和认证密钥

undo sa { inbound | outbound } esp string-key

缺省情况下,未配置任何安全策略的密钥。

    IKE 创建安全策略联盟

IKE 创建安全策略联盟的配置包括:

用 IKE 创建安全策略联盟

配置安全策略引用的访问控制列表

指定安全隧道的终点

配置安全策略中引用的安全提议

配置安全联盟的生存时间

    (1) IKE 创建安全策略联盟

用 IKE 创建安全策略联盟,进入安全策略视图

ipsec policy policy-name sequence-number isakmp

修改 IKE 创建的安全策略

ipsec policy policy-name sequence-number

删除创建的安全策略

undo ipsec policy policy-name [ sequence-number ]

缺省情况下,不创建安全策略。

    (2) 配置安全策略引用的访问控制列表

设置安全策略引用的加密访问控制列表 

security acl access-list-number

取消安全策略引用的加密访问控制列表 

undo security acl access-list-number

缺省情况下,安全策略不引用任何加密访问控制列表。

    (3) 指定安全隧道的终点

指定安全隧道的对端地址

tunnel remote ip-address

删除安全隧道的对端地址

undo tunnel remote ip-address

缺省情况下,不指定安全隧道的终点。

    (4) 配置安全策略中引用的安全提议

配置安全策略中使用的安全提议

proposal proposal-name1 [ proposal-name2...proposal-name6 ]

取消安全策略引用的安全提议 

undo proposal

缺省情况下,安全策略不引用任何的安全提议。      

启动对隧道对端路由可达性的监测

ipsec sa dynamic-detect

禁止对隧道对端路由可达性的监测

undo ipsec sa dynamic-detect

缺省情况下,未启动对隧道对端可达性的监测。

在接口上应用安全策略组

ipsec policy policy-name

删除接口应用的安全策略组

undo ipsec policy

缺省情况下,接口上没有应用任何安全策略组。