IPSEC VPN

IPSEC VPN介绍

IPSec VPN是基于IPSec 协议处理的VPN技术,属于三层VPN,不支持组播,不支持路由协议。用于保障设备间连接的协议。 IPsec有助于保持通过公共网络发送的数据安全。 它通常用于建立 VPN,其工作原理是对 IP 数据包进行加密,同时验证数据包的来源。

IPSec提供的安全服务

  • 访问控制

    在IPSEC中可以抓取感兴趣流,即可以 设定哪些流量需要进入到ipsec通道 中,进行保密传输,哪些不需要进入通道

  • 机密性(Confidentiality):数据加密。

  • 不可否认性(Non-repudiation):数字签名。

  • 完整性(Integrity ):防篡改。

  • 重传攻击保护(Anti-replay):抗重播报文。

    IPSEC通过启用 序列号 的方法来进行防重放攻击。相当于启用一个一次性的数字,不会再次生效。

IPsec VPN体系结构

IPSEC协议簇

安全协议

AH ---鉴别头协议

封装位置在 网络层和传输层之间 ,其协议号为 51 ;

特点:

  1. 数据真实性
  2. 不支持机密性

  3. 完整性

  4. 抗重放

  5. 不支持NAT穿越;

AH头部

ESP ---封装安全载荷协议

封装位置在 网络层和传输层之间 ,其协议号为 50;

  1. 数据真实性
  2. 支持机密性

  3. 完整性

  4. 抗重放

  5. 支持NAT穿越;

ESP头部:

AH跟ESP对比

封装模式

传输模式

主要应用场景:经常用于主机和主机之间端到端通信的数据保护。

封装方式:不对数据添加新的IP报头,在原数据包头后面插入IPSec包头,将原来的数据封装成被保护的数据,对内网环境加密保护数据,例如GRE over IPSec。

隧道模式

主要应用场景:经常用于私网与私网之间通过公网进行通信,建立安全VPN通道。

封装方式:默认模式就是隧道模式,增加新的IP(外网IP)头,其后是ipsec包头,之后再将原来的整个数据包封装。

安全联盟

SA:用于记录与对等体之间协商好的安全参数信息(加解密算法、完整性校验算法.......)

安全联盟数据库SADB

分类:IKE SA、IPSec SA

IKE SA:

第一阶段的协商成果

用于保护第二阶段的协商过程

IPSec SA

第二阶段的协商成果

用于保护对等体双方的业务流量

SPI安全参数索引

类似于目录

用于在SADB中找到正确的SA信息

SPI值是唯一的、独立的、单向的

IKE协议(internet密钥交换)

基于UDP端口500

为IPSec提供协商密钥(DH)、建立安全联盟(SA)的相关内容

由Oakley、SKEME、ISAKMP三个部分组成,ISAKMP是IKE的核心

IKE经过两个阶段为IPSec进行密钥协商并建立安全联盟:

第一阶段交换:通信各方彼此间建立了一个已通过身份验证和安全保护的通道,此阶段的交换建立了一个ISAKMP安全联盟,即ISAKMP SA(也可称为IKE SA)。第一阶段交换有两种协商模式:

•主模式协商

•野蛮模式协商

第二阶段交换:用已经建立的安全联盟(IKE SA)为IPSec协商安全服务,即为IPSec协商具体的安全联盟,建立IPSec SA,产生真正可以用来加密数据流的密钥,IPSec SA用于最终的IP数据安全传送。

阶段一:

目的:在对等体之间协商IKE SA,为阶段二进行保护。

主模式(Main Mode,MM):默认使用IP地址作为身份标识,默认是传递自己的出口地址做身份标识,校验对端的公网IP做对端身份标识。(自动生成双方身份ID,不能改变IP因为它是和PSK 绑定关系)

需要通过6个数据包进行交互,安全性更高

完成三件事情:

                       1.策略协商:指定身份认证方式、加密算法、DH组版本、HASH算法、生存时间默认是86400s,一天。                 

                       2.密钥交换

                       3.对等体验证(加密)

第一二个数据包--IKE SA交换

Ci(cookie) :这个参数每个数据包中都会携带,在IKEV2中,变成了 SPI,在这里作用类似。
SA:里面携带的是需要协商的安全参数“五元组”。
加密算法,哈希算法,身份认证, DH 组, SA 存活期
  AES          MD5             PSK        DH2    84600S(默认值)
注意 :手工建立的SA,一经建立,则将永久有效;但是IKE建立的SA,需要配置生存周期,周期时间到了之后,将重新建立SA。SA两端的数值不要求完全相 同,如果时间不同,则按照小的来执行。
第二个回包: 主要确认安全参数,如果安全参数都可以对的上,则将继续完成后面的协商。如果参数没有对上,则将回复一个 负载拒绝报文 ,结束 IKE SA 的建立。

第三四个数据包---DH密钥交换---对称密钥

NI,Nr:代表的是随机数
X,Y :DH算法中需要公开的参数
这里,为了加强安全性, DH 算法会生成 四种密钥 。

PRF---hash算法的一种

种子密钥---剩余三种密钥都需要加入种子密钥运算得出,并且,种子密钥中计算时,会携带预共享密钥。

SKEYID_e ---加密密钥---g^ir (代表的就是DH算法中计算出来的Z),CKY-I/CKY-
R(前面双方携带的cookie值)---- 用于第一个阶段5,6数据包和第二阶段数据包加
密使用 。
SKEYID_a- ---验证密钥--- 用于第二阶段hash时使用的密钥 ---HMAC算法(结合密
钥的HASH算法),安全性比不加入密钥的HASH算法更高。
SKEYID_d ---推导密钥--- 用于计算最终密钥(最终加密数据的密钥)的素材

第五六个数据包---进行身份认证---加密传输

ID ---身份信息---在主模式下,默认使用IP地址作为身份信息
hash ---针对之前SA信息再进行HASH运算,比对结果。这里的HASH运算会加入验证密钥一起进行,更加安全。

注意:前四个数据包是明文,五六数据包是密文 。

野蛮模式(Aggressive Mode,AM)   :可以使用用户名或IP等作为双方身份标识,即可以自定义身份标识,速度快,只需要3个数据包就可以完成协商,安全性低。

应用场景:在使用预共享密钥做身份验证的场景中,如果对等体地址是动态获取的,选择使用野蛮模式。     

PS:
1.X、Y就是交互的公钥。Ni和Nr是随机数-(Nonce,随机数用以保持活性)

注意:
         在野蛮模式中,可以自定义身份标识,主要是因为身份信息不需要加密,并且,前两个数据包都无法加密,所以,野蛮模式安全性较低。仅第三个数据包会进行加密( 前两个数据包是明文,第三个数据密文) 。但是, 野蛮模式适用于NAT环境以及IP地址不固定的环境。

主模式跟野蛮模式对比
阶段二:

ISAKMP/IKE阶段2只有一种信息交换模式——快速模式(Quick Mode),它定义了受保护数据连接是如何在两个IPSEC对等体之间构成的。

快速模式有两个主要的功能:

1.协商安全参数来保护数据连接。

2.周期性的对数据连接更新密钥信息。

第二阶段的效果为协商出IPSec 单向SA,为保护IPsec数据流而创建。第二阶段整个协商过程受第一阶段ISAKMP/IKE SA保护。

协商内容:转换集(安全协议、封装模式)、感兴趣流量(保护的业务流量)。

数据传输阶段

数据传输阶段是通过AH或者ESP通信协议进行数据的传输。

数据传输建立在网络层。

数据传输阶段

VPN黑洞 ---隧道建立之后,如果其中一段的设备异常重启,另一端还在有效期内,则他发送的数据将有去无回,就形成了VPN黑洞
解决方法--- DPD死亡对等体检测 。
类似于心跳检测机制---采用空闲计时器原理---两边同时开启一个固定时间的计时器,期间数据值直接发过去,如果计时器超时,则数据发送前,先发送一个DPD检测报文,如果收到对方的DPD应答报文,则将重置计时器。如果没有收到,并且,连续5次都没有收到,则将拆掉安全通道。

IPSec VPN和NAT共用可能存在的问题

问题:

当一个接口同时调用了NAT和ipsec VPN,数据包经过时,会先查看NAT进行处理,再查看VPN进行相关处理。

解决方法:

在NAT转换的匹配感兴趣流中,将“VPN内网流量”进行拒绝,不做NAT转换,其他访问外网的流量正常进行匹配转换;VPN的匹配感兴趣流中放行去往对端内网的流量。

IPsec VPN 配置

华为:

阶段一:配置IKE安全提议(策略协商)、配置IKE对等体 (对等体的信息关联);

阶段二:配置IPSEC的安全提议(转换集)、感兴趣流;


1,配置IKE安全提议(策略协商)


[r1]ike proposal 1 ---后面需要添加一个提议的编号
[r1-ike-proposal-1]encryption-algorithm aes-cbc-128 ---定义加密算法---缺省是DES算法
[r1-ike-proposal-1]authentication-algorithm md5 ---定义校验算法---缺省是SHA1
[r1-ike-proposal-1]authentication-method pre-share ---定义认证方式---缺省是预共享密钥
[r1-ike-proposal-1]dh group2 ---定义DH组---缺省DH组1
[r1-ike-proposal-1]sa duration ? ---定义SA的老化时间----建议:老化时间修改的时候,要大                                                         于600S。
INTEGER<60-604800> Value of time(in seconds), default is 86400
[r1-ike-proposal-1]sa duration 86400


2,配置IKE对等体 (对等体的信息关联)

[r1]ike peer aa v1---需要声明对等体的名称(自定义),第一次进入时,需要写版本号
[r1-ike-peer-aa]ike-proposal 1 ---关联IKE安全提议
[r1-ike-peer-aa]exchange-mode ? ---选择一阶段的模式
         aggressive Aggressive mode ---野蛮模式
         main Main mode ---主模式
[r1-ike-peer-aa]exchange-mode main ---这里缺省选择的是主模式
[r1-ike-peer-aa]pre-shared-key cipher 123456 --- 定义预共享密钥的具体值,注意,两边必须一样
[r1-ike-peer-aa]remote-address 23.0.0.2 ---三位一体
1:邻居对等体的建邻地址;2:参与查找预共享密钥;3:作为身份标识验证对端身份


3,配置IPSEC的安全提议(转换集)


[r1]ipsec proposal aa ---需要定义一个提议的名称
[r1-ipsec-proposal-aa]transform esp ---定义安全协议---缺省esp
[r1-ipsec-proposal-aa]esp encryption-algorithm aes-128 ---定义数据加密算法---缺省des
[r1-ipsec-proposal-aa]esp authentication-algorithm md5 ---定义数据验证算法---缺省 md5
[r1-ipsec-proposal-aa]encapsulation-mode tunnel ---选择封装模式---缺省为隧道模式

4,抓取感兴趣流

[r1]acl 3000 ---这里只能选择使用高级ACL列表,因为后面调用的时候,仅能调用高级的。
[r1-acl-adv-3000]rulepermit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0    0.0.0.255

5,配置IPSEC安全策略 

[r1]ipsec policy aa 1 isakmp ---需要定义策略的名称和编号,并且需要选择手工模式还是IKE                                                   的方式。
[r1-ipsec-policy-isakmp-aa-1]security acl ? ---关联ACL列表
                     INTEGER<3000-3999> Apply advanced ACL
[r1-ipsec-policy-isakmp-aa-1]security acl 3000
[r1-ipsec-policy-isakmp-aa-1]ike-peer aa ---关联IKE对等体
[r1-ipsec-policy-isakmp-aa-1]proposal aa ---关联ipsec提议


6,接口调用


[r1-GigabitEthernet0/0/1]ipsec policy aa
注意:对端R3的IPSEC 也是相同的配置,在R3的g0/0/0接口调用


查看SA命令


display ike sa     查看IKE SA
display ipsec sa   查看IPSEC SA

华三:

策略协商

ike proposal 100

authentication-method pre-share

encryption-algorithm 3des-cbc

authentication-algorithm sha

dh group1

预共享密钥

ike keychain R1

pre-shared-key address 202.101.12.1 key simple cisco123

profile关联上述信息

ike profile R1

keychain R1

match remote identity address 202.101.12.1 255.255.255.255

proposal 100

转换集

ipsec transform-set myset

esp encryption-algorithm 3des-cbc

esp authentication-algorithm md5

encapsulation-mode tunnel

补充:如果阶段二的安全协议选择AH,需要特别更改协议

ipsec transform-set R1

protocol ah

ah authentication-algorithm md5

感兴趣流量

acl advanced 3000

rule 0 permit ip source 192.168.70.0 0.0.0.255 destination 192.168.10.0 0.0.0.255

关联上述信息

ipsec policy mypolicy 10 isakmp

transform-set myset

security acl 3000

remote-address 202.101.12.1

ike-profile R1

在公网接口进行调用

int g1/0

ipsec apply policy mypolicy

查看

display ike sa     查看IKE SA
display ipsec sa   查看IPSEC SA

思科:

策略协商

crypto isakmp policy 10

encr 3des

hash md5

authentication pre-share

group 5

lifetime 86400

crypto isakmp key cisco123 address 202.101.23.3  //与202.101.23.3对等体利用key值进行身份验证

转换集

配置转换集,定义安全协议和相关算法,指定封装模式

crypto ipsec transform-set myset esp-3des esp-md5-hmac

mode tunnel

感兴趣流量

access-list 100 permit ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255  保护的业务流量范围

crypto map关联上述信息

crypto map cisco 10 ipsec-isakmp 定义map的名字和序号

set peer 202.101.23.3 //关联对等体

set transform-set myset //关联转换集

match address 100 //关联ACL

在公网接口进行调用

int e0/0

crypto map cisco

查看命令

show crypto isakmp sa

show crypto ipsec sa

  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值