iptable 理解

news2024/9/20 8:12:23

iptable 理解

 

这个当初我理解不了,主要是没把netfilter理解清楚。 Netfilter是集成在内核中的,用来定义存储各种规则的。Iptalbe是修改这些规则的工具,修改后存在netfilter里面。

数据包进入LINUX服务器时,先进入服务器的netfilter模块中进行判断处理。

Netfilter包含有三种表,三种表下共包含有五种链,链下面包含各种规则。即表包含若干链,链包含若干规则。

(一)三种表为:filter nat mangle

1、filter:处理与本机有关的数据包,是默认表,包含有三种链:input output forward

2、nat表:与本机无关。主要处理源与目的地址IP和端口的转换。有三种链:prerouting postrouting output

3、mangle表:用于高级路由信息包,如包头内有更改(如tos改变包的服务类型,ttl包的生存时间,mark特殊标记)。

有两种链:prerouting output (kernel 2.4.18后又加了两种链:input forward)这种表很少使用:

(二)五种链(链在表下面,为了条理清晰,才另外作一大点讲解)

1、prerouting:进入netfilter后的数据包在进入路由判断前执行的规则。改变包。

2、Input:当经过路由判断后,要进入本机的数据包执行的规则。

3、output:由本机产生,需向外发的数据包执行的规则。

4、forward:经过路由判断后,目的地不是本机的数据包执行的规则。与nat 和 mangle表相关联很高,与本机没有关联。

5、postrouting:经过路由判断后,发送到网卡接口前。即数据包准备离开netfilter时执行的规则。

iptable 理解

iptable 理解

上图上,运行中的守护进程,是指本机。Input的包都会发到本机。本机处理后再经output 发出去。

(三)数据包进入netfilter后的经过图:

1、数据包进入linux服务器入接口,接口把数据包发往netfilter,数据包就此进入netfilter。

2、经prerouting处理,(如是否需要更改数据包的源IP地址等)

3、数据包到路由,路由通过路由表判断数据包的目的地。如果目的地是本机,就把数据包转给intput处理后进入本机。如果目的地不是本机,则把数据包转给forward处理。

4、数据包通过forward处理后,再转给postrouting处理,(是否有目标地址需要改变等),处理后数据包就出了netfilter,到linux服务器出接口,就出了linux服务器。

5、如果数据包进了本机后经过处理需要外发数据包,或本机自身有数据包需要外发,就把数据包发给output链进行处理后,转给postrouting处理后,出linux服务器。进入外面的花花世界。

(三)规则的执行顺序

当数据包进入netfilter,就会和里面的规则进行对比。规则是有顺序的。

先和规则1对比,如果和规则1相匹配,被规则1接受(accept),则数据将不再和后面的规则进行对比。

如果不匹配,则按顺序和后面的规则进行对比,直到被接受。如果所有的规则都不匹配,则进行默认策略操作,以决定数据包的去向。

所以规则的顺序很重要。

IPTABLE主要是理解上面的内容,一些详细参数可以见附件中的指南。

二、iptalbe语法及参数

iptable [-t table] command [chain] [match][-j target] 注释:iptable [-t 表名] -命令 [链接] [匹配] [-j 动作/目标]

(一) table (表)

1、filter表:默认用filter表执行所有的命令。只操作与本机有关的数据包。 2、nat表:主要用于NAT地址转换。只有数据流的第一个数据包被这个链匹配,后面的包会自动做相同的处理。 分为:DNAT(目标地址转换)、SNAT(源地址转换)、MASQUERADE

(1)DNAT操作主要用在这样一种情况,你有一个合法的IP地址,要把对防火墙的访问 重定向到其他的机子上(比如DMZ)。也就是说,我们改变的是目的地址,以使包能重路由到某台主机。

(2)SNAT 改变包的源地址,这在极大程度上可以隐藏你的本地网络或者DMZ等。内网到外网的映射。

(3)MASQUERADE 的作用和SNAT完全一样,只是计算机的负荷稍微多一点。因为对每个匹配的包,MASQUERADE都要查找可用的IP地址,而不象SNAT用的IP地址 是配置好的。当然,这也有好处,就是我们可以使用通过PPP、 PPPOE、SLIP等拨号得到的地址,这些地址可是由ISP的DHCP随机分配的。

iptable 理解-腾讯云开发者社区-腾讯云

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode 72. 编辑距离 动态规划 优化 C++实现

Leetcode 72.编辑距离 问题:给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作:插入一个字符,删除一个字符,替换一个字符。 算法1:递…

9-6springboot该如何学习

这阶段如何学习 javase:面向对象OOP mysql:持久化 htmlcssjsjquery框架:视图(框架不熟练),css不好 javaweb:独立开发MVC三层架构的网站:原始 ssm:框架:简化了我们的…

【课程学习】信号检测与估计

文章目录 3.7-CRB延展到向量的形式3.8-参数变换形式的CRB CRB for transformation, pp45-463.9-高斯分布 CRLB for the General Gaussian Case3.7-CRB延展到向量的形式 0904 向量和变换形式的CRLB形式 估计参数真实值 θ \theta θ,估计值 θ ^ \hat \theta θ^ 与信号与系统…

AcWing算法基础课-786第k个数-Java题解

大家好,我是何未来,本篇文章给大家讲解《AcWing算法基础课》786 题——第 k 个数。本篇文章详细解析了如何使用 Java 实现快速排序算法,以解决查找数组中第 k 个元素的问题。通过深入浅出的讲解,展示了从输入读取到快速排序实现的…

Java程序打jar包(包含作者各种踩坑案例,力求为大家避雷)

一、诉求 将一个spring boot项目打包成一个jar包&#xff0c;直接在windows或者linux系统下直接命令行运行。 二、配置步骤 1、编写assembly.xml配置文件&#xff08;放在pom.xml同级目录&#xff09; <?xml version"1.0"?> <assembly><id>T…

GAN生成器好坏之评价方法

我们产生出来的生成器它好或者是不好。要 评估一个生成器的好坏&#xff0c;最直觉的做法也许是找人来看生成器产生出来的图片到底像不像真 实的图片。所以其实很长一段时间&#xff0c;尤其是人们刚开始研究生成式技术的时候&#xff0c;很长一段时间 没有好的评估方法。那时候…

群晖NAS安装(一)

主要教程参考 https://zhuanlan.zhihu.com/p/515187738?utm_id0&wd&eqide69f50bb0000263900000006645b5680 系统是DS3617xs DSM6.1.3 一 准备工作 旧16G U盘一个 软件: diskgenius 分区工具 win32diskimager 写入工具 chipeasy或者chipgenius 识别工具 二 安装 分区…

log4j2 与 log4j使用时的几点小区别 - log4j2上手说明

虽然log4j2 目前还是beta版&#xff0c;不过OneCoder已经忍不住要尝试一下。跟使用log4j 比起来&#xff0c;上手上主要的区别有。 1、依赖的jar包。使用slf4jlog4j2 时&#xff0c;依赖的jar包如下&#xff1a;( gradle配置&#xff0c;Maven对照修改即可) dependencies{ com…

SAP与湃睿PLM系统集成案例

一、项目背景 浙江某家用电机有限公司, 该公司的产品涵盖洗衣机、‌空调、‌冰箱及厨房用具等家电电机的制造&#xff0c;‌具备年产4600万台电机的生产能力&#xff0c;‌是中国最大的家电电机生产基地之一。 为确保工艺路线信息在设计与生产执行层面的无缝传递&#xff0…

python多进程

文章目录 1、前言2、示例3、参考 1、前言 python中使用多进程&#xff0c;可以加快代码的运行速度&#xff0c;更高效地进行相关工作。 2、示例 使用蒙特卡洛方法计算 π \pi π来进行使用多进程前后代码运行速率的对比&#xff1b; import random import multiprocessing as…

信也科技基于 Apache SeaTunnel金融场景的应用实践探索

前言 作者&#xff1a;朱俊&#xff0c;信也科技&#xff0c;数据开发专家 离线开发一直是数据仓库建设中重要的一个环节。信也科技之前基于Azkaban构建了离线任务调度与开发平台&#xff0c;承载了公司90%以上的离线任务调度需求&#xff0c;以及玄策变量平台的每日变量跑批产…

爵士编曲:如何编写爵士鼓

音源选取 使用ssd鼓写爵士乐&#xff0c;使用其中的豪华爵士音源&#xff0c;然后选其中的第一个或第二个都可以。 或者用add鼓studio drummer中的爵士鼓也可以 ​Cubase图示 用swing的律动把叮叮镲写上 然后第三拍加上踩镲

【截图服务 +打包】pkg打包 puppeteer

目录 最后结论 遇到的问题与解决 版本匹配问题 参考文档 最后结论 pkg -t win --public ./screenshots.js --output ./dist/screen.exe 服务启动&#xff1a; postman调用 &#xff1a; 遇到的问题与解决 版本匹配问题 pkg 这里说的是v3.5,实际装的是5.8.1&#xff0c;…

【ArcGIS Pro实操第二期】最小成本路径(Least-cost path)原理及实操案例

ArcGIS Pro实操第一期&#xff1a;最小成本路径原理及实操案例 概述&#xff08;Creating the least-cost path&#xff09;1.1 原理介绍1.2 实现步骤1.3 应用案例 2 GIS实操2.1 工具箱简介2.1.1 成本路径&#xff08;Cost path&#xff09;2.1.2 成本距离&#xff08;Cost dis…

Cesium 展示——格式化时间控件信息

文章目录 需求分析需求 如图,我们在 Cesium 初始化后如图一展示,展示的是UTC的时间,而且是英文,如何将该控件进行格式化一下,展示当前的北京时间呢?分析 初始化 Cesiumconst fetchData = () => {

【LabVIEW学习篇 - 20】:人机界面交互设计04

文章目录 声音播放自定义控件自定义控件创建过程演示 选项卡、子面板、分隔栏 声音播放 有时系统检测到某些事件发生时&#xff0c;需要通过声音去传递信息&#xff0c;因此播放声音也是一种重要的交互方式&#xff0c;如系统检测到异常报警时&#xff0c;需要放报警声音来通知…

flutter Image

Flutter中&#xff0c;Image是一个用于显示图片的控件&#xff0c;可以显示网络图片、本地图片以及Asset中的图片。Image控件支持多种常见的图片格式&#xff0c;例如PNG、JPEG、GIF等。 const Image({super.key,required this.image,this.frameBuilder,this.loadingBuilder,th…

用“黑科技”书写“黑神话” | 基于RK3576核心板的三维扫描仪应用方案

《黑神话&#xff1a;悟空》作为国内首款3A游戏大作&#xff0c;上线仅10天全球发行量就已超过1700万份&#xff0c;不论您是否是游戏玩家&#xff0c;相信您都能在各种新闻、宣传和活动中感受到这款游戏的热度。在游戏的众多亮点中&#xff0c;“细腻的场景设计与对名胜古迹的…

3个永不过时的妙招,恢复苹果手机视频不是问题

苹果手机的视频功能较为出色&#xff0c;使用苹果手机拍摄的视频更加真实、清晰&#xff0c;因此许多人会选择使用苹果手机来记录生活点滴。但是&#xff0c;如果我们不小心删除了苹果手机视频&#xff0c;有什么方法可以让这些“生活的回忆”重现呢&#xff1f;别担心&#xf…

拆解一个不靠烧广告的宠物站的流水成长流史丨出海笔记

最近后台收到会员的私信&#xff0c;说宠物投放广告ROI很低。秉承互助分享精神&#xff0c;我们也加入寻找突破口&#xff0c;看看别人的宠物网站是怎么做的。 之前出海笔记分享过 找竞对不能只找头部卖家&#xff0c;所以我们这次选取的是一个接地气的宠物网站alldogboots进行…