一、简介
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对端服务的内网子网网段。如有多个网段,可点击添加更多子网按钮添加。
【线路】:
【IKE版本】:
IKE版本。IKEv1和 IKEv2两个版本。
【IKE协商模式】:
只存在于IKEv1版本中。分为主模式和积极模式两种。
主模式为双向认证,安全性较好。积极模式也称为野蛮模式。仅单向认证,安全性比主模式较差,连接成功率高。
【IKE存活时间】:
通道重新协商的时间。
【IKE提议】:
分为加密算法、认证算法以及秘钥交换算法。
【认证方式】:
分为预共享密钥以及自签证书。
【预共享秘钥】:
配置简单,兼容性好,预共享密钥暂不支持特殊字符填写。
注意事项:
当IPSEC使用预共享秘钥方式的时候,使用L2TP客户端拨号的时候不能填写预共享秘钥,否则L2TP拨号失败。
3.6.8及以上企业版本,设置预共享秘钥时,如果有设置标识,不必要检查L2TP的预共享秘钥冲突。
【自签证书】:
通过生成的密钥以及证书来进行验证。安全性好。
【本地标识、对方标识】:
标识双方身份,与证书中的common name 字段对应。本地标识和对方标识不能配置为相同且不能为空。
【本地私钥】:
与本地证书成对出现,用于校验。
【本地证书】:
与本地私钥成对出现,用于校验。
【对方证书】:
由对方提供,校验作用。
【ESP存活时间】:
通道重新协商时间
【ESP加密算法】:
ipsec通道的安全策略
【ESP认证算法】:
ipsec通道的安全策略
【允许压缩】:
压缩节省带宽,但是会占用一定的CPU资源
【DPD探测】:
clear: 连接失败后将不再进行重连。
hold:捕获匹配流量并进行重新协商连接。
restart:立即触发重新协商连接尝试。
注意:当IKE版本为IKEv1时建议选择“restart”DPD探测模式,当IKE版本为IKEv2时可任意选择DPD探测模式。
使用方法
网络拓扑及协商方式简介如下图所示
开启服务并配置基本信息:开启发起方的服务状态,并配置基本网络信息。
开启响应方的服务状态,并配置基本网络信息
选择相应的IKE版本以及认证方式,示例中选择的IKE版本为IKEv1,认证方式为预共享秘钥。其他的按照字段详解中的介绍以及自己的需求配置即可。
发起方配置:
响应方配置:
注意事项
1、 两端选择的IKE版本需要一致。
2、 选择IKEv1版本的时候,两端的模式需要一致。
3、 IKEv1的版本时,IKE提议两端的参数配置要一致,当自动协商时两端必须都是自动协商。
4、 选择IKEv1版本的时候,对方子网只能填写一个。
5、当两端均为爱快,选择IKE V2版本并且有多个对端子网时,对端的本地子网需要填写为0.0.0.0/0
6、 本地标识和对方标识不能配置成相同的。
7、 IKEv2版本时,IKE提议两端参数配置要一致、当自动协商时仅一端配置自动协商,另一端配置具体参数也可以。
8、 若IPsecVPN不过NAT,两端设备即可充当服务器,也可充当客户端
9、 若IPsec过NAT,则需要注意以下几点
a) 服务端的“对方IP/域名”必须为空,只能充当服务器,且服务端不允许过NAT。
b) 要先启动服务端,再启动客户端。
10、动态或作过nat环境(and私有地址)端路由器 不填写对端IP/域名,实现作为被动连接存在
11、如出现未连接的情况,每6分钟有一次检查和重连。
12、爱快路由目前不支持PFS协议。
ipsec VPN如何使用视频教程:https://v.ikuai8.com/?id=43
三、常见问题
1、两端内网无法互访排查方法
①使用ping测试,ping对端lan口网关是否可以通,如果可以,但是ping不通下面的设备,检查这个设备是否开启了防火墙、是否有设置了网关并可正常上网
②使用tracert功能看路径是否正确,在达到哪个网关的时候无法找寻到下一跳
注意:从3.4.6开始VPN之间互访可以不用勾选web访问控制 但ipsec vpn 互访必须勾选web访问控制
2、IPSec VPN对接不成功排查思路
四、知识拓展
AH与ESP:
1、Ipsec通过AH(Authentication header,验证头)和ESP(Encapsulating Security Payload,封装安全载荷)两个安全协议实现IP报文的封装/解封装。
AH是报文头验证协议,主要提供数据源验证、数据完整性验证和防报文重放功能,不提供加密功能。
ESp是封装安全载荷协议,主要提供加密、数据源验证、数据完整性验证和防报文重放功能。
注:AH和ESP协议提供的安全功能依赖于协议采用的加密、验证算法。
2、IPsec网关的加密和验证算法所使用的密钥可以手工配置,也可以动态协商。为了密钥的安全性以及管理简单,Ipsec协议框架中引入IKE协议实现安全联盟动态协商和密钥管理功能。
IKE协议建立在Internet安全联盟和密钥管理协议ISAKMP(internet security association and key management protocol)框架之上,采用DH(diffie-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)
如上图:使用两个包来建立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实施案例
2.爱快与Juniper IPsecc实施案例
3.爱快与侠诺 IPsec实施案例
4.爱快与多核防火墙IPsec实施案例
六、IPsec VPN常见日志解析
1.两端设置不匹配产生的ipsec不通
日志描述:
爱快IPsecVPN发送5次重传包,对端路由未回应。
解决方法:
1.本端与对端的ipsec版本是否一致,必须同是IKE v1或IKEv2版本,参数必须设置一致。
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,由于爱快IPSEC版本较新,官方已不再支持此选项。
下图为官方对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,group5对应modp1536 ,
group14对应modp2048,group15对应modp3072,group16对应modp4096,group17对应modp6144,group18对应modp8192。
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客户端。设置单向访问
若IPsec过NAT,则需要注意以下几点
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的客户端设置单向访问
若IPsec过NAT,则需要注意以下几点
a) 服务端的“对方IP/域名”必须为空,只能充当服务器,且服务端不允许过NAT。
b) 要先启动服务端,再启动客户端
注意事项:
从这个日志上面显示最明显的为爱快以500端口发送数据,对端路由以25573回送的数据