首页 理论教育 IPSec的NAT穿越技术应用场景解析

IPSec的NAT穿越技术应用场景解析

时间:2023-06-24 理论教育 版权反馈
【摘要】:如果同时使用IPSec和NAT技术,NAT会修改IPSec包的源和目的地址以及端口号,进而破坏IPSec报文的完整性。AH会认证整个包头,当NAT修改了IP头之后,IPSec就会认为这是对数据完整性的破坏,从而丢弃数据包。根据NAT设备所处的位置和地址转换功能的不同,IPSec的NAT穿越方式也不同。下面通过一个实例详细说明IPSec的NAT穿越技术的配置过程和测试结果。

IPSec的NAT穿越技术应用场景解析

IPSec(IP Security)协议作为一种重要的安全技术已经在互联网中得到了广泛应用。NAT技术将传入数据报和外发数据报中的地址和端口进行转换,缓解了IPv4地址不足的问题,解决了在不需要为网点中的每台计算机都分配全球有效IP地址的情况下,在网点中的主机都可通过地址转换访问互联网。然而,IPSec和NAT技术不兼容。如果同时使用IPSec和NAT技术,NAT会修改IPSec包的源和目的地址以及端口号,进而破坏IPSec报文的完整性。

IPSec对报文的保护通过头部认证协议AH(Authentication Header)和封装安全载荷ESP(Encapsulating Security Payload)实现。

IPSec协议有两种工作模式:隧道模式和传输模式。

传输模式和隧道模式数据包封装格式如图5.15所示。

图5.15 传输模式和隧道模式下数据包的封装格式

在总公司与分公司之间建立IPSec隧道。当分公司与总公司的专线出现故障时,这无疑是一种安全又有效的连接方案。

但是,在实际连接过程中,有的分部只能先由网络中的NAT设备进行地址转换,然后才能访问Internet。另外,分部还有访问Internet的需求,有些分部在网关上同时配置了IPSec和NAT。下面具体说明如何使得IPSec和NAT一起工作。

IPSec会禁止任何对数据包的修改,但是NAT处理过程是需要修改IP数据包的IP包头、端口号才能正常工作的。AH会认证整个包头,当NAT修改了IP头之后,IPSec就会认为这是对数据完整性的破坏,从而丢弃数据包。因此,AH是不可能与NAT一起工作的。

而ESP并不保护IP包头,所以,在NAT网络中,只能使用IPSec的ESP认证加密方法,不能用AH,不能修改受ESP保护的TCP/UDP,那就再加一个UDP报头。

1.NAT-T的操作步骤

(1)判断双方是否支持NAT-T,这是IKE协商的第一阶段,双方通过发送一个VENDOR ID来识别是否支持NAT-T。

(2)判断通信链路上是否存在NAT设备,使用IP地址和端口号进行HASH运算,送往对方进行校验。一旦发现NAT,在IKE协议的第二阶段将IKE的UDP 500浮动到UDP 4500端口。

(3)进行ESP处理。

如果发现存在NAT设备,NAT-T模块自动对IPSec数据包进行再次封装,封装时使用UDP包头和附加的NAT-T包头作为额外的地址信息。具体的UDP封装IPSec ESP报文过程如图5.16所示。

图5.16 UDP封装IPSec ESP报文过程

(4)报文传送。

完成NAT-T封装后的UDP数据包被正确路由到远端IPSec主机。

(5)报文解封装过程。

远端IPSec主机在收到NAT-T数据包后进行解包处理,首先将图5.16中的UDP头部去掉,重新计算IP头中的可变字段,再进行ESP解封装,并还原之后的IPSec数据包。

在预共享密钥身份确认体系中,使用名字作为身份标识,也能穿越NAT。该方式不需要搭建CA服务器,使用较广。

IPSec穿越NAT的数据封装如图5.17所示:

(1)发起方在协商报文中携带自己的WAN口IP地址信息10.35.2.1;

(2)发送方的协商报文经过NAT处理后,其源IP地址变成了202.2.2.20;

(3)响应方接收到协商报文后发现源地址202.2.2.20和协商报文中的IP地址信息10.35.2.1不一致,即判断中间经过了NAT设备,并告知发送方,双方要使用UDP封装。

根据NAT设备所处的位置和地址转换功能的不同,IPSec的NAT穿越方式也不同。

(1)情况一:NAT转换后的分公司公网地址未知,总公司使用模板方式,具体组网如图5.18所示。

图5.17 IPSec穿越NAT的数据封装

图5.18 情况一组网图

总公司既然使用了模板方式,那就无法主动访问分公司,只能由分公司主动向总公司发起访问。

总公司和分公司网关的关键配置如表5.6所示。

表5.6 情况一中总分公司网关的关键配置

(2)情况二:NAT转换后的分公司公网地址可知,总公司使用模板方式或IKE方式,具体组网图如图5.19所示。

图5.19 情况二组网图

总公司和分公司网关的关键配置如表5.7所示。

表5.7 情况二中总分公司网关的关键配置

(3)情况三:NAT设备提供NAT Server功能,总公司使用IKE方式主动访问分公司,具体组网图如图5.20所示。

图5.20 情况三组网图

在NAT设备上配置NAT Server,将202.2.2.20的UDP 500端口和4500端口分别映射到172.16.30.1的UDP 500端口和4500端口,具体配置如下:

nat server protocol udp global 202.2.2.20 500 inside 172.16.30.1 500

nat server protocol udp global 202.2.2.20 4500 inside 172.16.30.1 4500

报文到达NAT设备后,匹配反向Server-map表,源地址转换为202.2.2.20,即可实现分公司到总公司方向的访问。

下面通过一个实例详细说明IPSec的NAT穿越技术的配置过程和测试结果。具体的组网情况如下:

(1)分支机构和总部通过Eudemon_A、Eudemon_B、Eudemon_C相连,Eudemon_C为总部的内网设备;

(2)Eudemon_A、Eudemon_B、Eudemon_C之间路由可达;

(3)Eudemon_A具有固定的公网地址。

该企业网络需实现以下需求:

(1)分支机构要访问总部的服务器设备,且传输的数据需要进行加密。

(2)为保护内网设备,分支机构不能直接访问总部,需要进行地址转换后才能访问。

(3)在Eudemon A和Eudemon B之间建立一个安全隧道,在EudemonC上配置NAT功能,实现NAT与IPSec兼容,对PCA代表的子网(10.3.3.x)与PCB代表的子网(10.1.1.x)之间的数据流进行安全保护。具体要求如下:

①安全协议采用ESP协议;

②加密算法采用DES;

③验证算法采用SHA1-HMAC-96;

④10.35.3.0/24网段的用户可以访问公网。

Eudemon C配置NAT,该设备也可以是路由器。

只能采用IKE自动协商方式配置IPSec。

IPSec的NAT穿越配置案例的组网图如图5.21所示。

图5.21 IPSec的NAT穿越配置案例组网图

华为防火墙Eudemon500上配置IPSec的NAT穿越,需要进行如下操作。

步骤1 配置Eudemon A

[Eudemon A]ike local-name EudemonA

[Eudemon A-Ethernet3/0/0]ip address 10.35.3.1 255.255.255.0

[Eudemon A]firewall zone trust

[Eudemon A-zone-trust]add interface ethernet 3/0/0

[Eudemon A]interface ethernet 2/0/1

[Eudemon A-Ethernet3/0/1]ip address 10.35.2.1 255.255.255.0

[Eudemon A]firewall zone untrust

[Eudemon A-zone-untrust]add interface ethernet 3/0/1

1.配置静态路由

[Eudemon A]ip route-static 10.64.3.0 0 10.35.2.2

2.定义用于包过滤和加密的数据流(www.xing528.com)

[Eudemon A]acl number 3000

[Eudemon A-acl-adv-3000]rule permit ip source 10.35.3.0 0.0.0.255

[Eudemon A]acl number 3001

[Eudemon A-acl-adv-3001]rule permit ip destination 10.35.3.0 0.0.0.255

3.配置域间包过滤规则

[Eudemon A]firewall interzone trust untrust

[Eudemon A-interzone-trust-untrust]packet-filter 3000 outbound

[Eudemon A-interzone-trust-untrust]packet-filter 3001 inbound

4.配置缺省包过滤规则

保证Untrust区域的主机可以ping通防火墙的接口

[Eudemon A]firewall packet-filter default permit interzone local untrust

5.配置IPSec安全提议

[Eudemon A]ipsec proposal pro

[Eudemon A-ipsec-proposal-pro]transform esp

[Eudemon A-ipsec-proposal-pro]encapsulation-mode tunnel

(1)设置ESP协议采用的验证算法

对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。

[Eudemon A-ipsec-proposal-pro]esp authentication-algorithm sha1

(2)设置ESP协议采用的加密算法

DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法。

[Eudemon A-ipsec-proposal-pro]esp encryption-algorithm des

6.配置IKE Peer

[Eudemon A]ike peer p1

[Eudemon A-ike-peer-p1]exchange-mode aggressive

(1)配置与对端共享的pre-shared key

[Eudemon A-ike-peer-p1]pre-shared-key abcde

[Eudemon A-ike-peer-p1]remote-address 202.2.2.2

(2)配置IKE Peer的ID类型为名字认证

[Eudemon A-ike-peer-p1]local-id-type name

[Eudemon A-ike-peer-p1]remote-name EudemonC

(3)配置NAT穿越

[Eudemon A-ike-peer-p1]nat traversal

7.配置安全策略

[Eudemon A]ipsec policy map2 10 isakmp

[Eudemon A-ipsec-policy-isakmp-map2-10]security acl 3000

[Eudemon A-ipsec-policy-isakmp-map2-10]ike-peer p1

[Eudemon A-ipsec-policy-isakmp-map2-10]proposal pro

8.引用安全策略

[Eudemon A]interface ethernet 3/0/1

[Eudemon A-Ethernet3/0/1]ipsec policy map2

步骤2 配置Eudemon C

Eudemon C的基本配置与Eudemon A的配置思路相同,需要注意的是在配置对端地址时,需要配置为202.2.2.1。

步骤3 配置Eudemon B

1.完成Eudemon B基本配置

[Eudemon B]interface ethernet 4/0/0

[Eudemon B-Ethernet4/0/0]ip address 10.35.2.2 255.255.255.0

[Eudemon B]firewall zone trust

[Eudemon B-zone-trust]add interface ethernet 4/0/0

[Eudemon B]interface ethernet 4/0/1

[Eudemon B-Ethernet4/0/1]ip address 202.2.2.1 255.255.255.0

[Eudemon B]firewall zone untrust

[Eudemon B-zone-untrust]add interface ethernet 4/0/1

2.配置静态路由

[Eudemon B]ip route-static 10.35.3.0 255.255.255.0 10.35.2.1

[Eudemon B]ip route-static 10.64.3.0 255.255.255.0 202.2.2.2

3.定义用于包过滤的数据流

[Eudemon B]acl number 3000

[Eudemon B-acl-adv-3000]rule permit ip source 10.35.3.0 0.0.0.255

4.配置域间包过滤规则

[Eudemon C]firewall interzone trust untrust

[Eudemon C-interzone-trust-untrust]packet-filter 3000 outbound

5.配置NAT

[Eudemon C]nat address-group 1 202.2.2.20 202.2.2.20

[Eudemon C]firewall interzone trust untrust

[Eudemon C-interzone-trust-untrust]nat outbound 3000 address-group 1

配置完成后PC1可以ping通PC2。在总部网关Eudemon C上查看IKE SA的建立情况:

因为中间NAT设备上配置了源NAT转换,所以分支机构网关A上只有分支机构到总部方向的会话,没有总部到分支机构方向的会话。

总之,在实际组网应用中,如果发起者位于一个私网内部,而它希望在自己与远端响应者之间直接建立一条IPSec隧道,这种情况会对部署IPSec VPN网络造成障碍。这就需要IPSec与NAT进行结合。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈