Iptables深度解析:四表五链与动作参数

发布时间:2023年12月25日

Iptables是Linux系统中强大的网络流量控制工具,它通过四种主要的表(raw、mangle、nat、filter)和五条链(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING)来实现对数据包的过滤、修改和地址转换。

表的概述

在iptables中,有以下四种主要的表用于分类和管理规则:

  1. raw表:这是数据包处理的第一个阶段,主要用于决定数据包是否应被跟踪或被特定的连接跟踪模块处理。在raw表中设置的规则通常用于绕过数据包的连接跟踪。

  2. mangle表:此表用于修改数据包的标记或元数据,如TTL(Time To Live)、TOS(Type of Service)等。这些修改可以影响数据包在网络中的路由和优先级。

  3. nat表:网络地址转换表,主要用于实现源NAT(SNAT)和目标NAT(DNAT)。SNAT用于改变数据包的源IP地址,通常用于多主机共享一个公网IP的情况;DNAT则用于改变数据包的目标IP地址,常用于提供对外服务的服务器。

  4. filter表:这是默认的数据包过滤表,包含INPUT、OUTPUT和FORWARD三条链。filter表中的规则主要用于决定数据包是否应该被接受、丢弃或者继续传递。

链的作用及顺序

INPUT链

INPUT链用于处理目标为本地系统的数据包。它检查数据包是否是发往本地系统的,并根据规则执行相应操作,如接受(ACCEPT)或丢弃(DROP)数据包。该链的顺序为:

  1. raw表中PREROUTING链
  2. mangle表中PREROUTING链
  3. NAT表中PREROUTING链
  4. filter表中INPUT链
  5. mangle表中INPUT链

OUTPUT链

OUTPUT链用于处理由本地系统发出的数据包。它检查数据包是否由本地系统发出,并根据规则执行相应操作。该链的顺序为:

  1. mangle表中OUTPUT链
  2. NAT表中OUTPUT链
  3. filter表中OUTPUT链
  4. raw表中OUTPUT链

FORWARD链

FORWARD链用于处理通过系统转发的数据包。它检查数据包是否需要通过系统转发,并根据规则执行相应操作。该链的顺序为:

  1. raw表中PREROUTING链
  2. mangle表中PREROUTING链
  3. NAT表中PREROUTING链
  4. filter表中FORWARD链
  5. mangle表中FORWARD链

PREROUTING链

PREROUTING链用于在数据包到达网络协议栈之前进行处理。它允许修改数据包的目标地址,并决定数据包的路由方向。该链的顺序为:

  1. raw表中PREROUTING链
  2. mangle表中PREROUTING链
  3. NAT表中PREROUTING链

POSTROUTING链

POSTROUTING链用于在数据包离开网络协议栈之前进行处理。它允许修改数据包的源地址,并决定数据包的发送方向。该链的顺序为:

  1. mangle表中POSTROUTING链
  2. NAT表中POSTROUTING链
  3. raw表中OUTPUT链

动作的含义

在iptables规则中,可以使用多种动作来对数据包进行处理。以下是常用动作的含义:

  • ACCEPT:接受数据包,允许其通过防火墙。
  • DROP:丢弃数据包,阻止其通过防火墙。
  • SNAT:源地址转换,修改数据包的源 IP 地址。
  • DNAT:目标地址转换,修改数据包的目标 IP 地址。
  • MASQUERADE:伪装,用于动态地址转换,将私有 IP 地址转换为公共 IP 地址。

参数的使用

在iptables规则中,可以使用以下参数来匹配和处理数据包:

  • -s:源地址参数,用于匹配数据包的源 IP 地址。
  • -d:目标地址参数,用于匹配数据包的目标 IP 地址。
  • -m:模块参数,用于加载指定的扩展模块,如状态跟踪(state)模块、TCP/UDP 端口模块等。
  • -p:协议参数,用于匹配数据包的协议类型,如 TCP、UDP、ICMP 等。

这些参数可以与规则中的条件和动作结合使用,以实现对数据包的精确匹配和处理。

总结,iptables通过灵活运用四表五链和各种动作参数,能够实现精细的网络流量控制和安全策略。理解这些基础概念和用法,对于管理和优化Linux系统的网络环境至关重要。

文章来源:https://blog.csdn.net/qq_29752857/article/details/135205181
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。