网络防火墙之DNAT

news/2024/11/15 14:04:47/文章来源:https://www.cnblogs.com/cnblogsfc/p/14183931.html

网络防火墙

NAT
NAT: network address translation
  PREROUTING,INPUT,OUTPUT,POSTROUTING
  请求报文:修改源/目标IP,由定义如何修改
  响应报文:修改源/目标IP,根据跟踪机制自动实现
DNAT:destination NAT PREROUTING , OUTPUT
  把本地网络中的主机上的某服务开放给外部网络访问(发布服务和端口映射),但隐藏真实IP
  请求报文:修改目标IP
PNAT: port nat,端口和IP都进行修改
 
准备:
firewall:开启ip_forward功能
  [root@firewall ~]#vim /etc/sysctl.conf
  net.ipv4.ip_forward = 1
  [root@firewall ~]#sysctl -p
  [root@firewall ~]#sysctl -a
 
 
场景:外网访问内外对外开放的服务(防火墙IP2应该是192.168.37.121)
 
可理解为反向代理,但DNAT只能实现端口一对一映射,无法代理多台后台映射,LVS调度器,NGINX方向代理等服务可实现1对多代理映射:
 
DNAT
  --to-destination [ipaddr[-ipaddr]][:port[-port]]
规范:iptables -t nat -A PREROUTING -d ExtIP -p tcp|udp --dport PORT -j DNAT --to-destination InterSeverIP[:PORT]
示例:
iptables -t nat -A PREROUTING -s 0/0 -d 192.168.37.121 -p tcp --dport 22 -j DNAT --to-destination 10.0.0.108
iptables -t nat -A PREROUTING -s 0/0 -d 192.168.37.121 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.108:80
示例:在nat表的PREROUTING添加策略
 1 [root@firewall-121 ~]# iptables -t nat -A PREROUTING -d 192.168.37.121 -p tcp --dport 80  -j DNAT --to-destination 10.0.0.108:80
 2 #/防火墙抓包/
 3 [root@firewall-121 ~]# tcpdump -i ens37 -nn host 192.168.37.122
 4 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 5 listening on ens37, link-type EN10MB (Ethernet), capture size 262144 bytes
 6 10:25:25.526290 IP 192.168.37.122.40280 > 192.168.37.121.80: Flags [S], seq 1591772444, win 29200, options [mss 1460,sackOK,TS val 4906758 ecr 0,nop,wscale 7], length 0
 7 10:25:25.526493 IP 192.168.37.121.80 > 192.168.37.122.40280: Flags [S.], seq 392735740, ack 1591772445, win 28960, options [mss 1460,sackOK,TS val 7596254 ecr 4906758,nop,wscale 7], length 0
 8 #/模拟内网,抓包/
 9 [root@CentOS7-108 ~]# tcpdump -i ens33 -nn host 192.168.37.122
10 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
11 listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
12 10:25:24.974946 IP 192.168.37.122.40280 > 10.0.0.108.80: Flags [S], seq 1591772444, win 29200, options [mss 1460,sackOK,TS val 4906758 ecr 0,nop,wscale 7], length 0
13 10:25:24.974982 IP 10.0.0.108.80 > 192.168.37.122.40280: Flags [S.], seq 392735740, ack 1591772445, win 28960, options [mss 1460,sackOK,TS val 7596254 ecr 4906758,nop,wscale 7], length 0
View Code

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows 10 on ARM, version 22H2 (updated Aug 2024) ARM64 AArch64 中文版、英文版下载

Windows 10 on ARM, version 22H2 (updated Aug 2024) ARM64 AArch64 中文版、英文版下载Windows 10 on ARM, version 22H2 (updated Aug 2024) ARM64 AArch64 中文版、英文版下载 基于 ARM 的 Windows 10 请访问原文链接:https://sysin.org/blog/windows-10-arm/,查看最新版…

Linux监控性能调优分析-perf(上)

1 简介 Linux perf一个轻量级命令行工具,用于剖析和监控Linux系统的CPU性能。该工具虽然简单,却能提供有助于分析CPU的丰富信息。该命令包含许多用于收集、跟踪和分析CPU事件数据的子命令。1.1 安装perf perf程序并没有预装在Linux系统中 # Ubuntu/Debian $ sudo apt install…

基于Ubuntu部署企业级kubernetes集群---k8s集群容部署

1.下载用于Kubernetes软件包仓库的公共签名秘钥#如果 `/etc/apt/keyrings` 目录不存在,则应在 curl 命令之前创建它。 sudo mkdir -p -m 755 /etc/apt/keyrings curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrin…

什么是算法?一切皆算法

如果有人问我什么算法?我就一句话:算法就是对一类问题的最优求解路径。如果有人问我什么算法?我就一句话:算法就是对一类问题的最优求解路径。 1、计算机领域的算法概念 算法一直都是计算机领域非常重要的概念,具备极高的地位,各个公司对算法的考察也非常热衷。 我们只有…

Adobe After Effects 2024 v24.6 (macOS, Windows) - 后期特效

Adobe After Effects 2024 v24.6 (macOS, Windows) - 后期特效Adobe After Effects 2024 v24.6 (macOS, Windows) - 后期特效 Acrobat、After Effects、Animate、Audition、Bridge、Character Animator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、Lightroom C…

在SimpleRAG中使用SiliconCloud快速测试Function Calling

Funcion Calling介绍 函数调用允许您将模型如gpt-4o与外部工具和系统连接起来。这对于许多事情都很有用,比如为AI助手赋能,或者在你的应用程序与模型之间建立深度集成。 如果您了解或者使用过Semantic Kernel可能会发现除了OpenAI支持Function Calling的模型之外,自动函数调…

Semantic Kernel/C#:一种通用的Function Calling方法,文末附经测试可用的大模型

Funcion Calling介绍 函数调用允许您将模型如gpt-4o与外部工具和系统连接起来。这对于许多事情都很有用,比如为AI助手赋能,或者在你的应用程序与模型之间建立深度集成。 如果您了解或者使用过Semantic Kernel可能会发现除了OpenAI支持Function Calling的模型之外,自动函数调…

折腾 Quickwit,Rust 编写的分布式搜索引擎 - 可观测性之日志管理

Quickwit 从底层构建,旨在 高效地索引非结构化数据,并在云存储上轻松搜索这些数据。 此外,Quickwit 开箱即支持 OpenTelemetry gRPC 和 HTTP(仅 protobuf)协议,并提供了一个 REST API,可以接收任何 JSON 格式的日志。 这让 Quickwit 成为了日志的理想选择!.https://qui…

读软件开发安全之道:概念、设计与实施12不受信任的输入

读软件开发安全之道:概念、设计与实施12不受信任的输入1. 不受信任的输入 1.1. 不受信任的输入可能是编写安全代码的开发人员最关心的问题1.1.1. 最好将其理解为输入系统中的所有不受信任的输入1.1.2. 来自受信任的代码的输入可以提供格式正确的数据1.2. 不受信任的输入是指那…

第12篇 window上验证mysql是否安装成功

1.命令提示符cmd窗口验证 1.1 键盘win+R打开命令提示符,输入cmd。 1.2 在电脑中找到安装好的MySQL的bin文件目录 。这是我的安装目录C:\Program Files\MySQL\MySQL Server 5.7\bin。1.3 在命令提示符中输入cd C:\Program Files\MySQL\MySQL Server 5.7\bin,再输入mysql -h loc…

南沙csp-j/s陈老师解题:1050:骑车与走路

​【题目描述】在清华校园里,没有自行车,上课办事会很不方便。但实际上。并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米…

第11篇 MySql8.0 安装配置教程细讲

话不多说直接开干在安装之前, 先确定一下, 电脑上之前有没有安装MySQL ?或者看看有没有这个路径如果有, 请搜索网上的教程 1,停止服务 2,删除注册表 3,删除安装目录和data目录(如果有data目录的话) 弄完最好再重启系统 如果有删除残留可能导致后面安装出现问题 再开始阅读本教…