华为防火墙总部与分支机构建立IPsec VPN涉及NAT穿越

news2024/9/21 18:57:28

一、IPsec VPN基本概念

1、隧道建立方式:分为手动建立和IKE自动协商,手动建立需要人为配置指定所有IPsec建立的所有参数信息,不支持为动态地址的发起方,实际网络中很少应用;IKE协议是基于密钥管理协议ISAKMP框架设计而来,建立IKE SA 对等体后,双方通过IKE SA交互数据加密的秘钥信息,并协商建立IPsec SA,数据在IPsec SA上进行加密传输。

2、传输模式和隧道模式:两种方式表现为对报文的封装方式差异。
        隧道模式是在原报文的基础上新封装一个IP头部,对原报文所有信息进行认证和加密,主要在跨公网场景中使用该模式,由于需要新增IP头部,使得报文更大,相对而言传输效率较低,但安全性相对较高。


        传输模式不改变原报文的IP头部信息,对数据报文中IP头部后的内容进行认证和加密封装,主要在内网传输中使用该模式,由于不改变IP头信息使得报文更小,传输效率更高,但安全性相对较低。

3、IKE建立SA分为两种模式,主模式和野蛮模式,主模式包含三次双向交换,用到了六条信息,野蛮模式只用到三条信息。

与主模式相比,野蛮模式减少了交换信息的数目,提高了协商的速度,但是没有对身份信息进行加密保护。虽然野蛮模式不提供身份保护,但它可以满足某些特定的网络环境需求。

  • 如果发起方的IP地址不固定或者无法预知,而双方都希望采用预共享密钥验证方法来创建IKE SA,则推荐采用野蛮模式。
  • 如果发起方已知响应方的策略,或者对响应者的策略有全面的了解,采用野蛮模式能够更快地创建IKE SA。

4、IPsec VPN、NAT、路由条目之间的关系:
        当流量到达设备上后,先按照路由条目指导流量下送到相对应的出接口(注意华为设备与其他厂商设备转发逻辑有差异,无需通过路由条目区分流量,例如山石、华三等厂商需要将流量通过路由指定到具体的隧道出口,只有当华为设备通过tunnel接口建立IPsec VPN隧道时,才需要使用路由将流量指向对应的tunnel隧道地址),出接口下既存在NAT策略也存在IPsec策略时,优先进行NAT感兴趣流匹配,NAT匹配不上再进行IPsec感兴趣流匹配。所以当源NAT和IPsec VPN的数据感兴趣流冲突时,数据流量会被优先NAT,此时会导致选定的流量无法进入IPsec VPN隧道进行转发。

5、NAT穿越是指在两台建立IPsec VPN的设备之间存在NAT设备,双方在开始建立隧道前通过ISAKMP探测报文感知到NAT设备,于是在外层新增的IP头后插入UDP4500的报文头,配置方面还需要在NAT设备上配置目的NAT将UDP4500的流量引入到内网建立IPsec VPN的设备上,NAT设备对该报文的外层IP头和增加的UDP报头进行地址和端口号转换(UDP500和UDP4500都需要做映射,未进行NAT穿越的IKE报文为UDP500端口,如果不进行UDP500映射双方第一个IKE报文无法正常交互);转换后的报文到达IPSec隧道对端后,与普通IPSec报文处理方式相同。

6、IPsec VPN的发起端和响应端:在实际组网中,一般总部为响应端,分部为主动发起端,在华为设备中主动端需要配置remove ip 地址,通过ISAKMP创建IKE动态协商方式安全策略;响应端无需配置remove ip地址,通过策略模板创建IKE动态协商方式安全策略。在IPSec隧道的两端,协商发起方采用ISAKMP策略配置安全策略,协商响应方采用策略模板方式配置安全策略。

7、remove id何时应用:在一方为动态地址的场景中可以应用remove id,由于地址会周期变化,于是通过id的方式来确认身份,动态地址方需要配置local id,固定地址方配置remove id,两端的id信息需要相同。在NAT穿越的场景中也使用该方式认证身份,位于NAT设备后的IPsec VPN设备配置local id,对端配置remove id。

8、AH和ESP安全协议,AH仅具有认证功能,ESP具有认证和加密功能,AH认证的范围为整个报文,ESP为IP头后面的内容,如果为隧道模式则为新IP头后面的内容,可以使用AH+ESP安全协议,设备会先对报文进行ESP封装,再进行AH封装;IPSec解封装时,设备先对报文进行AH解封装,再进行ESP解封装。仅ESP支持NAT穿越场景,主要是UDP4500头的插入,AH会导致NAT设备无法识别UDP头。

二、NAT穿越实验拓扑

        互联地址配置方面为从左下到右下依次配置,左下设备优先配置地址,如FW3与FW1互联地址配置上,FW3为10.0.0.1/30,FW1为10.0.0.2/30,FW1、R2、FW3配置OSPF跑通底层路由,总部子网的网关配置在FW3的G1/0/2子接口下,分部子网的网关配置在FW2的G1/0/2子接口下,网关地址都为 1.254,所有FW缺省策略为允许。

三、实验配置

FW1上配置:

ip service-set ipsec type object                         //配置服务组
 service 0 protocol udp destination-port 500
 service 1 protocol udp destination-port 4500


nat-policy                                             //配置目的NAT策略,将IPsec的UDP端口映射出去
 rule name nat2 
  destination-address 221.0.0.1 mask 255.255.255.255
  service ipsec
  action destination-nat static address-to-address address 10.0.0.1


 rule name nat                          //配置源NAT,使建立隧道的源地址具有访问对端隧道公网地址能力
  source-address 10.0.0.0 mask 255.255.255.252
  action source-nat easy-ip


ip route-static 0.0.0.0 0.0.0.0 221.0.0.2                          //配置出访路由
ip route-static 192.168.1.0 255.255.255.0 10.0.0.1        //配置内网子网回包路由

FW2上配置:

acl number 3000                            //配置IPsec感兴趣流
 rule 5 permit ip source 192.168.1.0 0.0.0.255 destination 172.16.1.0 0.0.0.255

ipsec proposal to_FW2                                     //IPsec提案
 esp authentication-algorithm md5
 esp encryption-algorithm 3des
#

ike proposal 1                                            //IKE提案
 encryption-algorithm aes-256
 dh group14
 authentication-algorithm sha2-256
 authentication-method pre-share
 integrity-algorithm hmac-sha2-256
 prf hmac-sha2-256
#

ike peer to_FW2                                        //配置IKE 对等体
 undo version 2
 pre-shared-key 555
 ike-proposal 1                                         //绑定ike提案
 local-id 10.0.0.1                                      //配置本端的id
#

ipsec policy-template A 10                    //配置为IPsec模板,作为响应端
 security acl 3000
 ike-peer to_FW2
 proposal to_FW2
#

ipsec policy to_FW2 10 isakmp template A        //将模板绑定到isakmp下

ip route-static 0.0.0.0 0.0.0.0 10.0.0.2               //配置出访路由

interface GigabitEthernet1/0/2.200                   //配置内网网关信息
 vlan-type dot1q 200
 ip address 192.168.1.254 255.255.255.0

FW3上配置:

acl number 3000
 rule 5 permit ip source 172.16.1.0 0.0.0.255 destination 192.168.1.0 0.0.0.255
 

ipsec proposal to_FW3
 esp authentication-algorithm md5
 esp encryption-algorithm 3des
#

ike proposal 1
 encryption-algorithm aes-256
 dh group14
 authentication-algorithm sha2-256
 authentication-method pre-share
 integrity-algorithm hmac-sha2-256
 prf hmac-sha2-256
#

ike peer to_FW3
 undo version 2
 pre-shared-key 555
 ike-proposal 1
 remote-id-type ip                              //指定id认证的对端的Id类型为ip模式
 remote-id 10.0.0.1                           //配置对端id与FW3的local id一致
 remote-address 221.0.0.1               //配置对端IP地址,本端作为发起端
#

ipsec policy to_FW3 10 isakmp         //配置isakmp模式,作为IPsec建立发起端
 security acl 3000
 ike-peer to_FW3
 proposal to_FW3
#

ip route-static 0.0.0.0 0.0.0.0 221.0.0.5     //出访路由

interface GigabitEthernet1/0/2.100            //配置内网子网网关信息
 vlan-type dot1q 100
 ip address 172.16.1.254 255.255.255.0

四、抓包验证:

1、NAT穿越协商报文

在FW2的G1/0/3口抓包:

1、开始进行NAT-T探测报文交互,注意此时UDP端口为500

2、互相收到探测报文后,进行哈希算法(对建立IPsec VPN的本端地址+端口号进行哈希得出一个值,对端地址+端口号进行哈希得出一个值),确定那台设备在NAT设备后:

通过哈希字段发现两端对221.0.0.6的FW2进行哈希后的值两端一致(FW2哈希的为221.0.0.1+UDP4500、221.0.0.6+UDP4500;FW3哈希的为221.0.0.6+UDP4500、10.0.0.1+UDP4500),导致两端对FW3的哈希值不同,由此判断出FW3在NAT设备之后。

3、查看第五个报文已更换为UDP4500端口进行IKE交互

4、ike主模式下通过6个报文建立了IKE SA,接下来通过IKE SA建立IPsec SA,使用快速模式,IPsec SA的建立仅只有快速模式一种。

5、此时ike sa和IPsec sa都建立完毕,处于NAT设备后的设备开始周期发送NAT-T的保活报文,避免NAT设备端丢失NAT表项,通过NAT-T保活报文周期进行NAT表项刷新。

2、IKE SA和IPsec SA查看

在FW2上查看信息,SA都是单向建立的,需要两条SA才能一去一回。IKE中Flag上的ST表示本端为发起端

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1938984.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux系统设置开机启动的两种方法systemd及rc.local(手工写sh脚本,手工写service服务)

文章目录 知识点实验一、systemd(一)自写一个sh脚本并加入开机启动(二)源码安装的nginx加入开机启动 rc.local 知识点 在Linux系统中,有多种方法可以设置开机启动。以下是其中的一些主要方法: systemd 在较…

本地部署 mistralai/Mistral-Nemo-Instruct-2407

本地部署 mistralai/Mistral-Nemo-Instruct-2407 1. 创建虚拟环境2. 安装 fschat3. 安装 transformers4. 安装 flash-attn5. 安装 pytorch6. 启动 controller7. 启动 mistralai/Mistral-Nemo-Instruct-24078. 启动 api9. 访问 mistralai/Mistral-Nemo-Instruct-2407 1. 创建虚拟…

[图解]《分析模式》漫谈16-“我用的”不能变成“我的”

1 00:00:00,720 --> 00:00:02,160 今天,我们来说一下 2 00:00:02,170 --> 00:00:04,850 “我用的”不能变成“我的” 3 00:00:04,860 --> 00:00:11,390 《分析模式》的前言 4 00:00:12,260 --> 00:00:13,410 有这么一句话 5 00:00:14,840 --> 0…

postman接口测试实战篇

击杀小游戏接口测试 接口测试简单介绍击杀小游戏代码下载单接口测试(postman)接口关联并参数化接口测试简单介绍 首先思考两个问题:1.接口是什么?2.接口测试是什么? 1.我们总是把接口想的很复杂,其实呢,它就是一个有特定输入和输出参数的交互逻辑处理单元,它不需要知…

学并发编程前需要明确的一些基础知识

线程和进程的区别 在计算机科学中,线程和进程是两个非常重要的概念。虽然它们常常被一起提到,但它们实际上有很大的不同。作为一个开发者,我在日常工作中经常需要区分这两者,以便更好地进行资源管理和优化。 进程与线程的基本定…

如何解决微服务下引起的 分布式事务问题

一、什么是分布式事务? 虽然叫分布式事务,但不是一定是分布式部署的服务之间才会产生分布式事务。不是在同一个服务或同一个数据库架构下,产生的事务,也就是分布式事务。 跨数据源的分布式事务 跨服务的分布式事务 二、解决方…

华为机试HJ60查找组成一个偶数最接近的两个素数

华为机试HJ60查找组成一个偶数最接近的两个素数 题目: 想法: 构建一个判断是否为素数的函数,再构建一个函数输出构成输入数值相差最小的两个素数。为了保证两个素数相差最小,从输入数值的二分之一处开始判断,遍历得到…

用Python写一个视频采集脚本,对某网站进行批量采集

最近某牙上又出现一批高质量视频&#xff0c;听说删的很快&#xff0c;还好我会Python&#xff0c;赶紧采集下来保存&#xff01; 准备工作 环境使用 Python 3.10 解释器 Pycharm 编辑器 模块使用 requests >>> 数据请求模块 re <正则表达式模块> os <文…

HW行动在即,邮件系统该怎么防守?

1. 什么是HW行动&#xff1f; HW行动是一项由公安部牵头&#xff0c;旨在评估企事业单位网络安全防护能力的活动&#xff0c;是国家应对网络安全问题所做的重要布局之一。 具体实践中&#xff0c;公安部组织攻防红、蓝两队&#xff08;红队为攻击队&#xff0c;主要由“国家队…

【漏洞复现】Netgear WN604 downloadFile.php 信息泄露漏洞(CVE-2024-6646)

0x01 产品简介 NETGEAR WN604是一款由NETGEAR&#xff08;网件&#xff09;公司生产的无线接入器&#xff08;或无线路由器&#xff09;提供Wi-Fi保护协议&#xff08;WPA2-PSK, WPA-PSK&#xff09;&#xff0c;以及有线等效加密&#xff08;WEP&#xff09;64位、128位和152…

面向初学者和专家的 40 大机器学习问答(2024 年更新)

面向初学者和专家的 40 大机器学习问答(2024 年更新) 一、介绍 机器学习是人工智能的重要组成部分,目前是数据科学中最受欢迎的技能之一。如果你是一名数据科学家,你需要擅长 python、SQL 和机器学习——没有两种方法。作为 DataFest 2017 的一部分,我们组织了各种技能测…

正则表达式(Ⅰ)——基本匹配

学习练习建议 正则表达式用途非常广泛&#xff0c;各种语言中都能见到它的身影&#xff08;js&#xff0c;java&#xff0c;mysql等&#xff09; 正则表达式可以快读校验/生成/替换符合要求的模式的字符串&#xff0c;而且语法通俗易懂&#xff0c;所以应用广泛 学习链接&am…

php随机海量高清壁纸系统源码,数据采集于网络,使用很方便

2022 多个分类随机海量高清壁纸系统源码&#xff0c;核心文件就两个&#xff0c;php文件负责采集&#xff0c;html负责显示&#xff0c;很简单。做流量工具还是不错的。 非第三方接口&#xff0c;图片数据采集壁纸多多官方所有数据&#xff01; 大家拿去自行研究哈&#xff0…

WEB前端09-前端服务器搭建(Node.js/nvm/npm)

前端服务器的搭建 在本文中&#xff0c;我们将介绍如何安装和配置 nvm&#xff08;Node Version Manager&#xff09;以方便切换不同版本的 Node.js&#xff0c;以及如何设置 npm&#xff08;Node Package Manager&#xff09;使用国内镜像&#xff0c;并搭建一个简单的前端服…

Merge-On-Read

基本介绍 Iceberg的Merge-On-Read Merge-On-Read&#xff0c;顾名思义&#xff0c;就是在读取的时候进行合并&#xff0c;是与Copy-On-Write相反的一种模式 在Iceberg中&#xff0c;Merge-On-Read同样用于行级更新&#xff0c;整体过程如下 当更新数据时&#xff0c;Iceber…

巴黎奥运会倒计时 一个非常不错的倒计时提醒

巴黎奥运会还有几天就要开幕了&#xff0c;大家应该到处都可以看到巴黎奥运会的倒计时&#xff0c;不管是电视上&#xff0c;还是网络里&#xff0c;一搜索奥运会&#xff0c;就会看到。倒计时其实是一个我们在生活中很常用的一个方法&#xff0c;用来做事情的提醒&#xff0c;…

【学习笔记】无人机系统(UAS)的连接、识别和跟踪(九)-无人机区域地面探测与避让(DAA)

引言 3GPP TS 23.256 技术规范&#xff0c;主要定义了3GPP系统对无人机&#xff08;UAV&#xff09;的连接性、身份识别、跟踪及A2X&#xff08;Aircraft-to-Everything&#xff09;服务的支持。 3GPP TS 23.256 技术规范&#xff1a; 【免费】3GPPTS23.256技术报告-无人机系…

【CSS in Depth 2 精译_020】3.3 元素的高度

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09; 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位&#xff08;已完结&#xff09; 2.1 相对…

Linux:Linux进程概念

目录 前言 1. 冯诺依曼体系结构 2. 操作系统 2.1 什么是操作系统 3. 进程 3.1 基本概念 3.2 描述进程——PCB 3.3 进程和程序的区别 3.4 task_struct-PCB的一种 3.5 task_struct的内容分类 4. 查看进程 4.1 通过系统文件查看进程 4.2 通过ps指令查看进程 4.3 …

Redis7(二)Redis持久化双雄

持久化之RDB RDB的持久化方式是在指定时间间隔&#xff0c;执行数据集的时间点快照。也就是在指定的时间间隔将内存中的数据集快照写入磁盘&#xff0c;也就是Snapshot内存快照&#xff0c;它恢复时再将硬盘快照文件直接读回到内存里面。 RDB保存的是dump.rdb文件。 自动触发…