Linux系统之iptables应用SNAT与DNAT

news/发布时间2024/5/15 14:16:20

一、SNAT:

1.应用环境

局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由)

2.SNAT原理

  • 源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映谢
  • 数据包从内网发送到公网时,SNAT会把数据包的源IP由私网IP转换成公网IP
  • 当响应的数据包从公网发送到内网时,会把数据包的目的IP由公网IP转换为私网IP

3.SNAT转换前提条件

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

 4.开启SNAT:

1.临时打开:

echo 1 >/proc/sys/net/ipv4/ip_forward
或
sysctl -w net.ipv4.ip forward=1

2.永久打开

vim /etc/ sysctl. conf
net. ipv4.ip_ forward = 1				#将此行写入配置文件sysctl -P			                	#读取修改后的配置

5.SNAT的转换:

1.固定的公网IP地址

#配置SNAT策略,实现snat功能,将所有192.168.37.0这个网段的ip的源ip改为10.0.0.1iptables -t nat -A POSTROUTING -s 192.168.37.0/24 -o ens33 -j SNAT --to 10.0.0.1可换成单独IP   出站外网网卡            外网IPiptables -t nat -A POSTROUTING -s 192.168.37.0/24 -o ens33 -j SNAT --to-source 10.0.0.1-10.0.0.10内网IP   出站外网网卡                    外网IP或地址池

2.非固定的公网IP地址(共享动态IP地址)

iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j MASQUERADEiptables -t nat -A POSTROUTING -s 12.0.0.0/24 -d 192.168.100.0/24 -j MASQUERADE一个IP地址做SNAT转换,一般可以让内网 100到200 台主机实现上网

6.SNAT实验:

运用SNAT策略将局域网中的客户机IP封装为网关服务器的外网IP,访问web服务器的http服务

 

添加网卡

cd /etc/sysconfig/network-scripts/  切换绝对路径

cp ifcfg-ens33 ifcfg-ens36  复制模板

配置网卡ens36

重启网卡检验

vim /etc/sysctl.conf

0——》1开启路由转发功能

配置生效

配置防火墙策略: 

[root@localhost network-scripts]#iptables -t nat -A POSTROUTING -s 192.168.91.0/24 -o ens36 -j SNAT --to 12.0.0.1#在出口的地方加  指定 POSTROUTING #指定源网段 192.168.91.0/24#出口网卡  ens36#将内网地址通过ens36网口,都转为12.0.0.1的外网地址

配置策略: 

 

配置

 

测试: 

 

内网访问外网 

源内网地址转为源外网地址

二.DNAT:

1.DNAT定义:

DNAT 将私网中web服务器映射到公网IP,使其公网IP作为目标地址被公网中主机进行访问

2.DNAT原理

  • 目标地址转换
  • 修改数据包的目标地址

3.DNAT转换前提条件

  • 局域网的服务器能够访问Internet
  • 网关的外网地址有正确的DNS解析记录
  • Linux网关开启IP路由转发
vim /etc/sysctl.conf 
net.ipv4.ip_forward = 1 
sysct1 -p

4.DNAT源地址转换过程:

  • 数据包从外网发送到内网时,DNAT会把数据包的目标地址由公网IP转换成私网IP。
  • 当相应的数据包从内网发送到公网时,会把数据包的源地址由私网IP转换为公网IP。

5.实验:

 通过DNAT将web服务器的提供的httpd服务映射到网关服务器ens36网卡,且端口为80上面

DNAT 防火墙策略: 

[root@localhost network-scripts]#iptables -t nat -A PREROUTING -i ens36 -d 12.0.0.1 -p tcp --dport 80  -j DNAT --to 192.168.91.4#把从ens36进来的要访问web服务的数据包目的地址转换为192.168.91.4#指定目的地址为网关服务器的ens36外网网卡的IP地址,将web服务器的私网地址映射到网关服务器的外网IP
#指定目的端口为html:80  这里可以修改映射为其它端口,加强安全性

内网开启httpd服务:

测试:

三.SNAT和DNAT的区别

从定义上讲,SNAT是原地址转换,DNAT是目标地址转换。区分这两个功能可以简单的由服务的发起者是谁来区分,内部地址要访问公网上的服务时,内部地址会主动发起连接,将内部地址转换成公有ip。

 

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

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

相关文章

一个服务器实现本机服务互联网化

欢迎来到我的博客,代码的世界里,每一行都是一个故事 一个服务器实现本机服务互联网化 前言痛点关于中微子代理实战演练搭建服务端搭建客户端服务端配置代理实现 前言 在数字世界的网络战场上,中微子代理就像是一支潜伏在黑暗中的数字特工队&…

el-input输入框输入不进去值

el-input输入框输不进去值,在其他输入框操作会造成输入框乱码情况 原因:双向绑定没有给定初始值 解决办法:data中定义输入框双向绑定默认值,默认空值/undefined都行

ubuntu 22.04.3 live server安装JDK21与远程编程环境和maven

ubuntu 22.04.3 live server安装JDK21与远程编程环境 一、安装jdk21 解压jdk压缩包,命令: tar -zxvf jdk-21_linux-x64_bin.tar.gz打开环境变量,命令: sudo vim /etc/profile配置环境变量 export JAVA_HOME/root/jdk-21.0.2 …

数据结构-邻接链表

介绍 邻接矩阵是运用较多的一种储存图的方法,但如果一张网图边数较少,就会出现二维矩阵中大部分数据为0的情况,浪费储存空间 为了避免空间浪费,也可以采用数组与链表结合的方式来存储图 假设有这样一张图 我们可以先用一个数组…

ConnectionRefusedError: [Errno 10061] Connect call failed (‘127.0.0.1‘, 6379)

错误描述 在websocket通信时,报错ConnectionRefusedError: [Errno 10061] Connect call failed (127.0.0.1, 6379) 原因分析 是因为利用django-channels实现websocket通讯时,设置了redis服务器,但是运行时没有启动redis服务器 解决方法 …

基于情感分析的网上图书推荐系统

项目:基于情感分析的网上图书推荐系统 摘 要 基于网络爬虫的数据可视化服务系统是一种能自动从网络上收集信息的工具,可根据用户的需求定向采集特定数据信息的工具,本项目通过研究爬取网上商品评论信息实现商品评论的情感分析系统功能。对于…

【Go语言】Go语言中的变量和常量

Go语言中的变量和常量 1 变量 变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间。 Go 语言是强类型静态语言,所以变量的声明与赋值方式与 PHP/Python 等动…

掌上新闻随心播控,HarmonyOS SDK助力新浪新闻打造精致易用的资讯服务新体验

原生智能是HarmonyOS NEXT的核心亮点之一,依托HarmonyOS SDK丰富全面的开放能力,开发者只需通过几行代码,即可快速实现AI功能。新浪新闻作为鸿蒙原生应用开发的先行者之一,从有声资讯入手,将基于Speech Kit朗读控件上线…

【漏洞复现-通达OA】通达OA get_file.php 任意文件下载漏洞

一、漏洞简介 通达OA get_file.php文件存在任意文件下载漏洞,攻击者通过漏洞可以读取服务器敏感文件。 二、影响版本 ● 通达OA2011 三、资产测绘 ● hunterapp.name"通达 OA" ● 特征 四、漏洞复现 GET /module/AIP/get_file.php?MODULE/&A…

新增长100人研讨会:快消零售专场探讨招商加盟数字化转型实战

2024年2月2日下午,一场由纷享销客与杨国福集团联合主办的招商加盟数字化转型研讨会在上海成功举办。本次研讨会汇聚了众多快消零售业界的领军人物,共同探讨行业未来的新增长点。 会议伊始,杨国福集团数字化中心负责人王林林发表了主题演讲&a…

Redis(十四)双写一致性工程案例

文章目录 问题概述canal功能安装部署mysql配置canal服务端canal客户端(Java程序) 问题概述 canal https://github.com/alibaba/canal 功能 数据库镜像数据库实时备份索引构建和实时维护(拆分异构索引、倒排索引等)业务 cache 刷新带业务逻辑的增量数据…

互联网加竞赛 大数据商城人流数据分析与可视化 - python 大数据分析

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于大数据的基站数据分析与可视化 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度…

Maven的初步认识

Maven 1,Maven 简介 Maven是Apache软件基金会的一个开源项目,是一个优秀的项目构建工具,他用来帮助开发者管理项目中的jar包以及jar之间的依赖关系,完成项目的编译,测试,打包发布等工作. Maven中的概念 pom(Project Object Model 项目对象模型) maven 管理项目的根目录下 都…

解决ubuntu登录密码问题

解决ubuntu登录密码问题 不要随便删除密码,不要随便改密码,很容导致密码过期,或者密码无效。参考了很多人的做法,都没有得到解决。下面的过程,够详细了,我就是这么搞好的。 1、重启虚拟机,不停…

[游戏开发][虚幻5]新建项目注意事项

鼠标右键点击Client.uproject文件,可以看到三个比较关键的选项, 启动游戏,生成sln解决方案,切换引擎版本 断点调试 C代码重要步骤 如果你想断点调试C代码,则必须使用使用代码编译启动引擎,你需要做几个操作…

护眼大路灯哪个牌子好?专家推荐榜单助你挑选最适合的大路灯!

在光环境不良的情况下,长期的近距离看书和使用电子设备确实是容易导致视力下降,而视力问题的出现给孩子的学习生活带来了很大的不便。因此,选择一款好用的大路灯能够帮助孩子减少用眼伤害,但面对现在市场上的众多大路灯品牌&#…

SQL-Labs靶场“11-15”关通关教程

君衍. 一、十一关 基于POST单引号字符型注入1、源码分析2、联合查询注入3、报错注入 二、十二关 基于POST双引号字符型注入1、源码分析2、联合查询注入3、报错注入 三、十三关 基于POST单引号报错注入变形1、源码分析2、报错注入 四、十四关 基于POST双引号报错注入1、源码分析…

Docker Compose详解

Docker Compose详解 1.概述2.安装3.基本使用4.命令说明5.Compose 模板文件6.使用Docker快速安装wordpress 1.概述 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排 使用一个 Dockerfile 模板文件,可以让用户很方便的定义一…

MySQL数据库

MySQL数据库 一、MySQL数据库入门 1.初识数据库 ​ 数据库(DataBase,DB)是一个存在于计算机存储设备上的数据集合,它可以简单地理解为一种存储数据地仓库。数据库能够长期、高效地管理和存储数据,其主要目的是能够存储&#xf…

Web服务器基础

Web服务器基础 【一】前端概述 【1】HTML HTML(超文本标记语言)是用于创建网页结构的标记语言。它定义了网页的骨架,包括标题、段落、列表、链接等元素,但没有样式。可以将HTML视为网页的结构和内容的描述。 【2】CSS css&…
推荐文章