Linux防火墙-nat表

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们经过上小章节讲了Linux的部分进阶命令,我们接下来一章节来讲讲Linux防火墙。由于目前以云服务器为主,而云服务器基本上就不会使用系统自带的防火墙,而是使用安全组来代替了防火墙的功能,可以简单理解安全组就是web版的防火墙,我们主要从以下几个方面来讲解Linux防火墙:

Linux防火墙-什么是防火墙

Linux防火墙-4表5链

Linux防火墙-filter表

Linux防火墙-nat表(本章节)

Linux防火墙-常用命令

Linux防火墙-案例(一)

Linux防火墙-案例(二)

Linux防火墙-小结

上一小节,我们介绍了filter表,主要功能就是作为服务器入口,主要功能就是限制或者屏蔽服务器的端口,确保服务器的安全,今天就来介绍下nat表,实际上nat表和我们家庭的路由器有相似的功能。

nat

NAT (Network Address Translation) 表在 iptables 中用于实现网络地址转换的功能。NAT 表允许您修改 IP 数据包中的源地址或目的地址,这对于私有网络与公共互联网之间的通信非常有用。NAT 表通常用于以下几种场景:

一、关联链及作用位置

NAT 表包含三个主要链:PREROUTING:处理所有进入接口的数据包,在它们被路由之前。POSTROUTING:处理所有离开接口的数据包,在它们被路由之后。OUTPUT:处理由本地系统生成的数据包。

  • PREROUTING 链:在数据包进入路由决策之前对其进行操作。主要用于 DNAT(目的网络地址转换),比如将外部网络发往特定公网 IP 和端口的数据包转换到内部服务器的私有 IP 和端口。例如,当有外部请求访问公司的网站服务器时,可在该链将公网 IP 对应端口的请求转发到内部的 Web 服务器的私有 IP 和端口。

  • POSTROUTING 链:在数据包经过路由决策准备离开本机时进行操作。主要用于 SNAT(源网络地址转换),通常用于让内网主机能够使用一个公网 IP 访问外部网络。比如将内网多个设备的私有 IP 地址转换为路由器的公网 IP 地址进行通信。

  • OUTPUT 链:用于处理本机产生的数据包。也可以用于一些特殊的 NAT 场景,例如本机作为一个代理服务器时,对本机发出的数据包进行地址转换操作。但相对前两个链,在 NAT 场景中使用频率稍低一些。

二、规则设置及示例

1.基本语法

SNAT
iptables -t nat -A POSTROUTING -s 源地址范围 -o 输出网卡接口 --to-source 转换后的源地址

假设要将内网 192.168.1.0/24 网段的所有流量的源地址转换为路由器的公网 IP 1.2.3.4,命令如下:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 1.2.3.4
DNAT
iptables -t nat -A PREROUTING -d 公网 IP 及端口 -j DNAT --to-destination 内部服务器私有 IP 及端口

如果要将外部访问公网 IP 的 8080 端口的流量转发到内网 IP 为 10.0.0.2 的 80 端口,命令如下:

 iptables -t nat -A PREROUTING -d 公网 IP -p tcp --dport 8080 -j DNAT --to-destination 10.0.0.2:80

-t nat  添加到nat表,如果不输入则是默认filter表

三、重要性及应用场景

  • 内网访问互联网:企业内部通常拥有大量的计算机、服务器和其他网络设备,这些设备一般使用私有 IP 地址范围(如 192.168.x.x、10.x.x.x 等)。通过在企业的网络出口设备(如路由器、防火墙等)上配置 NAT,将内部设备的私有 IP 地址转换为企业的公网 IP 地址,实现内部设备访问互联网上的各种资源。

  • 服务器对外发布:当企业内部有服务器需要对外提供服务时,如 Web 服务器、邮件服务器等,可以使用 NAT 的 DNAT(Destination Network Address Translation,目的网络地址转换)功能。将外部网络对企业公网 IP 特定端口的访问请求,转发到内部服务器的私有 IP 和相应端口上,使得外部用户能够访问到企业内部的服务器。

总结

1.家庭路由器实际上就是sant最典型的代表,dnat是由于运营商限制,没有对普通用户开放。

2.snat如下,服务器B就可以当成路由器,前提是服务器A需要把网关设置成服务器B。

图片

3.dnat如下,实际访问服务器A的端口,如果命中dnat规则最终请求会转发到服务器B。

图片

4.以上规则都是范例,并不能真实实现snat和dnat,仅仅是方便了解对应的原理。后面的案例部分会对他进行演示。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

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

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

相关文章

android kotlin Extension扩展函数

1、新建一个kt文件&#xff1a; 2、代码&#xff1a; class User(var name:String)/**扩展函数**/ fun User.Print(){print("用户名 $name") }// 扩展函数 swap,调换不同位置的值 fun MutableList<Int>.swap(index1: Int, index2: Int) {val tmp this[index1…

组合逻辑元件与时序逻辑元件

组合逻辑元件和时序逻辑元件都是数字电路中的基本构建块&#xff0c;但它们在功能和结构上存在显著差异。 1. 组合逻辑元件: 内容: 组合逻辑元件的输出仅取决于当前的输入&#xff0c;而与之前的输入无关。 它们没有记忆功能。 常见的组合逻辑元件包括&#xff1a; 与门 (AND…

Java_TestNg

TestNg 前言支持特性 使用步骤1.引入库 常用注解Test注解BeforeSuite AfterSuiteAfterClass BeforeClassAfterTest BeforeTestAfterGroups BeforeGroupsBeforeMethod AfterMethodDataProviderFactoryListenersPatameters断言相等 不相等true/falsenull / !nullequals / !equals…

【C++篇】启航——初识C++(上篇)

目录 引言 一、C的起源和发展史 1.起源 2.C版本更新 二、C在⼯作领域中的应⽤ 三、C入门建议 1.参考文档 2.推荐书籍 四、C的第一个程序 1.C语言写法 2.C写法 五、命名空间 1.为什么要有命名空间 2.定义命名空间 3.主要特点 4.使用示例 六、C输⼊&输出 …

系统架构师-面向服务架构(SOA)全解

1、为什么需要SOA架构 1.1 系统集成问题 异构系统整合 例如&#xff0c;一个企业可能同时拥有用 Java 开发的企业资源规划&#xff08;ERP&#xff09;系统、用 C# 开发的客户关系管理&#xff08;CRM&#xff09;系统以及用 Python 开发的数据分析系统。通过 SOA&#xff0…

Transformers 中的 Softmax 可以并行加速么?

Transformers 中的 Softmax 可以并行加速么&#xff1f; 面试题 Softmax 如何并行&#xff1f; Softmax 计算公式 安全的 Softmax 运算 Softmax函数在深度学习中广泛应用于多分类问题的输出层&#xff0c;它通过指数化和归一化将一个实数向量转换为概率分布。然而&#xff…

基于springboot vue 大学生竞赛管理系统设计与实现

博主介绍&#xff1a;专注于Java vue .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用 感兴趣的…

YoloV10改进策略:BackBone改进|PoolFormer赋能YoloV10,视觉检测性能显著提升的创新尝试

摘要 在深度学习的广阔领域中,目标检测作为计算机视觉的基石任务之一,始终吸引着研究者的广泛关注。近期,我们大胆尝试将前沿的PoolFormer主干网络引入经典的目标检测框架YoloV10中,这一创新性融合不仅为YoloV10注入了新的活力,更在检测精度与效率上实现了双重飞跃,成为…

【Linux学习】【Ubuntu入门】2-1 Linux系统下运行C语言输出hello word

1.双击打开VMware软件&#xff0c;点击开启此虚拟机后&#xff0c;等待点击头像输入密码进入 2.“CtrlAltt”调出命令行终端&#xff0c;输入命令sudo apt-get install vim安装vim&#xff0c;输入命令sudo apt-get install gcc安装gcc 3.输入命令vi hello.c进入C语言编写环境&…

Web端云剪辑解决方案,提供多轨视频、音频、特效、字幕轨道可视化编辑

传统视频剪辑软件的繁琐安装、高昂硬件要求以及跨平台协作的局限性&#xff0c;让无数创意者望而却步。美摄科技作为云端视频编辑技术的领航者&#xff0c;携其革命性的Web端云剪辑解决方案&#xff0c;正重新定义视频创作的边界&#xff0c;让专业级视频剪辑触手可及&#xff…

【Linux】Docker下载与使用-nginx

目录 一、Docker介绍 二、Docker结构 三、下载Daocker 1. 在linux上下载docker&#xff0c;执行以下命令即可&#xff1a; 2. 开启docker 3. 执行以下操作并进行使用 四、在Docker上安装nginx 一、Docker介绍 Docker&#xff1a;是给予Go语言实现的开源项…

深入探讨 Docker:远程登录与镜像管理

深入探讨 Docker&#xff1a;远程登录与镜像管理 走一路&#xff0c;寻索一路。每有胡杨树&#xff0c;我必仔细浏览&#xff0c;驻足长久&#xff0c;如急于兑现一个久远的梦。而更多平常的日子如同荒原本身一样朴实无华&#xff0c;如同岁月一样不露形色&#xff0c;只守着一…

统信服务器操作系统【SSH登录常见问题】解决方案

方案适用于统信服务器操作系统D/E/A版。 文章目录 前言问题及解决方案问题一问题现象问题原因问题方案问题二问题现象问题原因问题方案问题三问题原因问题方案问题四问题现象问题原因问题方案问题五问题现象问题原因问题方案问题六问题现象问题原因问题方案前言 介绍日常使用s…

SPI驱动学习七(SPI_Slave_Mode驱动程序框架)

目录 一、SPI_Slave_Mode驱动程序框架1. Master和Slave模式差别1.1 主设备 (Master)1.2 从设备 (Slave)1.3 示例 2. SPI传输概述2.1 数据组织方式2.2 SPI控制器数据结构 3. SPI Slave Mode数据传输过程4. 如何编写程序4.1 设备树4.2 内核相关4.3 简单的示例代码4.3.1 master和s…

Jenkins本地安装配置与远程访问管理本地服务详细流程

文章目录 前言1. 安装Jenkins2. 局域网访问Jenkins3. 安装 cpolar内网穿透软件4. 配置Jenkins公网访问地址5. 公网远程访问Jenkins6. 固定公网地址 前言 本文主要介绍如何在Linux CentOS 7中安装Jenkins并结合cpolar内网穿透工具实现远程访问管理本地部署的Jenkins服务. Jenk…

活动报名| 探索存内计算的未来,共话AGI时代

活动日期&#xff1a;2024年09月28日 下午1&#xff1a;00-6&#xff1a;00 活动地点&#xff1a;杭州技术转移中心 三楼路演厅 议程亮点&#xff1a; 存内计算技术架构以及最新趋势AGI开源项目交流存内计算实操上板体验 存内计算 ——突破物理极限的下一代算力技术 直接…

kubernetes存储入门(kubernetes)

实验环境依旧是三个节点拉取镜像&#xff0c;然后在master节点拉取资源清单&#xff1a; 然后同步会话&#xff0c;导入镜像&#xff1b; 存储入门 ConfigMap volume卷--》volumemount&#xff08;挂载卷&#xff09; Glusterfs NFS ISCSI HostPath ConfigMap Secret E…

玄机--蚁剑流量

木马的连接密码是多少 黑客执行的第一个命令是什么 id 黑客读取了哪个文件的内容&#xff0c;提交文件绝对路径 /etc/passwd 黑客上传了什么文件到服务器&#xff0c;提交文件名 黑客上传的文件内容是什么 黑客下载了哪个文件&#xff0c;提交文件绝对路径 蚁剑流量特征总结 …

基于SpringBoot+Vue+MySQL的在线酷听音乐系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着互联网技术的飞速发展&#xff0c;网络已成为人们日常生活中不可或缺的一部分。在线音乐服务因其便捷性和丰富性&#xff0c;逐渐成为用户获取音乐内容的主要渠道。然而&#xff0c;传统的音乐播放平台往往存在歌曲资源有限…

SpringCloud 2023各依赖版本选择、核心功能与组件、创建项目(注意事项、依赖)

目录 1. 各依赖版本选择2. 核心功能与组件3. 创建项目3.1 注意事项3.2 依赖 1. 各依赖版本选择 SpringCloud: 2023.0.1SpringBoot: 3.2.4。参考Spring Cloud Train Reference Documentation选择版本 SpringCloud Alibaba: 2023.0.1.0*: 参考Spring Cloud Alibaba选择版本。同时…