“Internet 协议安全性 (IPSec)”是一种开放标准的框架结构,通过使用加密的安全服务以确保在 Internet 协议 (IP) 网络上进行保密而安全的通讯。Microsoft® Windows® 2000、Windows XP 和 Windows Server 2003 家族实施 IPSec 是基于“Internet 工程任务组 (IETF)”IPSec 工作组开发的标准。
IPSec(InternetProtocolSecurity)是安全联网的长期方向。它通过端对端的安全性来提供主动的保护以防止专用网络与 Internet 的攻击。在通信中,只有发送方和接收方才是唯一必须了解 IPSec 保护的计算机。在 Windows 2000、Windows XP 和 Windows Server 2003 家族中,IPSec 提供了一种能力,以保护工作组、局域网计算机、域客户端和服务器、分支机构(物理上为远程机构)、Extranet 以及漫游客户端之间的通信。
IPSec是IETF(Internet Engineering Task Force,Internet工程任务组)的IPSec小组建立的一组IP安全协议集。IPSec定义了在网际层使用的安全服务,其功能包括数据加密、对网络单元的访问控制、数据源地址验证、数据完整性检查和防止重放攻击。
IPSec的安全服务要求支持共享密钥完成认证和/或保密,并且手工输入密钥的方式是必须要支持的,其目的是要保证IPSec协议的互操作性。当然,手工输入密钥方式的扩展能力很差,因此在IPSec协议中引入了一个密钥管理协议,称Internet密钥交换协议——IKE,该协议可以动态认证IPSec对等体,协商安全服务,并自动生成共享密钥。
ipsec配置流程
IPsec-VPN--virtual private network 什么是VPN--虚拟专用网
VPN作用--通过公网实现远程连接,将私有网络联系起来 VPN的类型:
1、overlay的VPN,例如IPsec-VPN
2、peer-to-peer的VPN,例如MPLS-VPN 还可以分为二层VPN和三层VPN IPsec-VPN是三层的VPN IPsec-VPN的分类:
1、site-to-site VPN 也叫 LAN-to-LAN VPN (要求两个站点都要有固定的IP) 2、EASY-VPN 也叫 remote VPN (通常用于连接没有固定IP的站点) IPsec-VPN提供三个特性:
1、authentication 每一个IP包的认证
2、data integrity 验证数据完整性,保证在传输过程中没有被人为改动 3、confidentiality (私密性)数据包的加密 《知识准备》
在学习IPsec技术之前,先要学习以下几点知识 1、加密机制
2、DH密钥交换算法 3、认证机制 4、散列机制
加密机制--密码学分为两类:
对称加密算法---使用一把密匙来对信息提供安全的保护。只有一个密匙,即用来加密,也用来解密 特点: 1、速度快 2、密文紧凑
3、用于大量数据的传送
对称加密代表:DES、3DES、AES
3DES--有三个密匙,用第一个密匙加密,用第二个密匙解密,再用第三个密匙加密
非对称加密---有一对密匙,一个叫公匙,一个叫私匙,如果用其中一个加密,必须用另一个解密。 特点: 1、速度慢 2、密文不紧凑
3、通常只用于数字签名,或加密一些小文件。 非对称加密的代表:RSA、ECC
非对称加密代表RSA--有一对密匙,一个公匙,一个私匙,私匙加密,公匙解密,或者公匙加密,私匙解密
非对称加密可以有两种应用: 1、公钥加密,私钥解密,叫加密2、私钥加密,公钥解密,叫数字签名
理想的应用方法,用非对称加密法来传送对称加密的密匙,或用在数字签名当中。用对称加密法来加密实际的数据。
数字签名不但证明了消息的内容,还证明了发送方的身份。
密钥化的HASH--使用密钥对生成的消息摘要进行加密时,被称为加密的消息摘要。 diffie-hellman key exchange--DH算法
是一种安全的让通信双方协商出一个共享密匙的方法。
用对方的公匙和自已的私匙产生一个双方都能知道的KEY(也叫共享的密秘),作对称加密用 DH group 1的长度是768位 (产生出的KEY的长度) DH group 2的长度是1024位
认证机制--(这里所指的是设备的认证,而不是用户的认证)
现代的基本加密技术要依赖于消息之目标接收者已知的一项秘密,关键的问题是如何保障密钥的安全。
1、用户名和密码
2、OTP(one time password)一次性密码 3、生物认证(指纹、眼膜) 4、预共享密钥 5、数字证书 6、加密临时值
散列机制--用来做完整性检验
散列函数(就是HASH)--把一大堆数据经过计算得到一个较小的、定长的值,散列是一种不可逆函数。这意味着一旦明文生成散列,就不可能或者说极端困难再将其由散列转换成明文。
HASH的特点:
1、不管输入什么数据,输出是定长的
2、只要输入有一点微小变化,输出就会发生很大的变化,也就是雪崩效应 3、不可逆
HASH的算法:
1、md5 提供128位的输出 md5是验证,不是加密技术,用来做哈希 2、SHA 提供160位的输出
HMAC--使用散列的消息认证编码,或者叫密钥化的HASH,是一种使用HASH来进行认证的机制。可以用来做预共享密钥的认证。
---------------------------------------------------------------------------------------- IP sec 的组成--IPsec协议集包括三个协议: 1、internet key exchange(IKE)密匙交换协议
协议双方使用的算法,密匙,协商在两个对等体之间建立一条遂道的参数,协商完成再用下面的方法封装数据。
IKE动态的,周期性的在两个PEER之间更新密钥 2、encapsulating secutity payload(ESP)封装安全负载
可以对数据包认证,加密,封装,IP中协议号--50,通常使用3DES来进行加密 3、authentication header (AH)
只提供认证,封装,不提供加密,明文传送,IP中协议号--51
IPsecVPN的两种模式--
算法,封装技术以及密钥。这个协商过程是通过IKE来完成的,IKE协商分两个阶段运行:
阶段一:在两个对等体设备之间建立一个安全的管理连接。没有实际的数据通过这个连接。这个管理连接是用来保护第二阶段协商过程的。 阶段二:当对等体之间有了安全的管理连接之后,它们就可以接着协商用于构建安全数据连接的安全参数,这个协商过程是安全的,加了密的。协商完成后,将在两个站点间形成安全的数据连接。用户就可以利用这些安全的数据连接来传输自已的数据了。 第一阶段:建立ISAKMP SA 协商的是以下信息:
1、对等体之间采用何种方式做认证,是预共享密钥还是数字证书。 2、双方使用哪种加密算法
3、双方使用哪种HMAC方式,是MD5还是SHA 4、双方使用哪种Diffie-Hellman密钥组
5、使用哪种协商模式(主模式或主动模式) 6、还要协商SA的生存期
第二阶段:建立IPsec SA 协商的是以下信息: 1、双方使用哪种封装技术,AH还是ESP 2、双方使用哪种加密算法
3、双方使用哪种HMAC方式,是MD5还是SHA 4、使用哪种传输模式,是隧道模式还是传输模式 5、还要协商SA的生存期
第一阶段的协商过程总共有6条消息:
1、消息1和消息2用于peer之间协商加密机制
ISAKMP包含有ISAKMP头、SA负载、提议负载、转换负载等字段 总之是让双方协商好我们之间使用啥子协议、加密方法
具体是要协定四个东东:加密机制、散列机制、DH组、认证机制 2、消息3和消息4用于相互之间交换公共密匙
两端的peer先各自生成自已的私匙和公匙,同时还产生一个临时值。然后再使用消息3或消息4将各自的公匙和临时值进行交换。
交换完公匙后,每个peer先根据对方的公匙和自已的私匙生成一个共享秘密(使用DH算法),再根据共享秘密、对方和自已的临时值、预共享密钥产生出三个SKEY: SKEYID_d--此密匙被用于计算后续IPsec密匙资源
SKEYID_a--此密匙被用于提供后续IKE消息的数据完整性以及认证 SKEYID_e--此密匙被用于对后续IKE消息进行加密
消息3和4的ISAKMP包含以下字段:ISAKMP包头、密匙交换负载(KE)、临时值负载 3、消息5和消息6用于两个peer之间进行认证,这两个消息是用SKEYID_e进行过加密的。 每个peer根据一大堆东东(包括SKEYID-a、预共享密钥、标识ID)生成一个Hash值,再将这个值和自已的标识ID(通常是IP或主机名)发送给对方。当然,使用的就是消息5或消息6。
每个peer收到对方的ID和Hash值后,先根据对方的ID找到对方的公匙,再计算本地Hash值,如果本地Hash值和对方的Hash值一样,就表示认证成功。 这一步完成后,IKE SA被建立,主模式认证完成 第二阶段的协商过程总共有3条消息:
1、第一、二条信息是两个peer之间协商形成IPsec SA的封装协议、模式、加密算法,还要互发用DH重新生成的新的公匙和临时值,以及其它一些参数,像SPI、ID等等。
2、第三条消息通常由发起者发送给响应者,起一个确认的作用,也用来验证通信信道的有效性
第三条信息发送前,两端的peer必须先用和DH相关的信息(新的私钥和对方公钥)生成一个新的DH秘密,然后用该值和SKEYID_d以及其他一些参数一起来生成最终加解密的KEY。 --------------------------------------------------------------------------------------------
SA--安全关联
SA是两个通信实体经协商建立起来的一种协定,它们决定了用来保护数据包安全的IPsec协议、转码方式、密钥、以及密钥的有效存在时间等等。任何IPsec实施方案始终会构建一个SA数据库(SA DB),由它来维护IPsec协议用来保障数据包安全的SA记录。
SA是单向的--如果两个主机(比如A和B)正在通过ESP进行安全通信,那么主机A就需要有一个SA,即SA(OUT),用来处理外发的数据包,另外还需要有一个不同的SA,即SA(IN)用来处理进入的数据包。主机A的SA(OUT)和主机B的SA(IN)将共享相同的加密参数(比如密钥)。
SA还要根据协议来区分,如果两个主机间同时使用ESP和AH,对于ESP和AH会生成不同的SA。
SADB--安全关联数据库,包含双方协商的IKE和IPsec安全信息
SPI--安全参数索引,是一个32位的值,用来标识用于处理数据包的特定的那个安全联盟
或者这样理解,用于唯一定义一条单向的IPsec通道。这个号码存在于ESP包头中,通道两端必须一致。 SA分为两种--
1、IKE(ISAKMP)SA 协商对IKE数据流进行加密以及对对等体进行验证的算法 2、IPsec SA 协商对对等体之间的IP数据流进行加密的算法 对等体之间的IKE SA只能有一个 对等体之间的IPsec SA可以有多个
PFS--完善转发安全性,是一种IKE协商中发起者可以向响应者提供建议的属性,是一种强制对等体双方在快速模式交换中产生新的DH秘密的属性。这允许使用新的DH秘密生成用于加密数据的加密密钥。
-------------------------------------------------------------------------------------------- 配置实例: 步骤:
1、configure crypto ACL 配置感兴趣流,需要加密的流量就是感兴趣流。 2、establish ISAKMP policy 第一阶段的策略 3、configure IPsec transform set 第二阶段的策略 4、configure crypto map
5、apply crypto map to the interface 在接口下应用
6、configure interface ACL 确定在外网接口放行哪些流量
一、定义感兴趣流:
ip access-list extended VPN
permitip 172.16.1.0 0.0.0.255 172.16.2.0 0.0.0.255 二、IKE第一阶段 cryptoisakmp policy 10 encryption des hash md5
authentication pre-share group 2
crypto isakmp key cisco address 202.100.1.2 pre-share key 的定义 三、IKE第二阶段
cryptoipsec transform-set MYSET esp-des esp-md5-hmac mode tunnel
四、把感兴趣流与转换集映射一下 crypto map MYMAP 100 ipsec-isakmp
set peer 202.100.1.2 设置VPN对等体的地址 set tranform-set MYSET 设置转换集
match address VPN 感兴趣流和转换集的绑定
五、MAP与接口绑定 int s0
crypto map MYMAP
六、设定接口只允许跑VPN流量,在接口入设置 access-list 100 permit udp any eq 500 any eqisakmp
access-list 100 permit esp any any
access-list 100 permit ip 172.16.2.0 0.0.0.255 172.16.1.0 0.0.0.255 由于ACL会二次查找,所以还要放行私网的流量 show crypto isakmp policy
show crypto isakmpsa第一阶段的SA show crypto ipsecsa第二阶段的SA show crypto engine connections active show crypto map
crypto ipsec security-association lifetime [seconds|kilobytes] 第二阶段的一个协商时间,也就是说多长时间后重新协商密匙。也可按已发了多少流量来进行协商。哪个数值先到就先起效。
crytoisakmpkeepalive 10 3
IPsec通道的终结:
当流量超过上限后或者超时自动终结 clear crypto isakmp清第一阶段 clear crypto sa清第二阶段
clear crypto session 在新版的IOS中,用这条命令全清 debug crypto isakmp debug crypto ipsec
配置IPsec-VPN的注意点: 1、路由
2、感兴趣流量 3、策略 4、调用
接口设定ACL:
设定接口只允许跑VPN流量,在接口入设置
access-list 100 permit udp any eq 500 any eqisakmp access-list 100 permit esp any any 或access-list 100 permit ahp any any
注意:在老IOS中,对包解密后还会再匹配一次访问列表,新的IOS中就不会,所以在老的IOS中要加入一条
access-list 100 permit ip 192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255
IPsec中的路由问题:
R1 需要有4.4.4.0的路由
R2 需要有4.4.4.0 1.1.1.0 30.0.0.0的路由 R3 需要有1.1.1.0 4.4.4.0 20.0.0.0的路由 R4 需要有1.1.1.0的路由
------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- GRE
GRE通用路由封装---一个三层协议,能够将各种不同的数据包封装成IP包,然后通过IP网络进行传输。也就是说能对其它的IP包或非IP包进行再封装,在原始包头的前面增加一个GRE包头和一个新IP包头。明文传送,没有安全性。在IP中的协议号47。
GRE封装格式:
20字节 4字节
GRE有很好的隧道特性 1、支持多协议 2、支持组播 缺点是不安全 IPsec的特点:
1、能提供安全的传输保证
2、但只能支持IP,不能支持其他协议
小知识:在tunnal中,指定目标地址之后,只要在本地路由表中有这个地址,tunnal就会up
GRE over IPsec(实用性很高的技术,不像IPsecVPN那样麻烦)
原理:在tunnel中,先用GRE对数据包封装成IP包,再用IPsec加密,默认是通道模式
红色部分是加密的部分
IPsec只能对IP包加密,不能对非IP包加密。 注意在GRE over IPsec中感兴趣流的定义:(所有的GRE流量都是感兴趣流) access-list 100 permit gre host 202.100.13.3 host 202.100.12.2 必须定义公网地址 因为当感兴趣流量过来时: 1、先查路由,进入tunnel口
2、封装GRE后,进入S口撞击map
当封装了GRE后,外部的IP地址用的就是公网地址了,所以感兴趣流量必须定义为公网地址。
由于在接口下会两次检查ACL,所以如果在物理接口下放ACL,要同时放行ESP和GRE流量,还有isakmp的协商流量。
GRE over IPsec 技术建议使用传输模式 因为通信点等于加密点 试验:
一、配置tunnel interface tunnel 1
tunnel source 202.100.1.1 tunnel destination 202.100.1.2 tunnelgreip
ip address 12.1.1.1 二、运行路由协议 routereigrp 90
network 172.16.1.0 0.0.0.255 network 12.1.1.0 0.0.0.255
三、开始配置IPsec,先定义感兴趣流:(注意这里的定义) ip access-list extended VPN
permitgre any any
四、IKE第一阶段 cryptoisakmp policy 10 encryption des hash md5
authentication pre-share group 2
crypto isakmp key cisco address 202.100.1.2 pre-share key 的定义 五、IKE第二阶段
cryptoipsec transform-set MYSET esp-des esp-md5-hmac mode tunnel
六、把感兴趣流与转换集映射一下 crypto map MYMAP 100 ipsec-isakmp
set peer 202.100.1.2 设置VPN对等体的地址 set tranform-set MYSET 设置转换集
match address VPN 感兴趣流和转换集的绑定
七、MAP与接口绑定 int s0
crypto map MYMAP
八、设定接口只允许跑VPN流量,在接口入方向设置 用在物理接口下--
access-list 100 permit udp any eq 500 any eqisakmp access-list 100 permit esp any any access-list 100 permit gre any any
----------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------
site-to-site VPN的缺点: 1、需要两端有固定的公网IP 2、两端的配置太过复杂
评论
查看更多