IPsec(IP Security)协议是一个第三层隧道协议,但它不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议(Authentication Header,AH)、封装安全载荷协议(Encapsulating Security Payload,ESP)、密钥管理协议(Internet Key Exchange,IKE)和用于网络认证及加密的一些算法等。
IPsec规定了如何在对等层之间选择安全协议,及确定安全算法和密钥交换,向上提供了访问控制、数据源认证、数据加密等网络安全服务。
SA(Security Associations,安全联盟)的概念时IPSec的核心。SA定义了各种类型的安全措施,这些措施的内容包含了IP包加密解密的和认证的相关信息。措施的具体内容为:
*提供的服务:提供加密或认证服务,或两者同时提供。
*算法:服务采用的算法,例如:加解密使用DES或3DES算法;认证使用MD5或sha-1算法。
*密钥:加密和认证算法中所使用的密钥以及密钥的声明周期等。
v 使用安全联盟(SA)是为了解决以下问题
§ 如何保护通信数据
§ 保护什么通信数据
§ 由谁实行保护
v 一个SA通常包含以下的安全参数
§ 认证/加密算法,密钥长度及其他的参数
§ 认证和加密所需要的密钥(如何保护)
§ 哪些数据要使用到该SA(保护什么)
§ IPsec的封装协议和模式(由谁实行)
一个SA由3个参数唯一确定:目的Ip地址、安全协议标识符以及SPI(Security Parameter Index,安全参数索引)。
IPSec ×××的配置
配置的步骤基本如下:
1.配置IKE的协商
2.配置IPSec的协商
3.配置端口的应用
4.IKE的调试和排错
一.配置IKE协商
1.启用IKE
默认条件下,IKE在Cisco IOS软件中时激活的。如果被人工关闭了,可用如下命令完成激活:
Router(config)#crypto isakmp enable
2.建立IKE协商策略
命令如下:
Router(config)#crypto isakmp policy priority
其中,priority是IKE策略的编号,取值范围为1~10000,策略的编号越低,其优先级越高。
3.配置IKE协商参数
Router(config-isakmp)#hash { md5 | sha1}
Hash 命令被用来设置密钥认证所用的算法,有MD5和SHA-1两种。SHA-1比MD5算法具有更高的安全性。
Router(config-isakmp)#encryption { des | 3des }
Encryption命令被用来设置加密所使用的算法,3DES比DES算法拥有更大的强度,不易被破解。
(“|”符号表示两个中选一个)
Router(config-isakmp)#authentication pre-share
这个命令告诉路由器要使用预先共享的密钥,此密码是手工指定的。
Router(config-isakmp)#lifetime seconds
Lifetime命令声明了SA的生存时间,在超过生存时间后,SA将被重新协商。至少为60。
4.设置共享密钥和对端地址
Router(config)# crypto isakmp key keystring address peer-address
SA是单向的,因此要使用此命令来设置预先共享的密码和对端的IP地址(可以理解为协商和握手)。在设置密码时,×××链路两端的密码必须相同。
二.配置IPSec协商
1.指定Crypto访问列表
Crypto访问列表不像普通访问控制列表那样“允许”、“拒绝”流量,它在×××隧道中定义什么样的报文将被IPSec加密传输,什么样的报文不用被加密而直接传输。
Crypto访问列表必须是护卫镜像的。比如:路由器A加密了所有流向路由器B的TCP流量,则路由器B必须加密流向路由器A的所有TCP的流量。
Router(config)# access-list access-list-number {deny | permit} protocol source source-wildcard destination destination-wildcard
例如:命令access-list 10 permit ip host
2.配置IPSec传输模式
传输模式设置定义用于×××隧道的认证类型、完整性和负载加密。
Router(config)# crypto ipsec transform-set transform-set-name transform1 [transform2 [transform3]]
传输模式可选择的参数有:
*AH验证参数:ah-md5-hmac、ah-sha-hmac
*ESP加密参数:esp-des、esp-3des、esp-null
*ESP验证参数:esp-md5-hma、esp-sha-hmac
每种参数类型中只可以选一种方式,但是可以同时选择3种传输模式。
三.配置端口应用
1、设置Crypto Map
以上配置完成了×××隧道需要的信息,下面需要将它们整合在一起应用到一个接口上。
首先,创建Crypto Map:
Router(config)# crypto map map-name seq-num ipsec-isakmp
其中,参数ipsec-isakmp表明此IPSec连接将采用IKE自动协商。参数seq-num表示此map的优先级,取值范围为1~65535,值越小,优先级越高。
配置Crypto Map:
Router(config-crypto-map)# match address access-list-number
指定Crypto Map使用的访问控制列表,参数access-list-number应该对应前面配置的Crypto访问控制列表的编号。
Router(config-crypto-map)# set peer ip_address
指定Crypto Map所对用×××链路对端的IP地址。
Router(config-crypto-map)# set transform-set name
指定此Crypto Map所使用的传输模式,此模式应该在之前配置IPSec时已经定义,即此传输模式的名称应该用命令crypto ipsec transform-set配置的名称。
2.应用Crypto Map到端口
Router(config)# interface interface_name interface_num
Router(config-if)# crypto map map-name
到此为止,×××就可以生效了。
四.IPSec ×××配置的检查
v 查看IKE策略
Router# show crypto isakmp policy
v 查看IPsce策略
Router# show crypto ipsec transform-set
v 查看SA信息
Router# show crypto ipsec sa
v 查看加密映射
Router# show crypto map