iptables 基本知识了解【掘金日新计划】

113 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情

image.png

我们知道,防火墙对于一个存在于不非常平静的网络的电脑来讲,是非常重要的。 尤其是工业现场的Linux系统的服务器来说,防火墙规则的配置是运维工程师的重点工作之一。 按照生效位置来说,防火墙分为主机防火墙、网络防火墙。按照实现方式来说,分为硬件防火墙和软件防火墙。

下面我们要介绍的IPtables属于主机软件式的防火墙。 iptables不是真正的防火墙,他是Linux系统下防火墙(Netfilter)的配置客户端工具,运行于用户空间,Netfilter才是真正的防火墙。

iptables防火墙的结构由表、链、规则三个概念构成。 表分为三个部分,包括Filter、nat、 Mangle、 Raw。

 filter负责对报文进行过滤。
 nat:主要负责对报文进行转发。
 Mangle:解析报文 修改报文等操作。
 Raw:处理异常,一般用不到。

他们的优先级顺序: raw-->mangle-->nat-->filter。

链概念有五种:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING。

在时序上,如下图所示。

image.png

也就是说,链表述是报文走的路径,报文从进入网卡到出网卡的流程拆分为五个环节。我们配置的规则就是这五个环节。

我们定义的规则,某些规则的处理方式很相似,这些相似的报文处理方式就组成了表,我们的iptables防火墙规则就是基于这些表定义的,而不是基于报文路径(链)。

报文进入网卡后,在链路的每个环节,按照表的优先级一级级的匹配规则。

每个表里会定义许多规则,每个报文在进入表中一条条的进行匹配,直到匹配到规则,执行这条规则后面定义的动作,并停止匹配,若没有匹配到规则,则按照默认规则的动作执行。如果存在两条相同匹配条件的规则,只会执行第一条匹配到的规则,永远执行不到第二条规则。

基本动作(目标值)包括accept、drop、reject、queue、snat、dnat、redirect、return、log。
常用的:

  • accept:接受此数据包,通过审查
  • drop:拒绝此包数据,并丢弃,不返回
  • reject:拒绝此包数据,并返回

以上是iptables的基础知识,有助于加快对iptables规则配置的理解,学习起来也事半功倍。