Iptables 命令

17 Mar 2025 | 4 分钟阅读

Iptable 是一个命令行接口,用于在 IPv4 中设置和维护 Netfilter 防火墙的表,这些表已添加到 Linux 内核中。防火墙会将数据包与表中的某些规则进行匹配,并对任何符合条件的匹配执行定义的动作。

让我们讨论一些特性。

  • 表是链的集合名称。
  • 链是许多规则的集合。
  • 规则可以定义为用于匹配数据包的任何条件。
  • 目标可以定义为任何可行规则匹配时执行的任何动作。QUEUE、DROP、ACCEPT 是一些目标的示例。
  • 策略是在没有内置链匹配的情况下执行的默认操作,可以是 DROP 或 ACCEPT。

语法

Iptables 表的类型

表可以分为五种不同的类型

  • Filter(过滤): Filter 表是用于过滤数据包的默认应用表。它包含 FORWARD、INPUT 和 OUTPUT 等链。
  • Nat(网络地址转换): Nat 表与网络地址转换相关。它包含 POSTROUTING 和 PREROUTING 链。
  • Mangle(修改): 这类表用于特定的数据包修改。其内置链包括 OUTPUT 和 PREROUTING。
  • Raw(原始): 它通过连接跟踪配置异常。其内置链包括 OUTPUT 和 PREROUTING。
  • Security(安全): 这些表用于 MAC(强制访问控制)。

Iptables 链的类型

iptable 的一些内置链可以分为以下几类

  • INPUT: INPUT 链定义了针对本地主机套接字的数据包的规则集。
  • FORWARD: FORWARD 链用于从设备路由的各种数据包。
  • OUTPUT: OUTPUT 链用于本地生成的数据包,这些数据包要被发送到外部。
  • PREROUTING: PREROUTING 链用于在数据包到达时对其进行修改。
  • POSTROUTING: POSTROUTING 链用于在数据包离开时对其进行修改。

注意:我们也可以创建用户自定义链。

Iptables 选项的类型

1. -A, -append (追加): 它可以追加到参数中给定的任何链。

语法

示例: 追加命令可以丢弃通过端口进来的所有流量。

2. -D -delete (删除): 它可以删除特定链中的规则。

语法

示例: 删除命令可以删除 INPUT 链中的规则 2。

3. -C, -check (检查): 它可以检查链中是否存在某个规则。如果规则存在,此命令将返回 0;如果不存在,则返回 1。

语法

示例:此命令可以检查 INPUT 链中是否存在特定规则。

Iptables 参数的类型

Iptables 命令提供了用于匹配数据包并执行特定操作的参数。以下讨论了一些重要参数

1. -p, -proto (协议): 这是任何数据包遵循的协议。可行值为 ssh、icmp、udp、tcp 等。

语法

示例: 协议参数可以在 INPUT 链中追加规则,以丢弃所有 udp 数据包。

2. -s, -source (源): 它用于与数据包的源地址进行匹配。

语法

示例

源参数可以在 INPUT 链中追加规则,以接受来自 192.168.1.230 的所有数据包。

3. -d, -destination (目标): 它用于与数据包的目标地址进行匹配。

语法

示例: 目标参数可以在 OUTPUT 链中追加规则,以丢弃所有发往 192.168.1.123 的数据包。

4. -i, -in-interface (入接口): 它可以匹配进入的数据包和特定的入接口,并执行操作。

语法

示例: 接口参数可以在 INPUT 链中追加规则,以丢弃所有发往无线接口的数据包。

5. -o, -out-interface (出接口): 它可以匹配出接口的数据包和特定的出接口。

6. -j, -jump (跳转): 跳转参数定义了匹配时要执行的操作。

语法

示例: 跳转参数可以在 FORWARD 链中添加规则,以丢弃所有数据包。


下一主题潜在语义索引