Linux系统之iptables应用SNAT与DNAT

一、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.rhkb.cn/news/260417.html

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

相关文章

Qt:自定义信号,信号emit,传参问题,信号槽与moc

一、自定义信号,信号emit 1、自定义信号 在头文件中 加入signals: 就可以编写信号 2、emit emit的作用是通知信号发生 二、跨UI控件传参 每次按Dialog添加按钮主控件数字会增长 // .h private slots:void on_btnAdd_clicked(); signals:void sign…

基于Springboot+Vue实现的宿舍管理系统

基于SpringbootVue的宿舍管理系统 1.系统相关性介绍1.1 系统架构1.2 设计思路 2.功能模块介绍2.1 用户信息模块2.2 宿舍管理模块2.3 信息管理模块 3. 源码获取以及远程部署 前言: 在现代教育环境中,学生宿舍的管理显得尤为重要,需要一套能…

OpenCV边缘检测与视频读写

原理 OpenCV中的边缘检测原理主要基于图像梯度的计算,包括一阶梯度和二阶梯度。 一阶梯度:它反映了图像亮度变化的速度。Sobel算法就是一种以一阶梯度为基础的边缘检测算法。它通过计算图像在水平和垂直方向上的梯度来检测边缘。这种方法简单有效&…

领域驱动设计(Domain Driven Design)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、场景和要求二、领域模型关键词1.领域2.子域3.通用语言4.限界上下文5.领域模型6.实体和值对象7.聚合根8.领域服务9.领域事件 总结 前言 Domain Driven Desi…

环信IM Android端实现华为推送详细步骤

首先我们要参照华为的官网去完成 ,以下两个配置都是华为文档为我们提供的 1.https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/android-config-agc-0000001050170137#section19884105518498 2.https://developer.huawei.com/consumer/cn/doc/HMSCore…

JAVA高并发——人手一支笔:ThreadLocal

文章目录 1、ThreadLocal的简单使用2、ThreadLocal的实现原理3、对性能有何帮助4、线程私有的随机数发生器ThreadLocalRandom4.1、反射的高效替代方案4.2、随机数种子4.3、探针Probe的作用 除了控制资源的访问,我们还可以通过增加资源来保证所有对象的线程安全。比如…

继续教育公需科目试题及答案,分享几个实用搜题和学习工具 #经验分享#经验分享

大学生活是一个充满挑战和机遇的阶段,在这个阶段,我们需要不断提升自己的学习能力和技巧。而寻找适合自己的学习工具也成为了我们必须面对的任务。幸运的是,现在有许多日常学习工具可以帮助我们更好地组织学习、提高效率。今天,我…

SQL Developer 小贴士:显示Trace文件

SQL Developer可以识别trace文件,而无需利用tkprof进行转换。 在数据库服务器上生产trace文件。例如: alter session set tracefile_identifierdemo01_02;alter session set sql_tracetrue;-- your SQL here, for example select * from hr.employees;a…

什么是渲染?渲染有几种类型?渲染100邀请码1a12

渲染是CG作业的最后一步,根据分类依据不同,有以下几个类型: 1、操作响应 根据对渲染结果的响应要求和实现原理不同,渲染可分为离线渲染、实时渲染和混合渲染。离线渲染通常在本地进行,由电脑生成画面,时间从…

TimeDad 简单的PC使用时间控制软件

TimeDad 起因 过年教家里的小朋友玩我的世界,这家伙着了魔,每天霸着电脑,说梦话都是挖矿。 找了time boss破解版用了一段时间,破解失效了。找了一圈软件发现功能都好复杂,要收费的,没办法,娃…

MySQL中SQL语句的执行流程(高频考点)

文章目录 前言SQL语句的执行流程查询语句的执行流程更新语句的执行流程 总结 前言 昨天跟大家讲了MySQL的基础架构(链接:MySQL的基础架构),今天讲一讲我们的高频面试题MySQL中SQL语句的执行流程。 建议看完 MySQL的基础架构 再来…

二维红外流程

x.1 开激光器 先将TDG,TCU,Empower打开,等一分钟后将TDG和Empower的钥匙打到On上; 按顺序先后开MaiTai;ACE;TOPAS;AOM; 测量ACE出光口处功率(3.8w)&#x…

红队打靶练习:IMF: 1

目录 信息收集 1、arp 2、nmap 3、nikto 目录探测 gobuster dirsearch WEB 信息收集 get flag1 get flag2 get flag3 SQL注入 漏洞探测 脱库 get flag4 文件上传 反弹shell 提权 get flag5 get flag6 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# a…

java+vue_springboot企业设备安全信息系统14jbc

企业防爆安全信息系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的java进行编写,使用了vue框架。该系统从三个对象:由管理员、人员和企业来对系统进行设计构建。主要功能包括:个人信息修改,对人员管理&am…

爬虫入门一

文章目录 一、什么是爬虫?二、爬虫基本流程三、requests模块介绍四、requests模块发送Get请求五、Get请求携带参数六、携带请求头七、发送post请求八、携带cookie方式一:放在请求头中方式二:放在cookie参数中 九、post请求携带参数十、模拟登…

C++11---(3)

目录 一、可变参数模板 1.1、可变参数模板的概念 1.2、可变参数模板的定义方式 1.3、如何获取可变参数 二、lambda表达式 2.1、Lamabda表达式定义 2.2、为什么有Lambda 2.3、Lambda表达式的用法 2.4、函数对象与lambda表达式 三、包装器 3.1、function 3.2、bind …

智慧公厕是什么?智慧公厕对智慧城市的意义

城市的信息化发展需要催化了智慧城市,公共厕所作为城市的重要民生设施,如何实现更高阶的信息化建设,成为一个重要课题。那么,智慧公厕是什么?为什么它对智慧城市的建设如此重要?本文以智慧公厕源头厂家广州…

前端新手Vue3+Vite+Ts+Pinia+Sass项目指北系列文章 —— 第十二章 常用工具函数 (Utils配置)

前言 在项目开发中,我们经常会使用一些工具函数,也经常会用到例如loadsh等工具库,但是这些工具库的体积往往比较大,如果项目本身已经引入了这些工具库,那么我们就没有必要再引入一次,所以我们需要自己封装…

如何利用Idea创建一个Servlet项目(新手向)

💕"Echo"💕 作者:Mylvzi 文章主要内容:如何利用Idea创建一个Servlet项目(新手向) Servlet是tomcat的api,利用Servlet进行webapp开发很方便,本文将介绍如何通过Idea创建一个Servlet项目(一共分为七步,这可能是我们写过的…

微软和OpenAI将检查AI聊天记录,以寻找恶意账户

据国外媒体报道,大型科技公司及其附属的网络安全、人工智能产品很可能会推出类似的安全研究,尽管这会引起用户极度地隐私担忧。大型语言模型被要求提供情报机构信息,并用于帮助修复脚本错误和开发代码以侵入系统,这将很可能会成为…