Linux防火墙:全面解析IPTables的表、链、规则!

article/2025/8/4 18:36:35

iptables 防火墙用于管理包过滤和 NAT 规则。IPTables 随所有 Linux 发行版一起提供。了解如何设置和配置 iptables 将帮助您有效地管理 Linux 防火墙。

iptables 工具用于管理 Linux 防火墙规则。乍一看,iptables 可能看起来很复杂(甚至令人困惑)。但是,一旦您了解了 iptables 的工作原理及其结构的基础知识,阅读和编写 iptables 防火墙规则就会很容易。

本文是正在进行的 iptables 教程系列的一部分。这是该系列的第一篇文章。

本文解释了 iptables 的结构,并解释了有关 iptables 表、链和规则的基础知识。

在一个高层 iptables 上可能包含多个表。表可能包含多个链。链可以是内置的或用户定义的。链可能包含多个规则。规则是为数据包定义的。

所以,结构是:iptables -> Tables -> Chains -> Rules。这在下图中定义。

图片


: IPTables 表、链和规则结构

重申一遍,表是一堆链,链是一堆防火墙规则。

I. IPTABLES 表和链

IPTables 有以下 4 个内置表。

1.过滤表

过滤器是 iptables 的默认表。所以,如果你没有定义你自己的表,你将使用过滤表。iptables 的过滤表有以下内置链。

  • INPUT 链 – 传入防火墙。用于到达本地服务器的数据包。

  • OUTPUT 链 – 从防火墙传出。用于本地生成并离开本地服务器的数据包。

  • FORWARD 链 – 本地服务器上另一个 NIC 的数据包。对于通过本地服务器路由的数据包。

2. NAT表

iptable 的 NAT 表具有以下内置链。

  • PREROUTING 链 – 在路由之前更改数据包。即在数据包到达系统之后(并且在路由之前)立即发生数据包转换。这有助于将数据包的目标 IP 地址转换为与本地服务器上的路由匹配的内容。这用于 DNAT(目标 NAT)。

  • POSTROUTING 链 – 在路由后更改数据包。即当数据包离开系统时发生数据包转换。这有助于将数据包的源 IP 地址转换为可能与目标服务器上的路由匹配的内容。这用于 SNAT(源 NAT)。

  • OUTPUT 链 – 防火墙上本地生成的数据包的 NAT。

3. Mangle 表

iptables 的 Mangle 表用于专门的数据包更改。这会改变 TCP 报头中的 QOS 位。Mangle 表具有以下内置链。

  • 预路由链

  • 输出链

  • 正向链

  • 输入链

  • POSTROUTING 链

4. 原始表

Iptable 的 Raw 表用于配置例外。原始表具有以下内置链。

  • 预路由链

  • 输出链

下图展示了iptables中的三个重要表。

图片

: IPTables 内置表格

二、IPTABLES 规则

以下是 iptables 规则要记住的要点。

  • 规则包含一个标准和一个目标。

  • 如果条件匹配,则转到目标中指定的规则(或)执行目标中提到的特殊值。

  • 如果条件不匹配,则继续执行下一条规则。

目标值

以下是您可以在目标中指定的可能的特殊值。

  • ACCEPT – 防火墙将接受数据包。

  • DROP – 防火墙将丢弃数据包。

  • QUEUE – 防火墙将数据包传递到用户空间。

  • RETURN – 防火墙将停止为此数据包执行当前链中的下一组规则。控制将返回到调用链。

如果您执行 iptables –list (或) service iptables status,您将看到系统上所有可用的防火墙规则。以下 iptable 示例显示此系统上没有定义防火墙规则。如您所见,它显示默认输入表,带有默认输入链、前向链和输出链。

# iptables -t filter --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

执行以下操作以查看 mangle 表。

# iptables -t mangle --list

执行以下操作以查看 nat 表。

# iptables -t nat --list

执行以下操作以查看原始表。

# iptables -t raw --list

注意:如果不指定 -t 选项,它将显示默认过滤器表。因此,以下两个命令是相同的。

# iptables -t filter --list
(or)
# iptables --list

下面的 iptable 示例显示了在过滤表的输入、转发和输出链中定义了一些规则。

# iptables --list
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --0.0.0.0/0            0.0.0.0/0Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --0.0.0.0/0            0.0.0.0/0Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destinationChain RH-Firewall-1-INPUT (2 references)
num  target     prot opt source               destination
1    ACCEPT     all  --0.0.0.0/0            0.0.0.0/0
2    ACCEPT     icmp --0.0.0.0/0            0.0.0.0/0           icmp type 255
3    ACCEPT     esp  --0.0.0.0/0            0.0.0.0/0
4    ACCEPT     ah   --0.0.0.0/0            0.0.0.0/0
5    ACCEPT     udp  --0.0.0.0/0            224.0.0.251         udp dpt:5353
6    ACCEPT     udp  --0.0.0.0/0            0.0.0.0/0           udp dpt:631
7    ACCEPT     tcp  --0.0.0.0/0            0.0.0.0/0           tcp dpt:631
8    ACCEPT     all  --0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
9    ACCEPT     tcp  --0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
10   REJECT     all  --0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

iptables –list 命令输出中的规则包含以下字段:

  • num - 特定链中的规则编号

  • target – 我们上面讨论的特殊目标变量

  • prot - 协议。tcp、udp、icmp等,

  • opt – 该特定规则的特殊选项。

  • source – 数据包的源 IP 地址

  • 目的地 - 数据包的目的地 IP 地址


http://www.hkcw.cn/article/cksefuLHZy.shtml

相关文章

【火山引擎 大模型批量处理数据教程-详细】

相关的文档 !!先注册账号第一步!! 批量处理文档费用接口对象存储地址提交批量处理网页 1. 准备jsonl数据集 官网网页地址样例,需要根据你自己的数据进行需改 import jsonsystem_prompt """ 你的任…

设计模式——代理设计模式(结构型)

摘要 本文详细介绍了代理设计模式,包括其定义、结构组成、实现方式、适用场景及实战示例。代理设计模式是一种结构型设计模式,通过代理对象控制对目标对象的访问,可增强功能或延迟加载等。文中通过类图、时序图、静态代理、JDK动态代理、CGL…

API网关性能测试与瓶颈定位:微服务世界的守门人之道

在现代微服务架构中,API网关(API Gateway)是所有外部请求进入系统的第一道关口,是服务路由、协议转换、安全认证、流量管控、熔断限流等功能的集中体现。它既是安全屏障,又是性能瓶颈的高发区。 性能测试中&#xff0c…

Vehicle HAL(2)--Vehicle HAL 的启动

目录 1. VehicleService-main 函数分析 2. 构建EmulatedVehicleHal 2.1 EmulatedVehicleHal::EmulatedVehicleHal(xxx) 2.2 EmulatedVehicleHal::initStaticConfig() 2.3 EmulatedVehicleHal::onPropertyValue() 3. 构建VehicleEmulator 4. 构建VehicleHalManager (1)初…

【科研绘图系列】R语言绘制论文组合图形(multiple plots)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图1画图2画图3画图4画图5系统信息介绍 这篇文章详细介绍了如何使用R语言进行科研绘图,特别是绘制论文组合图形(multiple plots)。文章从数…

设计模式——命令设计模式(行为型)

摘要 本文介绍了命令设计模式,这是一种行为型设计模式,用于将请求封装为对象,实现请求的解耦和灵活控制。它包含命令接口、具体命令、接收者、调用者和客户端等角色,优点是解耦请求发送者与接收者,支持命令的排队、记…

用提示词写程序(3),VSCODE+Claude3.5+deepseek开发edge扩展插件V2

edge扩展插件;筛选书签,跳转搜索,设置背景 链接: https://pan.baidu.com/s/1nfnwQXCkePRnRh5ltFyfag?pwd86se 提取码: 86se 导入解压的扩展文件夹: 导入扩展成功: edge扩展插件;筛选书签,跳转搜索,设置背景

一周学会Pandas2之Python数据处理与分析-Pandas2数据分组与聚合

锋哥原创的Pandas2 Python数据处理与分析 视频教程: 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili Pandas 的分组与聚合功能是数据分析的核心工具,允许你根据特定条件分割数据,然后对每个子集应…

零基础上手 Cherry Studio:打造专属 AI 助手的第一步

名人说:博观而约取,厚积而薄发。——苏轼《稼说送张琥》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、Cherry Studio是什么?为什么选择它?1.Cherry Studio简介…

API平台(API网关)之API编排

支持WEB可视化的API编排能力,内置基本组件、流程控制、报文转换以及其他类型的组件,通过可视化拖、拉、拽对API进行编排和调度,支持Restful API、WebService、JAVA等多协议转换混合编排和API服务聚合能力,满足复杂业务场景的API支…

初识PS(Photoshop)

初识PS(Photoshop) 1、Photoshop界面 2、常用快捷键

鸿蒙ArkTS | Badge 信息标记组件自学指南

在做 UI 设计时,我们经常会碰到这样一个需求:要在某个图标、按钮或列表项的角落加一个小小的提示,比如红点、新消息数量、状态标签之类的。这时候就轮到 ​​Badge​​ 组件登场了。 如果你想要一个简单优雅、可配置灵活的信息标记功能&…

【C++】cin和cout的性能问题讨论和优化方法

目录 1、背景知识2、ios::sync_with_stdio(false)2.1 **作用**2.2 原理2.3 注意事项 3、cin.tie(0)3.1 作用3.2 原理3.3 注意事项 4、代码演示5、实例操作5.1 创建数据文件5.2 进行代码演示 个人主页<—请点击 C专栏<—请点击 1、背景知识 在 C 中&#xff0c;标准输⼊输…

【数据结构】图的存储(十字链表)

弧节点 tailvex数据域&#xff1a;存储弧尾一端顶点在顺序表中的位置下标&#xff1b;headvex 数据域&#xff1a;存储弧头一端顶点在顺序表中的位置下标&#xff1b;hlink 指针域&#xff1a;指向下一个以当前顶点作为弧头的弧&#xff1b;tlink 指针域&#xff1a;指向下一个…

(二)微服务(grpc/grpc消费者)

文章目录 项目地址一、grpc介绍1.1 项目初始化1. 创建grpc项目2. 项目结构二、Discount grpc创建2.1 实体层1. Coupon实体2.2 Protos1. 创建discount.proto2. 配置proto3. 创建DiscountService4. Program里注册服务2.3 Seed 数据1. 创建表和Seed数据2. 自动migration2.4 更新Do…

机电的焊接技术

焊接技术:高温或高压条件下,使用焊接材料(焊条或焊丝)将两块或两块以上的母材(待焊接的工件)连接 成一个整体的操作方法&#xff61; 2.3.1 焊接设备和焊接材料的分类及选用 1.焊接设备&#xff08;对应焊接方法&#xff09; 2.焊接材料&#xff08;焊条、焊丝、焊剂、焊接气…

Ⅰ.计算机二级选择题(C语言概述)

【注&#xff1a;重点题以及添加目录格式导航&#xff01;&#xff01;&#xff01;】 【重点】&#xff08;第2题&#xff09; 【重点】&#xff08;第8题&#xff09; 【重点】&#xff08;第17题&#xff09; 【重点】&#xff08;第19题&#xff09; 【重点】&#xff08;第…

ck-editor5的研究 (4):初步使用 CKEditor5 的插件功能

前言 在上一篇文章中—— ck-editor5 的研究&#xff08;3&#xff09;&#xff1a;初步使用 CKEditor5 的事件系统和API &#xff0c;我们已经初步了解了 CKEditor5 的工作方式 那么这篇文章&#xff0c;我们将初步使用 CKEditor5 的插件功能&#xff0c;我将会写一个自己的…

分类预测 | Matlab实现CNN-LSTM-Attention高光谱数据分类

分类预测 | Matlab实现CNN-LSTM-Attention高光谱数据分类 目录 分类预测 | Matlab实现CNN-LSTM-Attention高光谱数据分类分类效果功能概述程序设计参考资料 分类效果 功能概述 代码功能 该MATLAB代码实现了一个结合CNN、LSTM和注意力机制的高光谱数据分类模型&#xff0c;核心…

嵌入式项目之mini2440系统制作烧写

系统移植的必要性与组成 在嵌入式开发中&#xff0c;**系统移植&#xff08;Linux 系统定制&#xff09;** 是常见的需求&#xff0c;主要原因在于&#xff1a; 1. **官方镜像体积过大**&#xff1a;标准 Linux 发行版&#xff08;如 Ubuntu&#xff09;可能占用数 GB 存储…