iptables 之 —— 新手入门(图文并茂, 一文读懂 iptables)

iptables 之 —— 新手入门(图文并茂, 一文读懂 iptables)

💡 原文中文,约3100字,阅读约需8分钟。
📝

内容提要

本文介绍了Linux防火墙iptables的基本概念和工作原理。iptables是操作netfilter的工具,负责数据包过滤和地址转换。文章详细解释了数据包流向、五个链(PREROUTING、INPUT、OUTPUT、POSTROUTING、FORWARD)及四个表(filter、nat、mangle、raw)的作用和关系,以及如何编写匹配规则和处理动作。

🔎

延伸解读

理解五链:数据包处理的五个关键节点

五链对应 netfilter 提供的五个钩子,分别位于数据包处理的不同阶段:PREROUTING 在路由决策前,INPUT 在进入本机用户空间前,OUTPUT 在本机发出数据包时,POSTROUTING 在路由决策后,FORWARD 用于转发数据包。掌握这些节点有助于明确规则应添加在哪个链上,从而精确控制数据包的过滤、修改或转发。

四表分工:filter、nat、mangle、raw 各司其职

四张表功能不同:filter 负责数据包过滤,是默认表;nat 用于网络地址转换;mangle 用于修改数据包属性,如拆解和重新封装;raw 用于配置数据包,如关闭连接追踪。实际使用中 filter 和 nat 最常用,mangle 在透明代理等场景才会用到,raw 和 security 表基本用不到。

表链关系与优先级:规则生效顺序

并非所有表都作用于所有链。例如 filter 表可用于 INPUT、FORWARD、OUTPUT 链,nat 表可用于 PREROUTING、OUTPUT、POSTROUTING 链。当多张表同时作用于一个链时,规则优先级为 raw -> mangle -> nat -> filter。编写规则时需注意这一顺序,以确保数据包按预期被处理。

规则匹配与处理动作:从条件到 target

规则由匹配条件和处理动作组成。匹配条件包括基本条件(源地址、目标地址)和扩展条件(源端口、目标端口)。处理动作(target)常见的有 ACCEPT、DROP、REJECT、SNAT、DNAT、REDIRECT、LOG 等。例如,匹配到非法的 UDP 数据包可执行 DROP 或 REJECT,从而控制数据包的通行。

❓

Q&A

iptables的主要功能是什么?

iptables主要用于数据包过滤和地址转换,是操作netfilter的工具。

数据包在iptables中是如何流动的?

数据包在iptables中经过五个链:PREROUTING、INPUT、OUTPUT、POSTROUTING和FORWARD。

iptables中有哪些表,它们的作用是什么?

iptables有四个表:filter(数据包过滤)、nat(网络地址转换)、mangle(修改数据包属性)和raw(配置数据包)。

iptables的匹配条件有哪些?

匹配条件包括基本条件(源地址和目标地址)和扩展条件(源端口和目标端口)。

iptables中常见的处理动作有哪些?

常见的处理动作包括ACCEPT(允许通过)、DROP(丢弃)、REJECT(拒绝并响应)、SNAT(源地址转换)、DNAT(目标地址转换)等。

iptables的规则是如何工作的?

iptables的规则根据指定的匹配条件匹配数据包,若匹配成功,则执行相应的处理动作。

🏷️

标签

➡️

继续阅读