IPSec协议

Posted 割你腰子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IPSec协议相关的知识,希望对你有一定的参考价值。

IPSec的两种模式

传输模式:传输模式只保护源IP头部后的数据,在原始 IP 头和 payload 间插入 IPSec 头部(ESP 或 AH)适用于加密点与传输点在同一网络中,用于主机与主机之间

隧道模式:隧道模式在IPSec头部前封装一个新的IP头部,来保护所有数据,可用于加密点与传输点不在同一网络中

由于隧道模式封装了新的IP头部,数据由esp或者ah进行保护,这时就像加密点与加密点间发送普通数据 这样并且可以隐藏主机和拓扑,传输模式的源和目的 IP 地址以及所有的 IP 包头都是不加密发送的

当传输点在加密点后面时(传输点为内网pc)当经过加密点(出口设备)源IP会被nat掉,这时使用传输模式会出现认证不成功因为传输模式是只识别原 IP 的,这样就会被直接丢弃掉

AH:不加密,不支持nat-t 很少使用,因为ah的认证范围为整个数据包,当我VPN设备经过nat设备时我的IP头部就会被nat掉,就会导致认证不成功。

ESP:除了IP头部验证所有

NAT-T

当我们的VPN设备经过nat设备时会出现源地址被nat,导致认证不成功,

当我们使用ah时,因为认证范围包括了IP头部,就会出现认证不成功

使用esp时,仅转换了源地址未转换端口的话认证还是可以成功的,但仅限于源地址转换,当使用pat时,由于我们esp的端口号是加密的,所以不能进行转换

这时出现了nat-t技术

开启nat-t功能后在ike-sa阶段会协商是否需要启用nat-t,就会在IP头部与esp头部中插入一个udp的4500端口

IPSEC网关如何知道自己是否支持NAT-T

决定双方是否支持NAT-T和判断peers之间是否有NAT存在的任务在IKEv1的第一阶段完成,NAT-T能力探测使用IKEv1第一阶段1-2个包交换来实现,双方互相交换NAT-T的Vendor ID来表示本段是否支持NAT-T。

IPSEC网关如何判定经过NAT的设备

为了决定Peers之间是否有NAT存在,Peer会发送一个hash负载(源目IP和端口计算),如果双方计算的hash和接受的hash值匹配,那么Peers之间就没有NAT存在(就采用ESP封装),如果hash值不同,那么Peers就需要使用NAT-T技术封装穿越NAT。

hash负载也叫作NAT-D负载,在主模式中的3-4个包发送,在野蛮模式的2-3个包中发送。

IKEV1通过3-4个包的NAT-D参数来判定
通过源IP源端口, 目的IP 目的端口算HASH值

如果HASH值相同,说明没有经过NAT,如果HASH值不等,说明经过了NAT

什么时候添加UDP的端口

如果确定了经过nat,就在IKEV1的通过5 6的时候,增加 UDP 4500端口

以上是关于IPSec协议的主要内容,如果未能解决你的问题,请参考以下文章

IPsec ××× 总结

华为防火墙IPSec网络安全协议

网络安全——网络层IPSec安全协议

IKE协议

IPSEC的一些理解

IPSec协议