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

防火墙中的SNAT 与DNAT

SNAT:让内网机器可以访问外网服务器

DNAT:让外网机器可以访问内网服务器

SNAT的原理

 源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映射

数据包从内网发送到公网时,SNAT会把数据包的源IP由私网IP转换成公网IP
当响应的数据包从公网发送到内网时,会把数据包的目的IP由公网IP转换为私网IP

 切记:私网地址永远不会出现在公网地址上

 

 SNAT转换前提条件

局域网各主机已正确设置IP地址、子网掩码、默认网关地址
Linux网关开启IP路由转发
linxu系统本身是没有转发功能 只有路由发送数据

 

效果图: 

 

 

模拟实验:7-1 表示网关

                 7-2表示内网服务器

                7-3表示外网服务器

 第一步,所有机器关闭防火墙,核心防护

 7-1网关配置

第一步,先添加网卡,因为有两个网卡 一个外网,一个内网

 ens36为外网网卡 ens33为内网网卡,vens33跟ens36都是网关 切换到网卡配置中,修改ens36网卡的配置内容

 随后,重启network服务,查看ens36虚拟网卡

 然后修改ens33 ,因为为网关,所以ip跟网关都设置成一样的

 

随后,开启路由转发的功能

 

配置文件的内容:

 

 7-2内网服务器配置

 

因为内网服务器跟网关连接,所以7-2的网关要设置成7-1内网的ip地址

随后,重启网关服务,查看网关

随后给网页写个内容

 

7-3外网服务器配置

 

 随后,重启 ,因为是不同网段,所以断开连接了 去虚拟机上面操作

随后,给外网页面写点东西

进入xshell,用7-2 内网去curl 7-3外网

可以看见互通,使用虚拟机做实验默认是互通的,在生产环境中内网跟外网没有SNAT是没办法互通的

随后,再进入虚拟机,查看外网的日志 可以看出有7-2内网服务器的ip地址

 

然后进入7-1网关服务器上,修改iptables的转换规则

ptables -t nat -A POSTROUTING -s 192.168.68.0/24 -o ens36 -j SNAT --to 12.0.0.1

验证,在xshell用内网去访问外网服务器,然后再去虚拟机上面查看日志

方法二:未知公网地址 MASQUERADE 伪装 当不知道公网地址的时候,可以使用此项

验证一下,在内网服务器去curl公网服务器

然后在虚拟机查看日志

 

 DNAT

DNAT应用环境:

在Internet中发布位于局域网内的服务器

②DNAT原理:

目的地址转换,根据指定条件修改数据包的目的IP地址,保证了内网服务器的安全,通常被叫做目的映射。

③DNAT转换前提条件:

DNAT转换前提条件:
1.局域网的服务器能够访问Internet
2.网关的外网地址有正确的DNS解析记录                                                                                           3. Linux网关开启IP路由转发

 实验:外网主机访问网关服务器地址,通过DNAT实现访问内网服务器

配置网卡跟ip地址的路由跟上面步骤是一样的

要在7-1网关服务器上面设置iptables的转换规则

iptables -t nat -A PREROUTING -i ens36 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.68.4

随后,在虚拟机上面的外网服务器去curl一下12.0.0.1,curl12.0.0.1出现的是内网服务器的网页内容,表明去连外网网关,就等于访问内网服务器

 

然后查看内网的日志,DNAT改变的是目的地址,所以访问的ip地址不会改变

 

 

iptables -t nat  -A PREROUTING -i ens36 -d 12.0.0.254 -p tcp --dport 80 -j DNAT --to  192.168.68.4
iptables -t nat:指定操作在NAT表上
-A PREROUTING:在PREROUTING链中追加一条新规则。数据包在进入本机并进行路由                                     决策之前,PREROUTING链上的规则会被执行
-i ens36:仅针对从名为ens36的网络接口进入的数据包应用此规则。
-d 12.0.0.254:匹配目标IP地址为12.0.0.254的数据包
-p tcp --dport 80:进一步限定仅当数据包是TCP协议且目标端口号为80时才进行转换
-j DNAT:执行DNAT动作,即改变数据包的目标IP地址
--to  192.168.68.4:将满足上述条件的数据包的目标IP地址更改为此特定IP地址(192.168.68.4)
#总结起来,这条规则的效果是:所有发往公网IP地址12.0.0.254且目标端口为80的TCP数据包,在到达本地主机并准备转发到内部网络之前,其目标IP地址都会被转换成192.168.68.4。这通常用于对外发布服务,使得外部用户可以通过公网IP访问位于私有网络内的服务器提供的服务。

相关文章:

  • 网络流量监控软件AnaTraf:优化性能、排除故障的最佳选择
  • 每日leetcode--接雨水
  • PyTorch之完整的神经网络模型训练
  • 算法模版总结
  • 蓝桥杯[OJ 3412]-最小化战斗力差距-CPP-贪心
  • 大语言模型(LLM) RAG概念
  • 面试题:限流的算法有哪些?
  • php8连接mysql
  • pytest生成allure的报告
  • Rust 安装与版本更新
  • 探索Linux世界:基本指令(文件查看、时间相关、grep、打包压缩及相关知识)
  • Dynamic Wallpaper v17.4 mac版 动态视频壁纸 兼容 M1/M2
  • 20240312-2-贪心算法
  • .net6Api后台+uniapp导出Excel
  • MySQL--索引优化实战篇(4)
  • 警院复试C程序设计学习笔记 第九章——用户建立自己的数据类型
  • 比特币普通地址、隔离见证(兼容)、隔离见证(原生)、Taproot 地址傻傻分不清楚
  • JVM和JVM内存管理
  • Excel 快速填充/输入内容
  • IPD(集成产品开发)—核心思想
  • 《审判》|“被告”的魅力:K在等什么?
  • 《新时代的中国国家安全》白皮书(全文)
  • 第12届警博会在即:一批便民利企装备亮相,规模创历史新高
  • 俄总统新闻秘书:普京提议谈判表明俄寻求和平解决方案意愿
  • 招商蛇口:今年前4个月销售额约498.34亿元
  • 烈士沈绍藩遗孤、革命家帅孟奇养女舒炜逝世,享年96岁