iptables 相关名词的解释说明

iptables 相关名词的解释说明

 

iptables有5个链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING,

               4个表:filter,nat,mangle,raw. 

               4个表的优先级由高到低的顺序为:raw–>mangle–>nat–>filter 

 

RAW表只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。一但用户使用了RAW表,在某个链上,RAW表处理完后,将跳过NAT表和 ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了.

RAW表可以应用在那些不需要做nat的情况下,以提高性能。如大量访问的web服务器,可以让80端口不再让iptables做数据包的链接跟踪处理,以提高用户的访问速度。

 

匹配(match)
符合指定的条件,比如指定的 IP 地址和端口。

 

丢弃(drop)

当一个包到达时,简单地丢弃,不做其它任何处理。

接受(accept)
和丢弃相反,接受这个包,让这个包通过防火墙。

拒绝(reject)
和丢弃类似,但是它还会向发送这个包的源主机发送错误消息。这个错误消息可以指定,也可以自动产生。

目标(target)
指定的动作,说明如何处理一个包,比如:丢弃,接受,或拒绝。

跳转(jump)
和目标类似,不过它指定的不是一个具体的动作,而是另一个链,表示要跳转到那个链上。

规则(rule)
一个或多个匹配及其对应的目标。

链(chain)
每条链都包含有一系列的规则,这些规则会被依次应用到每个遍历该链的数据包上。每个链都有各自专门的用途, 这一点我们下面会详细讨论。

表(table)
每个表包含有若干个不同的链,比如 filter 表默认包含有 INPUT,FORWARD,OUTPUT 三个链。iptables 有四个表,分别是:raw,nat,mangle和filter,每个表都有自己专门的用处,比如最常用filter表就是专门用来做包过滤的,而 nat 表是专门用来做NAT的。

策略(police)
我们在这里提到的策略是指,对于 iptables 中某条链,当所有规则都匹配不成功时其默认的处理动作。

连接跟踪(connection track)
又称为动态过滤,可以根据指定连接的状态进行一些适当的过滤,是一个很强大的功能,但同时也比较消耗内存资源。

 

iptables 包处理流程图

 

 

数据包流经netfilter防火墙的路径

a.流入本机数据包的路径:

所属表           mangle         nat                    mangle    nat     filter
网络数据包 à PREROUTING à PREROUTING à 路由选择 à INPUT à INPUT à INPUT à 本地处理进程

b.流出本机数据包的路径:

所属表           mangle    filter                 mangle          nat
本地处理进程 à OUTPUT à OUTPUT à 路由选择 à POSTROUTING à POSTROUTING à 外部网络

c.流经本机转发的数据包的路径:

所属表      mangle       nat                      mangle    filter      mangle         nat
A端网络 à PREROUTING à PREROUTING à 路由选择 à FORWARD à FORWARD à POSTROUTING à POSTROUTING à B端网络

 

 

基本步骤如下:
1. 数据包到达网络接口,比如 eth0。
2. 进入 raw 表的 PREROUTING 链,这个链的作用是赶在连接跟踪之前处理数据包。
3. 如果进行了连接跟踪,在此处理。
4. 进入 mangle 表的 PREROUTING 链,在此可以修改数据包,比如 TOS 等。
5. 进入 nat 表的 PREROUTING 链,可以在此做DNAT,但不要做过滤。
6. 决定路由,看是交给本地主机还是转发给其它主机。

到了这里我们就得分两种不同的情况进行讨论了,一种情况就是数据包要转发给其它主机,这时候它会依次经过:
7. 进入 mangle 表的 FORWARD 链,这里也比较特殊,这是在第一次路由决定之后,在进行最后的路由决定之前,我们仍然可以对数据包进行某些修改。
8. 进入 filter 表的 FORWARD 链,在这里我们可以对所有转发的数据包进行过滤。需要注意的是:经过这里的数据包是转发的,方向是双向的。
9. 进入 mangle 表的 POSTROUTING 链,到这里已经做完了所有的路由决定,但数据包仍然在本地主机,我们还可以进行某些修改。
10. 进入 nat 表的 POSTROUTING 链,在这里一般都是用来做 SNAT ,不要在这里进行过滤。
11. 进入出去的网络接口。完毕。

另一种情况是,数据包就是发给本地主机的,那么它会依次穿过:
7. 进入 mangle 表的 INPUT 链,这里是在路由之后,交由本地主机之前,我们也可以进行一些相应的修改。
8. 进入 filter 表的 INPUT 链,在这里我们可以对流入的所有数据包进行过滤,无论它来自哪个网络接口。
9. 交给本地主机的应用程序进行处理。
10. 处理完毕后进行路由决定,看该往那里发出。
11. 进入 raw 表的 OUTPUT 链,这里是在连接跟踪处理本地的数据包之前。
12. 连接跟踪对本地的数据包进行处理。
13. 进入 mangle 表的 OUTPUT 链,在这里我们可以修改数据包,但不要做过滤。
14. 进入 nat 表的 OUTPUT 链,可以对防火墙自己发出的数据做 NAT 。
15. 再次进行路由决定。
16. 进入 filter 表的 OUTPUT 链,可以对本地出去的数据包进行过滤。
17. 进入 mangle 表的 POSTROUTING 链,同上一种情况的第9步。注意,这里不光对经过防火墙的数据包进行处理,还对防火墙自己产生的数据包进行处理。
18. 进入 nat 表的 POSTROUTING 链,同上一种情况的第10步。
19. 进入出去的网络接口。完毕。

时间: 2024-10-29 04:53:12

iptables 相关名词的解释说明的相关文章

神经网络相关名词解释

神经网络相关名词解释 这篇文章的目的是把之前概念理解的名词用公式记忆一下. 1. 正则化 1.0 过拟合 这是正则化主要解决的问题. 过拟合现象主要体现在accuracy rate和cost两方面: 1.模型在测试集上的准确率趋于饱和而训练集上的cost仍处于下降趋势 2.训练集数据的cost趋于下降但测试集数据的cost却趋于饱和或上升 1.1 L2正则化 L2正则化就是在代价函数后面再加上一个正则化项: C_0代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和

区块链的相关名词有哪些?星光区块链

区块链的相关名词有哪些?随着区块链这个名词越来越火,现在有很多人都去了解区块链技术是怎样的?但有一些人因为不知道它相关名词的意思,陷入一个似懂非懂的状态.为了使大家更加深入的了解区块链技术,下面就让星光区块链来告诉大家一些常用的区块链的相关名词有哪些?它们是什么意思?-:半衰期来源于比特币的激励机制,即为矿工每验证一个区块即可得到的奖励.从最开始的50BTC,每四年减半,目前是12.5BTC,已经历过2次半衰(50BTC-->25BTC-->12.5BTC). 二:.分叉指向同一个父块的2个区

单片机相关名词解释总结

最近开始研究单片机相关的知识,好多名词都容易混淆,所以做了个总结,可以直接用来查找索引,持续更新ing CPU Central Processing Unit,中央处理器,是一台计算机的运算核心和控制核心.它的功能主要是解释计算机指令以及处理计算机软件中的数据.中央处理器主要包括运算器(ALU,ArithmeticLogic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data).控制及状态的总线(Bus).它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子

Java开发相关名词解释 Java开发学习

随着技术的发展,市场的需要,很多盆友想转行Java开发,但又苦恼于不懂Java中一些名词的意义,那我们就一起来通俗的解释下Java开发中的一些名词,方便大家理解. Servlet:java初级框架,所有框架的基础,struts2,springMVC的控制层都是在servlet的基础上封装的. Hibernate:java持久层框架,主要作用就是提供与数据库的交互.现在已经被mybatis逐渐替代了. Mybatis:java持久层框架,功能与hibernate近似,但是相比hibernate更灵

编程语言相关名词解释汇总

今天给大家分享下,我们常见却不一定清楚的名词: 先上个图 我们看这个图,是一个语言坐标系,分别按编程语言的性质粗分为四个轴:动态.静态.强类型.弱类型.像笔者使用的Javascript就属于弱类型动态语言. 那么,我们思考,这么多的编程语言有这么多的性质,它们之间存在怎样的差异呢? 经过一番Google & Baidu后,笔者得出了答案,即为今天的总结: In a word: 强/弱类型指的是语言类型系统的类型检查的严格程度.动态/静态类型指的是变量与类型的绑定方法. 强/弱类型 强类型 (st

《数据库系统概论》相关名词解释

数据:用于描述事物的符号记录,数据与其语义是不可分的 数据库:是长期存储在计算机内的.有组织的.可共享的数据集合 数据库系统:是计算机系统引入数据库后的一个系统,由数据库.数据库管理系统.应用系统.管理员.用户[五个部分]组成.数据库系统的核心是数据库管理系统,基础是数据模型.数据库具有数据结构化.共享性高.冗余度低.易扩充的特点 数据库管理系统:是位于用户与操作系统之间的一层系统,用于高效地定义.存取.运行管理.建立维护数据.常见的有Oracle公司的mysql,Microsoft公司的SQL

移动自动化相关名词解释

操作系统:android.ios.FirefoxOs 自动化测试基础框架:appium.selendroid android模拟器:bluestacks(蓝叠).Genymotion.AVDmanage(android SDK自带的). 调试工具:ADB(Android Debug Bridge) 定位元素工具:appium自带的inspector.android sdk->tools->uiautomatorview 总体: IOS自动化测试需要Mac os操作系统 Mac OS X 10.

计算机相关名词解释

计算机网络: 1.DNS DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53.在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明. 2.CDN CDN的

服务器相关名词解释

PDU 电源分配单元PDU(Power Distribution Unit)是适用于机柜安装的电源分配器插座,具备电源分配和管理功能,是将电源输送到机柜.服务器以及数据中心的连接设备. XDP  从Intel Core CPU 开始,随着调试复杂度的增强,在ITP 的基础上, Intel 定义了一个新的调试接口叫XDP, (eXtend Debug Port), 标准封装模式为60Pin, 也同时定义了几种不同的小封装连接器形式,比如SSA (31pin), SFF 24, SFF 26 等.