当前位置: 首页 > news >正文

NAT穿越

概述

  • IPSec协商是通过IKE完成--->ISAKMP协议完成--->UDP封装,源目端口均为500
    • NAT--->NAPT,同时转换IP和端口信息。
    • 对端设备会查验收到的数据报文中的源IP和源端口,其中源IP可以设定为NAT转换后的IP,但是源端口无法更改设定。
    • 不进行端口转换,可以在FW1上使用模板方式
  • 数据流量的传递过程
    • AH协议 --- 校验范围是这个IP层及以上的内容进行HASH校验。
      • 数据报文在进行NAT转换后,最外层的IP层信息发生了改变,而接收方在进行AH协议的完整性校验时,信息对不上,HASH数值被改变----AH报文是无法通过NAT网关
    • ESP协议 --- 进行校验是不包含外层IP信息的。
      • NAT一般会修改IP和端口,而ESP协议会加密传输层信息,导致无法修改端口 --- 同时转换端口的NATESP也不支持
        
        需要在防火墙上开启NAT-T技术 (NAT 穿越功能 ) ESP 报文在封装时,会被封装到 UDP 报文中,并且 源目端口均为 4500。

NAT穿越场景

  • NAT转换后的公网地址未知;使用模板方式
    • 缺陷,总部无法主动连接连接。
  • NAT转换后公网地址可知;总部使用模板或IKE方式。
    • 使用IKE方式也无法主动与分部建立连接。--->因为总部只能写公网地址,不能写私网地址,否则数据无法传输。
    • 如果要实现总部主动与分部建立连接,那么需要在分部的NAT设备上配置NAT Server功能。将私网的VPN服务器地址映射到公网。
  • NAT设备提供了NAT Server功能,总部使用IKE方式主动访问。
    • 在使用端口映射时,需要同时映射IKE协议的UDP500端口,以及NAT-T协议下的UDP 4500口。
    • 并且,如果NAT设备使用的是防火墙,则会产生反向server-map表单。
    • 故分部也可以直接向总部发起访问。

分析:
1 、不能使用 AH 协议
2 、总部作为响应方使用模板方式建立 --- 不需要配置 ACL 规则
3 、分支部署 NAT 后,导致数据报文源 IP 发生变化,因此在采用预共享密钥认证方式下,不能再以 IP 地址来标识设备身份,需要更换身份标识。
4 、如果使用 IKEv1 ,只能采用野蛮模式。

 

1 、基础配置
        
        
        
2 NAT 网关配置 ---esay-ip
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 10.1.2.0 0.0.0.255
[r2]int g 0/0/0
[r2-GigabitEthernet0/0/0]nat outbound 2000
        
        
        
3 、在 FW2 上配置 ACL ,总部上直接通过镜像方式复制
[FW2]acl 3000
[FW2-acl-adv-3000]rule permit ip source 10.1.1.0 0.0.0.255 destination 192.168.1.0        0.0.0.255
        只需要在分部上进行流量抓取,总部直接镜像
        
        
        
4 、配置 IKE 安全提议、 IKE 对等体和 IPSec 安全提议
        
        ------------IKE对等体配置
[FW1]ike local-name fw1 --- 设定本地名称为 fw1
[FW1]ike peer fw2
[FW1-ike-peer-fw2]undo version 2
[FW1-ike-peer-fw2]exchange-mode aggressive --- 选择野蛮模式,因为主模式必须使用 IP 地址
[FW1-ike-peer-fw2]ike-proposal 1
[FW1-ike-peer-fw2]pre-shared-key Test!123
[FW1-ike-peer-fw2]local-id-type fqdn --- 配置对等体 ID 的类型为名称
[FW1-ike-peer-fw2]remote-id fw2 --- 设定对端的身份 ID
[FW1-ike-peer-fw2]nat traversal --- 开启 NAT-T 功能
        FW1作为总部,不需要指定对端的 IP 地址,因为采用的是模板方式
[FW2]ike local-name fw2
[FW2]ike peer fw1
[FW2-ike-peer-fw1]undo version 2
[FW2-ike-peer-fw1]exchange-mode aggressive
[FW2-ike-peer-fw1]ike-proposal 1
[FW2-ike-peer-fw1]pre-shared-key Test!123
[FW2-ike-peer-fw1]local-id-type fqdn --- 配置对等体 ID 的类型为名称
[FW2-ike-peer-fw1]remote-id fw2 --- 设定对端的身份 ID
[FW2-ike-peer-fw1]nat traversal --- 开启 NAT-T 功能
[FW2-ike-peer-fw1]remote-address 11.0.0.1
        分支必须具备对端IP 地址,否则无法找到向谁发送数据报文
        
        
5 IPsec 策略
        
        
6 、安全策略
唯一的变化:如果需要携带协议字段,则需要开放 ESP 协议和 UDP 500 端口,如果存在 NAT 穿越,还需要
开启 UDP 4500 端口。

 

        UDP头部中的端口号为 4500 ,而 IP 头部封装的源 IP 不再是用户 IP 地址,而是 FW2 的出接口 IP 地址。 因为 FW2 上进行了 IPSec 过程。 --- 即,进行 NAT 转换时,抓取的流量应该是 FW2 的出接口地址
        remote-address 命令包含如下含义:
  • 建立IPSec SAIKE SA的对端地址。
  • 用来做身份验证
  • 用来查找预共享密钥

IPSec + GRE VPN

        IPSec将 GRE 隧道和 L2TP 隧道视为受保护的对象。数据报文是先进行 GRE L2TP 封装后,在进行 IPSec 封装

 

        在传输模式中,IPSec 隧道的源目地址就是 GRE 协议封装的地址信息
        在隧道模式中,封装后的消息,存在三个报文头部的:原始头部、GRE 头部、 IPSec 头部。而在Internet上传输时,查看的是最外层的 IPSec 报文头部信息来转发。

IPSec + L2TP VPN

LACLNS之间直接建立隧道

安全策略:
  • L2TP策略
    • LAC上,local--->untrust
    • LNS上,untrust--->local
  • IPSec策略
    • localuntrust
  • 用户流量策略
    • 分部访问总部
      • LAC--->因为分支流量会被直接封装在L2TP中,不需要额外策略,因为VT接口不参与数据转发
      • LNS--->因为总部收到流量后,会在VT接口解封装L2TP协议,还原流量
        • VT--->Trust
    • 总部访问分部
      • LAC--->不需要额外编写安全策略
      • LNS--->流量需要先来到VT接口进行L2TP封装,所以Trust---VT接口。

移动用户通过L2TP over IPsec接入

移动用户通过L2TP over IPsec接入

安全策略:
  • IPSec流量
    • U--L;必须放通4500端口
  • L2TP流量
    • U---L;放通l2tp协议,目的地址为VT接口地址。
  • 用户流量
    • 假设VT接口在DMZ区域
    • DMZTrust区域的流量。

http://www.xdnf.cn/news/351505.html

相关文章:

  • 力扣-24.两两交换链表中的结点
  • SpringBoot默认并发处理(Tomcat)、项目限流详解
  • 【列表类型】
  • Spring Boot + MyBatis-Plus 高并发读写分离实战
  • 人工智能 机器学习期末考试题
  • Android RxJava框架分析:它的执行流程是如何的?它的线程是如何切换的?如何自定义RxJava操作符?
  • 内存安全革命:工具、AI 与政策驱动的 C 语言转型之路
  • 安全核查基线-3.用户umask设置策略
  • 数字IC前端学习笔记:锁存器的综合
  • Vue3 + Element Plus 动态表单实现
  • 对PyTorch模块进行性能分析
  • 一种海杂波背景下前视海面目标角超分辨成像方法——论文阅读
  • 【Python 元组】
  • Docker容器启动失败?无法启动?
  • 一些模型测试中的BUG和可能解决方法
  • linux系统管理
  • Java+Selenium+快代理实现高效爬虫
  • 通用外设驱动模型(四步法)
  • 探索大型语言模型的 LLM 安全风险和 OWASP 十大漏洞
  • (x ^ 2 + 2y − 1) ^ 3 − x ^ 2 * y ^ 3 = 1
  • React Native 前瞻式重大更新 Skia WebGPU ThreeJS,未来可期
  • AI客服问答自动生成文章(基于deepseek实现)
  • JAVA简单例题+抽象+继承
  • openssl中BIO的使用
  • PostgreSQL创建只读账号
  • 数据中台建设系列(五):SQL2API驱动的数据共享与服务化实践
  • 游戏引擎学习第266天:添加顶部时钟概览视图。
  • TensorFlow深度学习实战(15)——编码器-解码器架构
  • 可视化图解算法36: 序列化二叉树-I(二叉树序列化与反序列化)
  • 用 Java 实现 哲学家就餐问题