防火墙中的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.1:匹配目标IP地址为12.0.0.1的数据包
-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.1且目标端口为80的TCP数据包,在到达本地主机并准备转发到内部网络之前,其目标IP地址都会被转换成192.168.68.4。这通常用于对外发布服务,使得外部用户可以通过公网IP访问位于私有网络内的服务器提供的服务。

相关推荐

  1. Linux ----防火墙SNATDNAT

    2024-03-14 05:42:10       33 阅读
  2. Linux防火墙————Firewalld

    2024-03-14 05:42:10       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 05:42:10       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 05:42:10       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 05:42:10       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 05:42:10       20 阅读

热门阅读

  1. 安卓基础面试题

    2024-03-14 05:42:10       18 阅读
  2. OpenCV-图像基础处理

    2024-03-14 05:42:10       20 阅读
  3. JUNIT5+Mockito单元测试

    2024-03-14 05:42:10       21 阅读
  4. LeetCode_27_简单_移除元素

    2024-03-14 05:42:10       18 阅读
  5. 【Educoder数据挖掘实训】相似度与相异度

    2024-03-14 05:42:10       16 阅读
  6. 在阿里云上配置开放端口的详细教程

    2024-03-14 05:42:10       22 阅读
  7. 基于qt和css的MP3音乐播放器引擎开发

    2024-03-14 05:42:10       18 阅读
  8. 分布式ID(8):分布式ID生成方法

    2024-03-14 05:42:10       24 阅读
  9. .NET中使用Redis大全

    2024-03-14 05:42:10       21 阅读
  10. volatile关键字用处和场景?

    2024-03-14 05:42:10       20 阅读
  11. 17 OpenCv Canny算子

    2024-03-14 05:42:10       17 阅读
  12. HiveQL详解

    2024-03-14 05:42:10       18 阅读
  13. 视频测试示例

    2024-03-14 05:42:10       14 阅读
  14. 什么是池架构?

    2024-03-14 05:42:10       17 阅读