iptables防火墙SNAT和DNAT
iptables防火墙SNAT和DNAT
- 一、SNAT原理和应用
- 1、SNAT原理
- 2、SNAT应用环境
- 3、SNAT转换前提条件
- 二、SNAT案列
- 1、实验需求
- 2、实验环境
- 3、实验目的
- 三、DNAT原理和应用
- 1、DNAT原理
- 2、DNAT 应用环境
- 3、DNAT转换的前提条件
- 四、DNAT案列
- 总结
一、SNAT原理和应用
1、SNAT原理
- SNAT原理:源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映射。
2、SNAT应用环境
- SNAT 应用环境:局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由)。
3、SNAT转换前提条件
- 局域网各主机已正确设置IP地址、子网掩码、默认网关地址,Linux网关开启IP路由转发。
临时开启
echo 1 >/proc/sys/net/ipv4/ip_forward 或 sysctl -w net.ipv4.ip forward=1
永久开启
vim /etc/ sysctl. conf
net. ipv4.ip_ forward = 1 #将此行写入配置文件
sysctl -P #读取修改后的配置
SNAT转换1:固定的公网IP地址
#配置SNAT策略,实现snat功能,将所有192.168.10.0这个网段的ip的源ip改为10.0.0.1
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens33 -j SNAT --to 10.0.0.1可换成单独IP 出站 外网网卡 外网IP
或
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens33 -j SNAT --to-source 10.0.0.1-10.0.0.10内网IP 出站 外网网卡 外网IP或地址池
SNAT转换2:非固定的公网IP地址(共享动态IP地址)
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens33 -j MASQUERADE
二、SNAT案列
1、实验需求
配置SNAT(源地址转换)能够实现外网客户端机器访问内网区域web服务。
2、实验环境
7-0 作为内网服务器 IP地址 192.168.10.130 网卡nat模式
7-1 作为网关服务器,添加网卡 仅主机模式
IP地址 内网192.168.10.132
外网ens37 12.0.0.254 网卡是仅主机模式
7-2 作为外网服务器 IP地址 ens33 仅主机模式 安装httpd服务
3、实验目的
通过SNAT技术去访问外网
1、在网关服务器需要添加一块网卡,并且是仅主机模式
2、进到网卡配置文件的位置,进行对新添加的网卡配置进行修改
[root@localhost ~]# cd /etc/sysconfig/network-scripts/ ##进入到配置网卡的文件目录下
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37 ##复制
[root@localhost network-scripts]# vi ifcfg-ens37 ##进入修改文件
[root@localhost network-scripts]# systemctl restart network ##重启网卡
[root@localhost network-scripts]# ip a ##查看
3、修改内网服务器的网关,完了查看是否改成功。
4、首先要修改外网服务器的网卡模式,需要装httpd服务,再修改网卡配置
[root@localhost ~]#setenforce 0 ##关闭核心防护
[root@localhost ~]#systemctl stop firewalld.service ##关闭防火墙
[root@localhost ~]#systemctl start httpd.service ##启动httpd服务
[root@localhost ~]#ping 12.0.0.254
5、网关服务器,需要开启路由转发功能
[root@localhost network-scripts]# vim /etc/sysctl.conf
[root@localhost network-scripts]# sysctl -p ##读取修改后的配置
net.ipv4.ip_forward = 1 ##永久开启ip路由转发
6、在内网服务器验证,如下图。
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens37 -j SNAT --to 12.0.0.254
-t nat 指定使用nat表
-A POSTROUTING 添加在数据流出链,原因为在输出时添加只需要添加一次。
-s 指定源ip
-o 指定输出网卡为ens37时
-j 指定跳转到SNAT处理
--to 指定SNAT nat为12.0.0.254这个地址
三、DNAT原理和应用
1、DNAT原理
DNAT原理:目的地址转换,根据指定条件修改数据包的目的IP地址,保证了内网服务器的安全,通常被叫做目的映射。
2、DNAT 应用环境
在Internet中发布位于局域网内的服务器。
3、DNAT转换的前提条件
局域网的服务器能够访问Internet
网关的外网地址有正确的DNS解析记录
Linux网关开启IP路由转发
四、DNAT案列
1、在SNAT的基础上做
2、在内网服务器上需要安装httpd服务
3、在网关服务器上配置DNAT规则
iptables -t nat -A PREROUTING -d 12.0.0.254 -i ens37 -p tcp --dport 80 -j DNAT --to 192.168.10.130
从ens37网卡进入的流量目的地址为12.0.0.254目的端口为80的tcp协议NAT处理为访问192.168.10.130
-t nat 指定使用nat表
-A PREROUINTG 添加在路由选择前数据进入链,在输入时直接判断。
-d 指定目的ip
-i 指定输出网卡为ens37时
-p 指定协议为tcp协议
--dport 指定目的端口为80
-j 指定跳转到DNAT处理
--to 指定DNAT nat到192.168.10.130这个地址
总结
文章主要描述了SNAT和DNAT的原理以及实验案例,SNAT是源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映射。DNAT是修改数据包的目的地址,通常被叫做目的映射。
相关文章:
iptables防火墙SNAT和DNAT
iptables防火墙SNAT和DNAT一、SNAT原理和应用1、SNAT原理2、SNAT应用环境3、SNAT转换前提条件二、SNAT案列1、实验需求2、实验环境3、实验目的三、DNAT原理和应用1、DNAT原理2、DNAT 应用环境3、DNAT转换的前提条件四、DNAT案列总结一、SNAT原理和应用 1、SNAT原理 SNAT原理:…...
python | 第二章考试题和练习题
一、考试题 1、turtle八边形绘制 问题描述: 使用turtle库,绘制一个八边形。 参考代码: import turtle as t t.pensize(2) for i in range(8):t.fd(100)t.left(45) 2、turtle八角图形绘制 问题描述: 使用turtle库,…...
Mysql 存储引擎设计:xa协议相关接口功能及实现
需要对接的接口以及每个接口的实现 recovery 阶段 此阶段由 xa.cc 文件中的 xarecover_handlerton() 函数完成,它通过三个接口实现与存储引擎的沟通:recover(),commit_by_xid() ,rollback_by_xid()。其流程如下: 此…...
字符串常量池
1.创建对象的思考下面两种创建字符串的方式一样吗?public static void main(String[] args) {//两者一样吗String s1 "hello";String s2 "hello";String s3 new String("hello");String s4 new String("hello");System…...
让技术更有温度,腾讯Light 点亮公益之光
蓝天白云,远处是广东最长跨海大桥——南澳大桥,一艘小船在海面驶过,近处一头中华白海豚露出水面。在第三届腾讯Light技术公益创造营上,海南智渔可持续发展研究中心科学总监郑锐强为我们展现这样一幅人与自然和平相处的美好画面。随…...
电子采购一体化解决方案
企事业数字化转型专家,提供各类应用解决方案。您身边的赋能小助手! 文章目录前言一、当下采购的痛点二、解决方案-供应商管理1.供应商管理三、解决方案-企业询价、供应商报价管理四、解决方案-采购订单五、送货、到货、订单管理总结前言 随着各类产业链…...
SAP COPA 获利能力分析深度解析
一、获利分析配置及相关值概述 二、配置:组织结构 2.1 定义经营范围-KEP8 2.2 维护经营关注点-KEA0 2.3 获利能力分析类型解析 2.4 控制范围分配给经营范围-KEKK 三、配置:数据结构-KEA0 3.1 特征字段 3.1.1 特征字段类别 3.1.2 维护特征字段-K…...
Java学习记录day6
书接上回 类与对象 static关键字 static的作用: 修饰一个属性:声明为static的变量实质上就是一个全局变量,其生命周期为从类被加载开始一直到程序结束;修饰方法:无须本类的对象也可以调用该方法;修饰一个类&#x…...
ubuntu 使用 adb 工具卸载鸿蒙系统预装软件
准备工作 打开 USB 调试 进入 “设置->关于手机” 连续点击版本号, 直到有提示开启了"开发人员选项" 进入 “设置->系统和更新->开发人员选项”, 打开 USB 调式, 顺便可以把"自动系统更新"关了 下载 adb 工具 官方地址: https://developer.an…...
Jmeter in Linux - 在Linux系统使用Jmeter的坑
Jmeter in Linux - 在Linux系统使用Jmeter的坑Jmeter in Linux系列目录:o.a.j.JMeter: Error in NonGUIDriver起因错误分析:解决方案:解析日志没有展示请求和响应信息起因解决方案:注意Jmeter in Linux系列目录: 【如…...
什么是特权访问管理(PAM)
特权访问管理 (PAM) 是指一组 IT 安全管理原则,可帮助企业隔离和管理特权访问、管理特权帐户和凭据、控制谁可以获得对哪些端点的管理访问权限级别,并监视用户对该访问权限执行的操作。 什么是特权访问 特权访问是一种 IT 系统访…...
LeetCode题目笔记——1.两数之和
文章目录题目描述题目难度——简单方法一:暴力代码/Python方法二:哈希表代码/Python代码/C总结题目描述 这道题可以说是力扣的入坑题了,很经典,好像还是面试的经典题。 给定一个整数数组 nums 和一个整数目标值 target,…...
CSDN版的详细MarkDown的使用教程
MarkDown的使用欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释…...
Nextcloud通过不被信任的域名访问解决方法 Nextcloud 您正在访问来自不信任域名的服务器
windows电脑在网页端输入“http://192.168.xxx.xxx:8080/login”访问远程ubuntu18.04服务器,访问其docker镜像的Nextcloud,提示“”Nextcloud通过不被信任的域名访问解决方法 Nextcloud 您正在访问来自不信任域名的服务器“”,如下图…...
Set集合的特点,HashSet去重的几个重要问题
Set集合的特点:无下标,无序(新增顺序和遍历顺序不一致,新增顺序不影响遍历顺序,而且有一个固定顺序),去重(不允许重复记录)public class TestOne {public static void main(String[] args) {// Set集合的特点ÿ…...
云计算|OpenStack|社区版OpenStack安装部署文档(十一--- 如何获取镜像---Rocky版)
前言: 前面我们使用虚拟机搭建了一个openstack集群,也就是在VM虚拟机的基础上模拟了一个简单的基于openstack社区版Rocky的私有云,但,不管任何部署安装工作,最后其实都是需要有实际的应用的,也就是常说的实…...
UmiJS学习
UmiJS4学习笔记起步官网学习:https://umijs.org/开发环境Umi.js 需要使用 Node.js来进行开发,因此请先确保电脑已经安装了 Node.js 且版本在 14 以上。安装pnpm:npm install pnpm -g创建项目Umi 官方提供了一个脚手架 ,可以轻松快…...
Leetcode:322. 零钱兑换(C++)
目录 问题描述: 实现代码与解析: 动态规划(完全背包): 原理思路: 问题描述: 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金…...
C经典小游戏之扫雷
编译环境:VS022 目录 1.算法思路 2.代码模块 2.1 game.h 2.2 game.cpp 2.3 test.cpp 3.重点分析 4.金句省身 1.算法思路 主要采用二维数组进行实现,设置两个二维数组,一个打印结果,即为游戏界面显示的效果,一个用…...
第十节 使用设备树插件实现RGB 灯驱动
Linux4.4 以后引入了动态设备树(Dynamic DeviceTree),我们这里翻译为“设备树插件”。设备树插件可以理解为主设备树的“补丁”它动态的加载到系统中,并被内核识别。例如我们要在系统中增加RGB 驱动,那么我们可以针对R…...
【LeetCode】公交路线 [H](宽度优先遍历)
815. 公交路线 - 力扣(LeetCode) 一、题目 给你一个数组 routes ,表示一系列公交线路,其中每个 routes[i] 表示一条公交线路,第 i 辆公交车将会在上面循环行驶。 例如,路线 routes[0] [1, 5, 7] 表示第 …...
报表生成器 FastReport .Net 用户指南 2023(十):Band的属性
FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastReport .Net支持中文、英语等14种语言,可以让你的产品保证真正的国际性。 FastReport.NET官方版…...
DAMA数据管理知识体系指南之文档和内容管理
第10章 文档和内容管理 10.1 简介 文档和内容管理是对存储在关系数据库以外的信息的采集、存储、访问以及使用的控制活动。文档和内容管理的侧重点在完整性和访问控制上。因此,它与关系数据库的数据操作管理大致相同。由于多数非结构化数据与存储在结构化文件中的…...
C++入门:数据结构
C/C 数组允许定义可存储相同类型数据项的变量,但是结构是 C 中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性&#x…...
C语言实现烟花表白,内含源码!!
虽然现在看烟花有一定难度,但代码式烟花可以随时随地看! 烟花的代码很多,实际上是可以用 Python、HTML5 等语言写烟花,但今天主要想和大家分享用C语言写的烟花代码,非常细致和实用。 同学们一定要亲自敲一遍…...
虚拟机安装CentOS 7(带界面)
目录 一、虚拟机安装CentOS 7(带界面) 1、打开下好的VMware,点击创建虚拟机 2、下一步 3、点击下一步 4、选择Linux,ContOS7,点击下一步 5、修改虚拟机名称和路径 6、下一步 7、点击自定义硬件 8、设置虚拟机大…...
Java测试——selenium具体操作
selenium的前置准备工作可以参考我之前的博客:Java测试——selenium的安装与使用教程 这篇博客讲解一下selenium的常见操作 先创建driver ChromeDriver driver new ChromeDriver();输入网址 driver.get("https://www.baidu.com");常见操作 查找元素…...
电子器件系列32:逻辑与门芯片74LS11
一、编码规则 先看看这个代码的意思:74LS11 74是一个系列(74 表示为工作温度范围,74: 0 ~ 70度。) ls的意思就是工艺类型(Bipolar(双极)工艺) 11是代码 什么是74系列逻辑芯片? - 知乎 什么是…...
LeetCode-101. 对称二叉树
目录题目分析递归法题目来源 101. 对称二叉树 题目分析 首先想清楚,判断对称二叉树要比较的是哪两个节点,要比较的可不是左右节点! 对于二叉树是否对称,要比较的是根节点的左子树与右子树是不是相互翻转的,理解这一…...
使用intlinprog求解指派问题MATLAB代码分享
% 输入指派矩阵C [3 8 2 10 3;8 7 2 9 7;6 4 2 7 5;8 4 2 3 5;9 10 6 9 10];f C(:); %生成一个列向量,作为目标函数系数,matlab默认以列排序[m,n] size(C);Aeq zeros(2*n,n*n); %2*n个等式约束,n*n个变量for i 1:n %这里先生成的是后5个…...
服装行业网站模板/性能优化工具
实训一 码云地址:https://gitee.com/SoridoD/java_shixun1 洪雨码云地址 选取题目:黄金点 需求:阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫“黄金点”的…...
网络科技公司网站建设策划/百度热搜榜排名今日p2p
Java技术栈www.javastack.cn关注阅读更多优质文章作者:稻草叔叔来源:juejin.im/post/6844903635533594632Git 是目前最流行的源代码管理工具。为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,现规范 …...
网站做统计分析/营销知识和技巧
js代码中: var a 1, b; b a; b 2; console.log(a); //结果是1 但是如果这样: var a [1, 2, 3], b; b a; b.pop(); console.log(a); //结果是[1, 2]; 为什么呢? 转载于:https://www.cnblogs.com/ljg-jj/p/4412971.html...
烽火台网站/企业百度推广怎么收费
linux 上tomcat 服务器抛出socket异常“文件打开太多”的问题 java.net.SocketException: Too many open files at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384) at java.net.ServerSocket.implAccep…...
昆山建设银行网站/东莞网络优化公司
目前为止,已经对 Vue 的基本用法有了初步了解。由于不想自己手动去开发组件(一方面嫌丑,另一方面感觉上手太慢),所以直接就开始学习第三方组件库的使用。根据之前的前端开发经验,猜想 Vue 框架肯定存在着很…...
网站的站外推广手段/如何进行市场推广
之前看过Makefile,只记住了一些基本语法,细节没掌握太多,上手基本写不出来。用时只能搬砖,导致很简单的脚本要画很长时间来磨。 1. 粘贴过来的脚本,注意其每行的空格, 尤其是输出时候看到很诡异的错误&…...