安全:iptables中的表和链的区别

news/2024/10/4 21:28:09

一,什么是链?

1,一个防火墙中通常针对不同的来源设置很多规则,多个规则形成一个链,其实也可以理解成是分组的概念,
在Iptables防火墙中针对不同的链路共分为五种不同的链。

如下图所示,当数据报文进入链之后,首先匹配第一条规则,如果第一条规则通过则访问,如果不匹配,则接着向下匹配,
如果链中的所有规则都不匹配,那么就按照链的默认规则处理数据报文的动作。

2,三表五链之五链

Iptables有五种不同的链,分别是INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING。

INPUT:从外界进入防火墙的数据包会应用此规则链中的策略。
OUTPUT:当前服务器从防火墙外出的数据表会应用此规则链中的策略。
FORWARD:转发数据包时会应用此规则链中的策略。
PREROUTING:主机外的报文要进入防火墙,所有的数据包进来的时候都会由PREROUTING链进行处理。
POSTROUTING:主机内的报文要从防火墙出去,需要经过POSTROUTING链进行处理。

五链的示意图

二,什么是表?

虽然每一条链上有多条规则,但有些规则的作用(功能)很相似,多条具有相同功能的规则合在一起就组成了一个“表”。

iptables提供了四种“表”:
– filter表:主要用于对数据包进行过滤,根据具体的规则决定是否放行该数据包(如DROP、ACCEPT、REJECT、LOG),
所谓的防火墙其实基本上是指这张表上的过滤规则,对应内核模块iptables_filter;
– nat表:network address translation,网络地址转换功能,主要用于修改数据包的IP地址、端口号等信息(网络地址转换,如SNAT、DNAT、MASQUERADE、REDIRECT)。
属于一个流的包(因为包的大小限制导致数据可能会被分成多个数据包)只会经过这个表一次,如果第一个包被允许做NAT或Masqueraded,
那么余下的包都会自动地被做相同的操作,也就是说,余下的包不会再通过这个表。对应内核模块iptables_nat;
– mangle表:拆解报文,做出修改,并重新封装,主要用于修改数据包的TOS(Type Of Service,服务类型)、
   TTL(Time To Live,生存周期)指以及为数据包设置Mark标记,以实现Qos(Quality Of Service,服务质量)调整以及策略路由等应用,
    由于需要相应的路由设备支持,因此应用并不广泛。对应内核模块iptables_mangle;(应用少)
– raw表:是自1.2.9以后版本的iptables新增的表,主要用于决定数据包是否被状态跟踪机制处理,
    在匹配数据包时,raw表的规则要优先于其他表,对应内核模块iptables_raw。(应用少)

我们最终定义的防火墙规则,都会添加到这四张表中的其中一张表中

三,表和链的关系:

每条链上各个表被匹配的优先级:raw→mangle→nat→filter
raw最先被匹配,
filter最后被匹配

我们最终定义的防火墙规则,都会添加到这四张表中的其中一张表中,
所以我们实际操作是对“表”进行操作的,
每种表都能用于哪些链? 看图:

内容引用了来自csdn的博客,可见图片水印,在此表示感谢

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

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

相关文章

Gluon 编译 JavaFx - exe

Gluon 编译 JavaFx -> exe 能力强的伙伴可以直接参考官方文档 开发工具idea 2023.3 idea gluon plugin git apache-maven-3.8.4环境准备vs 2022 community 版本 (使用微软官方的安装器安装,社区版即可) jdk 11 or 17+ (可以使用idea进行下载安装) GraalVM CE Gluon 22.1.…

8.4linux定时任务-环境变量-数据库

配合SUID本地环境变量提权 思路原理:利用sh环境变量替换,使得/tmp/ps得到root权限;ps=sh 过程:手写调用文件-编译-复制文件-增加环境变量-执行 gcc demon1.c -o shell cp /bin/sh /tmp/ps export PATH=/tmp:$PATH # webshell权限无法设置环境变量 ./shell id提前本地定时任…

代码随想录day46 || 647 回文子串, 516 最长回文子序列

647 回文字串func countSubstrings(s string) int {// 动规五部曲// dp[i][j] 表示s[i: j+1] 区间是否是一个回文// if s[i] == s[j] {if i-j <= 1 || dp[i+1][j-1] == true { dp[i][j] == true}}// 初始化为false// 从下往上,从左往右// printvar count intvar dp = make(…

vivo手机导出微信聊天记录方法

1,先在手机上打开“开发人员选项”并将USB调试功能打开。再将手机通过数据线连接到电脑,打开电脑上已经安装好的“互传备份助手”(点击此处进入下载页面),再点击界面上的新建备份。注意:在电脑上运行互传备份助手时,会提醒手机上也要安装互传助手,按提示安装即可。 2,…

PHP之常见问题

汇总在PHP开发中遇到的一些问题 1.post提交参数缺失 场景: 在前端页面发起一个post提交的时候,查看payload中的数据是正常的, 但是在接收的时候,发现只有部分数据,算了一下,包含的数据数量只有1000个 解决: 默认配置里的数据量配置太小造成的这个问题,需要修改一下配置;只需要修…

一个操作系统的设计与实现——第19章 IA32-e模式

19.1 64位段描述符与GDT 在32位操作系统中,我们使用的是平坦模型而非分段模型,从而,段描述符的段基址和段限长均成了摆设。在64位模式下,就连CPU也淘汰了分段模型,转而固定使用平坦模型。 64位代码段描述符如下图所示:如图所示,由于固定使用平坦模型,段描述符中的段基址…

GitHub 上这款新浪微博爬虫项目,‌让你轻松掌握微博数据!‌

该文章为 weibo-crawler 的官方文档,为了方便国内的同学阅读而转载。该文章为 weibo-crawler 的官方文档,为了方便国内的同学阅读而转载。 原文地址:https://github.com/dataabc/weibo-crawler 源码我也下载了一份,读者可以在我的公众号上回复“分享资料”来获取,路径如下…

获取行政区划信息(省、市)工具类

获取行政区划信息(省、市)工具类 说明:下载后解压,将工具类粘到你的项目,放到接口的data中即可。(接口请求url名称根据你的业务自己定,这里以amap为例)蓝奏云下载:https://wwsi.lanzouq.com/ircyq28shqsf 密码:gsqp 代码预览(部分)中间部分略