美文网首页
iptables介绍

iptables介绍

作者: leeliang | 来源:发表于2022-12-27 17:01 被阅读0次

    iptables是什么

    iptables是linux中进行网络规则配置的工具,netfilter工作在内核空间,iptables设置的规则是通过netfilter进行生效的。
    下图展示了各个协议栈以及iptables中规则的应用情况


    image.png image.png

    netfilter hooks

    netfilter 提供了 5 个 hook 点。包经过协议栈时会触发内核模块注册在这里的处理函数 。触发哪个 hook 取决于包的方向(是发送还是接收)、包的目的地址、以及包在上一个 hook 点是被丢弃还是拒绝等等。

    下面几个 hook 是内核协议栈中已经定义好的:

    • NF_IP_PRE_ROUTING: 接收到的包进入协议栈后立即触发此 hook,在进行任何路由判断 (将包发往哪里)之前
    • NF_IP_LOCAL_IN: 接收到的包经过路由判断,如果目的是本机,将触发此 hook
    • NF_IP_FORWARD: 接收到的包经过路由判断,如果目的是其他机器,将触发此 hook
    • NF_IP_LOCAL_OUT: 本机产生的准备发送的包,在进入协议栈后立即触发此 hook
    • NF_IP_POST_ROUTING: 本机产生的准备发送的包或者转发的包,在经过路由判断之后, 将触发此 hook

    iptables基础概念

    iptables 表

    先来看看 iptables 提供的 table 类型。这些 table 是按规则类型区分的。

    Filter Table

    filter table 是最常用的 table 之一,用于判断是否允许一个包通过。

    在防火墙领域,这通常称作“过滤”包(”filtering” packets)。这个 table 提供了防火墙 的一些常见功能。

    NAT Table

    nat table 用于实现网络地址转换规则。

    当包进入协议栈的时候,这些规则决定是否以及如何修改包的源/目的地址,以改变包被 路由时的行为。nat table 通常用于将包路由到无法直接访问的网络。

    Mangle Table

    mangle (修正)table 用于修改包的 IP 头。

    例如,可以修改包的 TTL,增加或减少包可以经过的跳数。

    这个 table 还可以对包打只在内核内有效的“标记”(internal kernel “mark”),后 续的 table 或工具处理的时候可以用到这些标记。标记不会修改包本身,只是在包的内核 表示上做标记。

    Raw Table

    iptables 防火墙是有状态的:对每个包进行判断的时候是依赖已经判断过的包。

    建立在 netfilter 之上的连接跟踪(connection tracking)特性使得 iptables 将包 看作已有的连接或会话的一部分,而不是一个由独立、不相关的包组成的流。连接跟踪逻 辑在包到达网络接口之后很快就应用了。

    raw table 定义的功能非常有限,其唯一目的就是提供一个让包绕过连接跟踪的框架。

    Security Table

    security table 的作用是给包打上 SELinux 标记,以此影响 SELinux 或其他可以解读 SELinux 安全上下文的系统处理包的行为。这些标记可以基于单个包,也可以基于连接。

    iptables 规则(链)

    对于各个具体的链而言:

    • INPUT 链:处理来自外部的数据。
    • OUTPUT 链:处理向外发送的数据。
    • FORWARD 链:数据转发。通过路由表后发现目的地址非本机,则匹配该链中的规则。
    • PREROUTING 链:处理刚到达本机并在路由转发前的数据包。
    • POSTROUTING 链: 处理即将离开本机的数据包。

    iptables 常用命令

    iptables -t filter -L

    参考资料

    1. A Deep Dive into Iptables and Netfilter Architecture
    2. iptables与netfilter架构
    3. iptables 概念、原理及相关操作介绍

    相关文章

      网友评论

          本文标题:iptables介绍

          本文链接:https://www.haomeiwen.com/subject/jxbnqdtx.html