400-877-3227

4008773227

108636278

爱快在线支持

Online Support

IPSecVPN

2018-05-28

一、简介

IPsec是Internet工程任务组(IETE)制定的一个开放的网络层安全框架协议。它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合。IPsec主要包括安全协议AH(Authentication Header)和ESP(Encapsulating Security Payload),密钥管理交换协议IKE(Internet Key Exchange)以及用于网络认证及加密的一些算法等。


关键字详解

1.IKE版本

IPsec IKE:Internet 秘钥交换协议,是 IPsec 体系结构中的一种主要协议。它是一种混合协议,使用部分 Oakley 和部分 SKEME,并协同 ISAKMP 提供密钥生成材料和其它安全连系,比如用于 IPsec DOI 的 AH 和 ESP 。目前存在两个版本,包含IKEv1和IKEv2两个版本。主要区别在于协商过程、认证方法不同。

2.认证方式

认证方式分为预共享秘钥以及自签证书两种,预共享秘钥在配置上相对简单,兼容性较好。自签证书通过生成的秘钥以及证书进行验证,安全性更高。


二、如何使用

字段介绍

【状态】:

 通过启动按钮开启或者关闭IPsec服务

【名称】:

 网络中存在多个IPsec服务时,通过名称区分服务。

【对方IP/域名】:

 建立IPsec的对端服务地址。

【本地子网】:

 IPsec本地子网网段。配置如192.168.1.0/24或者0.0.0.0/0。0.0.0.0/0表示为内网的所有网段

【对方子网】:

 IPsec对端服务的内网子网网段。如有多个网段,可点击添加更多子网按钮添加。

【线路】:

 选择IPsec通讯的外网线路。

【IKE版本】:

 IKE版本。IKEv1和 IKEv2两个版本。

【IKE协商模式】:

 只存在于IKEv1版本中。分为主模式和积极模式两种。

 主模式为双向认证,安全性较好。积极模式也称为野蛮模式。仅单向认证,安全性比主模式较差,连接成功率高。

【IKE存活时间】:

 通道重新协商的时间。

【IKE提议】:

 分为加密算法、认证算法以及秘钥交换算法。

【认证方式】:

 分为预共享密钥以及自签证书。

【预共享秘钥】:

 配置简单,兼容性好。

【自签证书】:

 通过生成的密钥以及证书来进行验证。安全性好。

【本地标识、对方标识】:

 标识双方身份,与证书中的common name 字段对应。本地标识和对方标识不能配置为相同且不能为空。

【本地私钥】:

 与本地证书成对出现,用于校验。

【本地证书】:

 与本地私钥成对出现,用于校验。

【对方证书】:

 由对方提供,校验作用。

【ESP存活时间】:

 通道重新协商时间

【ESP加密算法】:

 ipsec通道的安全策略

【ESP认证算法】:

 ipsec通道的安全策略

【允许压缩】:

 压缩节省带宽,但是会占用一定的CPU资源


使用方法

网络拓扑及协商方式简介如下图所示

2.jpg

开启服务并配置基本信息:开启发起方的服务状态,并配置基本网络信息。

ipsec.png

开启响应方的服务状态,并配置基本网络信息

ipsec.png

选择相应的IKE版本以及认证方式,示例中选择的IKE版本为IKEv1,认证方式为预共享秘钥。其他的按照字段详解中的介绍以及自己的需求配置即可。


发起方配置:

IPC.png


响应方配置:

IPC.png

注意事项

1、  两端选择的IKE版本需要一致。

2、  IPsecVPN与L2TP预共享密钥冲突,不可同时启用

3、  选择IKEv1版本的时候,两端的模式需要一致。

4、  IKEv1的版本时,IKE提议两端的参数配置要一致,当自动协商时两端必须都是自动协商。

5、  选择IKEv1版本的时候,对方子网只能填写一个。

6、  本地标识和对方标识不能配置成相同的。

7、  IKEv2版本时,IKE提议两端参数配置要一致、当自动协商时仅一端配置自动协商,另一端配置具体参数也可以。

8、  IPsecVPN不过NAT,两端设备即可充当服务器,也可充当客户端

9、  IPsecNAT,则需要注意以下几点

a)         服务端的“对方IP/域名”必须为空,只能充当服务器,且服务端不允许过NAT

b)        要先启动服务端,再启动客户端。



三、知识拓展

AH与ESP

1、Ipsec通过AHAuthentication header,验证头)和ESPEncapsulating Security Payload,封装安全载荷)两个安全协议实现IP报文的封装/解封装。

AH是报文头验证协议,主要提供数据源验证、数据完整性验证和防报文重放功能,不提供加密功能。

ESp是封装安全载荷协议,主要提供加密、数据源验证、数据完整性验证和防报文重放功能。

注:AH和ESP协议提供的安全功能依赖于协议采用的加密、验证算法。

2、IPsec网关的加密和验证算法所使用的密钥可以手工配置,也可以动态协商。为了密钥的安全性以及管理简单,Ipsec协议框架中引入IKE协议实现安全联盟动态协商和密钥管理功能。

IKE协议建立在Internet安全联盟和密钥管理协议ISAKMPinternet security association and key management protocol)框架之上,采用DHdiffie-hellman)算法在不安全的网络上安全的分发密钥、验证身份,以保证数据传输的安全性。

IKE现分为IKE V1以及IKE V2版本,爱快使用IKE V2版本,下面会着重讲解下IKEV2Ipsec建立的过程。


IPsec建立过程:(重点讲解下IKEV2协商过程)

IKEV2相比于IKEV1版本,简化了消息交换的过程,IKE V1至少需要交换6条消息。IKEV2正常情况下使用2次交换共4条消息就可以完成一个IKE SA和一对Ipsec SA,如果要求建立 IPsec SA大于一对时,每一对SA只需额外增加1次交换,也就是2条消息就可以完成。  

IKEV2定义了三种交换:初始交换、创建子SA交换以及通知交换

1、初始交换

IKE通信总是从IKE安全联盟初始交换(ike_sa_init交换)和IKE认证交换(ike_auth交换)开始。这2个交换通常由4条消息组成,在某些场景下消息数目可能会增加。所有使用IKE的通信都由请求/响应组成。IKE安全联盟初始交换和IKE认证交换完成后可以建立一个IKE SA和第一对child_sa(Ipsec SA

图片5.png

如上图:使用两个包来建立IKE sa,使用两个包来建立IPsec SA。


2、创建子SA交换:

当一个IKE SA需要创建多对Ipsec SA时,需要使用创建子SA交换来协商多于一对的SA,另外创建子SA交换还可以用于进行IKE SA的重协商。

创建子SA交换包含一个交换两个消息。在IKEv1中这个交换称为阶段2交换(快速模式交换)。这个交换必须在IKE初始交换完成之后才能进行,交换的发起者可以是IKE初始交换的发起者,也可以是IKE初始交换的响应者。在交换中的两个消息需要由IKE初始交换协商的密钥进行保护。

类似于IKEV1的PFS,创建子SA交换阶段可以重新进行一次DH交换,生成新的密钥材料。生成密钥材料后,子SA的所有密钥都从这个密钥材料衍生出来。

 

3、通知交换:

运行IKE协商的两端有时会传递一些控制信息,例如错误信息或者通告信息,这些信息在IKEV2中是通过通知交换完成的。

通知交换必须在IKE SA保护下进行,也就是说通知交换只能发生在初始交换之后。

注意事项:

  为了保证VPN的稳定,VPN客户端设置的VPN条数建议在30条以内


四、IPsec VPN实施案例

1.爱快与Cisco IPsec实施案例

http://www.ikuai8.com/support_article.php?id=0000000593


2.爱快与Juniper IPsecc实施案例

https://www.ikuai8.com/support_article.php?id=0000000618


3.爱快与侠诺 IPsec实施案例

https://www.ikuai8.com/support_article.php?id=0000000594


4.爱快与多核防火墙IPsec实施案例

https://www.ikuai8.com/support_article.php?id=0000000741



五、IPsec VPN常见日志解析

1.两端设置不匹配产生的ipsec不通

ipsec11.png

日志描述

爱快IPsecVPN发送5次重传包,对端路由未回应。

解决方法:

1.本端与对端的ipsec版本是否一致,必须同是IKE v1IKEv2版本,参数必须设置一致。

2.确认对端IPsec是否正常运行。


2.IPsec名称书写中文导致连接异常

Feb  7 17:10:49 00[CFG] loading ocsp signer certificates from '/etc/ipsec.d/ocspcerts'

Feb  7 17:10:49 00[CFG] loading attribute certificates from '/etc/ipsec.d/acerts'

Feb  7 17:10:49 00[CFG] loading crls from '/etc/ipsec.d/crls'

Feb  7 17:10:49 00[CFG] loading secrets from '/etc/ipsec.secrets'

Feb  7 17:10:49 00[CFG] loading secrets from '/etc/ipsec.secrets.dpn-1'

Feb  7 17:10:49 00[CFG] loaded IKE secret for @总部VPN @LEGOVPN6

Feb  7 17:10:49 00[LIB] loaded plugins: charon aes des sha1 sha2 md5 random nonce x509 revocation constraints pubkey pkcs1 pgp dnskey pem fips-prf gmp xcbc hmac attr kernel-netlink resolve socket-default stroke updown xauth-generic

Feb  7 17:10:49 00[JOB] spawning 16 worker threads

Feb  7 17:10:49 04[CFG] received stroke: add connection 'ipsec_vpn_1'

日志描述

对端填写了中文ipsec名称导致异常

解决方法:

IPsec名称使用字母或数字来命名。


3.对端路由使用了爱快不支持的协议导致链路异常

Pluto{2799}:wang0#152:we require PFS but Quick I1 SA specifies no GROUP_DESCRIPTION

日志描述:

对端存在爱快不支持的协议PFS。

解决方法

对端路由关闭PFS。


4.两端参数不匹配导致连接异常

【CFG】received proposals:ESP:3DES—CBC/HMAC_MD5_96/MODP——1024/No——EXT——seq

【CFG】configured proposals :ESP:3DES_CBC/HMAC_MD5_96/no_EXT_SEQ,

ESP:AES_CBC-128/AES_CBC_192/AES_CBC_256/3DES_CBC/BLOWWFISH_CBC_256/HMAC_SHA1_96/AES_XCBC_96/HMAC_MD5_96/NO_EXT_seq

【CFG】no matching proposal found sending no_PROPOSAL_CHOSEN

日志描述

两端协议不匹配,从日志来看是一端选择了modp1024另一端没有选择或者设置错误。

解决方法:

出现此类报错,首先确定对端modp选择modp1024

注意事项

一般情况下,其他品牌路由的IPsec group 1对应的为modp768,group 2对应modp1024


5.穿越NAT以及预共享密钥错误导致连接异常

16:11:04 10[IKE]remote host is behind NAT

16:11:04 10[IKE]authentication of '116.247.107.138'(myself)with pre-shared key

16:11:04 10[IKE]no shared key found for '116.247.107.138'-116.236.225.30'

日志描述:

存在两方面的日志报错:

1.预共享密钥配置错误。

2.一端为私网地址(或两台路由器之间经过了nat转发)

解决方法:

1.两端预共享密钥填写一致。

2.私网地址一端为IPsec客户端。设置单向访问

IPsecNAT,则需要注意以下几点

a)         服务端的“对方IP/域名”必须为空,只能充当服务器,且服务端不允许过NAT

b)        要先启动服务端,再启动客户端


6.一端为私网地址导致IPsec VPN无法互访

[ENC]generating IKE_SA_INIT response 0{N(no_prop)

[NET]sending packet:from 59.33.215.127[500]to183.30.192.195[500]

[NET]received packet:from 216.218.206.70(25573)to 59.33.215.127[500]

日志描述:

IPsec对端路由的wan口地址为私网地址(或中间经过了nat转发)导致回送数据异常,无法互访

解决方法:

wan口地址为私网地址的一端为IPsec的客户端设置单向访问

IPsecNAT,则需要注意以下几点

a)         服务端的“对方IP/域名”必须为空,只能充当服务器,且服务端不允许过NAT

b)        要先启动服务端,再启动客户端

注意事项

从这个日志上面显示最明显的为爱快以500端口发送数据,对端路由以25573回送的数据。