欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux iptables基础知识和规则原理讲解

程序员文章站 2023-10-27 22:10:52
这篇文章主要介绍了Linux iptables基础知识和规则原理讲解,本文讲解了什么是iptables、什么是Netfilter、iptables规则原理等内容,需要的朋友可以参考下... 15-06-15...

什么是iptables?

iptables是linux下功能强大的应用层防火墙工具,但了解其规则原理和基础后,配置起来也非常简单。

什么是netfilter?

说到iptables必然提到netfilter,iptables是应用层的,其实质是一个定义规则的配置工具,而核心的数据包拦截和转发是netfiler。

netfilter是linux操作系统核心层内部的一个数据包处理模块。

iptables和netfilter关系图:

Linux iptables基础知识和规则原理讲解

在这张图可以看出,netfilter作用于网络层,数据包通过网络层会经过netfilter的五个挂载点(hook point):pre_routing、input、output、forward、post_routing。

任何一个数据包,只要经过本机,必将经过这五个挂载点的其中一个。

iptables规则原理

iptables的规则组成,又被称为四表五链:

四张表 + 五个挂载点 + 规则<br><br>四张表:filter表、nat表、mangle表、raw表<br><br>五个挂载点:pre_routing、input、output、forward、post_routing
具体来说,就是iptables每一条允许/拒绝或转发等规则必须选择一个挂载点,关联一张表。

规则代表了对数据包的具体操作,挂载点代表了操作的位置,表代表了作用的目的。

iptables的四张表

现在用的比较多的表是前两个:

1、filter 用于过滤;

2、nat 用于地址转换;

3、mangle 修改数据包;

4、raw 一般是为了不再让iptables做数据包的链接跟踪处理,跳过其他表,提高性能;

数据包在规则表、挂载点的匹配流程图

以下这张图是数据包经过挂载点的流程图,在每个挂载点可以看到有哪些表可以用于定义规则:

Linux iptables基础知识和规则原理讲解

对于filter表一般只能做在3个链上:input、forward、output;

对于nat表一般也只能做在3个链上:prerouting、output、postrouting。