防火墙中的“四表五链”是Linux内核中Netfilter框架的核心概念,用于管理和控制网络数据包。以下是具体说明:
四表
- filter表
- 用途:过滤数据包,决定是否允许通过。
-
默认表,常用于防火墙规则。
-
nat表
- 用途:网络地址转换(NAT),修改数据包的源或目标地址。
-
用于SNAT(源地址转换)和DNAT(目标地址转换)。
-
mangle表
- 用途:修改数据包的头信息,如TTL、TOS等。
-
用于高级数据包处理。
-
raw表
- 用途:决定数据包是否绕过连接跟踪机制。
- 用于需要绕过连接跟踪的场景。
五链
- PREROUTING链
- 用途:数据包进入网络接口后,路由决策前处理。
-
应用表:nat、mangle、raw。
-
INPUT链
- 用途:处理目标是本机的数据包。
-
应用表:filter、mangle。
-
FORWARD链
- 用途:处理经过本机转发的数据包。
-
应用表:filter、mangle。
-
OUTPUT链
- 用途:处理本机产生的数据包。
-
应用表:filter、nat、mangle、raw。
-
POSTROUTING链
- 用途:数据包离开网络接口前处理。
- 应用表:nat、mangle。
数据包流程
- PREROUTING链:数据包进入后首先经过此链。
- 路由决策:决定数据包是发给本机还是转发。
- INPUT链:如果目标是本机,进入此链。
- FORWARD链:如果是转发,进入此链。
- OUTPUT链:本机产生的数据包经过此链。
- POSTROUTING链:数据包离开前最后经过此链。
总结
- 四表:filter、nat、mangle、raw,用于不同数据处理。
- 五链:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING,决定数据包的处理路径。
理解这些概念有助于配置和管理防火墙规则。