你好,我是李逸皓,我的梦想是:运维,永不背锅!
放个链接,万一有人关注呢
优质文章推荐
↓ ↓ ↓ ↓ ↓
防火墙是计算机网络中用于保护网络安全的一种重要设备或软件。它通过对网络数据包进行过滤和处理,来实现对网络流量的管理和控制。在Linux系统中,防火墙的实现主要依赖于iptables(IPv4)和ip6tables(IPv6)工具。
防火墙规则链
iptables能够在用户空间中定义防火墙规则,这些规则在内核空间中可以被读取,并且落实到防火墙的工作当中。为了实现不同功能的处理,iptables将防火墙规则放置在内核空间特定的位置,这些位置被称为防火墙规则链(chains),总共有五个规则链,分别是:
PREROUTING(路由前):数据包进入防火墙之前,经过此链进行预处理。
INPUT(数据包进入接口库):数据包进入本地服务器后,经过此链进行处理。
FORWARD(转发接口):用于处理转发的数据包,即数据包从一个网络接口进入,到另一个网络接口去的情况。
OUTPUT(数据包出口):数据包从本地服务器出去之前,经过此链进行处理。
POSTROUTING(路由后):数据包离开本地服务器后,经过此链进行处理。
任何一个数据包,只要经过本地服务器,必将经过上述五个链中的其中一个链。
表(Tables)
为了让不同的功能和数据包处理方式交替工作,iptables引入了表(tables)的概念。iptables内置了四个表,分别是:
1、raw表:raw表包含PREROUTING链和OUTPUT链,用于决定数据包是否被状态跟踪机制处理。它优先级最高,可以在连接跟踪前对收到的数据包进行处理。
2、filter表:filter表是防火墙的默认表,包含INPUT链、FORWARD链和OUTPUT链,主要用于根据用户预定义的规则过滤符合条件的数据包。它是防火墙最常用的表。
3、nat表:nat表包含PREROUTING链、OUTPUT链和POSTROUTING链,用于实现网络地址转换(NAT)功能,例如端口映射。
4、mangle表:mangle表包含全部类型的链,主要用于修改数据包的服务类型、TTL(生存时间)和配置路由,实现QoS(服务质量)等功能。
通过定义不同的防火墙规则,可以实现不同的功能,例如filter表实现数据包过滤,nat表实现地址转换,mangle表实现数据包修改等。
工作原理
iptables的工作原理主要是对数据包的管理。当一个数据包进入网卡时,首先经过PREROUTING链,内核根据数据包的目标IP地址判断是否需要进行转发。如果数据包的目标地址是本机,那么该请求将会被分配至INPUT链进行下一步处理;如果目标地址不是本机,数据包将被转发至FORWARD链进行转发,然后根据目的地址经过POSTROUTING链发送出去。对于本机服务的数据包,进入INPUT链后,将被交给应用程序进行应答,然后携带回应的数据包经过OUTPUT链发送给用户或服务器。
iptables的过滤是纵横交错式的过滤,不是链状过滤,它会根据不同的规则链逐条匹配规则,如果满足条件,系统将根据匹配到的规则所定义的方式处理数据包。如果从始至终没有满足条件,系统将根据该链的默认策略处理数据包。
通过合理配置iptables的规则链和表,可以实现对网络流量的管理和控制,保障网络的安全性和稳定性,防止未经授权的访问和攻击。同时,通过对不同的链和表进行定制化配置,可以实现特定功能的防火墙策略,例如数据包过滤、地址转换、质量控制等。
单击进入:粉丝进群传送门
↓↓↓ 点个在看,无需赞赏!