iptables

作者: Dakini_Wind | 来源:发表于2022-04-16 11:02 被阅读0次

    iptables

    iptables的底层实现是netfilter,其架构是在整个网络流程的若干位置放置一些钩子,并在每个钩子上挂载一些处理函数进行处理。它作为一个通用的、抽象的框架,提供一整套hook函数的管理机制,是的数据包过滤、包处理(设置标志位、修改TTL)、地址伪装、网络地址转换、透明代理、访问控制、基于协议类型的链接跟踪,甚至带宽限速等功能成为可能。

    • 5 chain

      IP层的5个钩子点的位置,对应iptables就是5条内置链,分别是PREROUTING、POSTROUTING、INPUT、OUTPUT和FORWAR。支持用户自定义链。

      • PREROUTING:可以在此处进行DNAT(destination NAT POSTROUTING,用于互联网访问局域网)
      • POSTROUTING:可以在此处进行SNAT(source NAT POSTROUTING,用于局域网访问互联网)
      • INPUT:处理输入本地进程的数据包
      • OUTPUT:处理本地进程的输出数据包
      • FORWARD:处理转发到其他机器/network namespace的数据包
    • 5 table

      优先级从高到低为:raw、mangle、nat、filter、security,不支持用户自定义表。

      • filter表:用于控制到达某条链上的数据包是否继续放行、直接丢弃(drop)或拒绝(reject)
      • nat标:用于修改数据包的源和目的地址
      • mangle表:用于修改数据包的IP头信息
      • raw表:iptables是有状态的,即iptables对数据包有链接追踪(connection tracking)机制,而raw是用来去除这种追踪机制的
      • security表:用于在数据包上应用SELinux

      不是每个链上都拥有这5个表:

      • raw存在于PREROUTING和OUTPUT。对应输入和输出经过的第一条链。
      • mangle存在于所有链中。
      • nat(SNAT)存在于POSTROUTING和INPUT。
      • nat(DNAT)存在于PREROUTING和OUTPUT。
      • filter、security存在于FORWARD、INPUT、OUTPUT。
    • rule

      iptables的表示所有规则的5个逻辑集合,一跳iptables规则包含两部分信息:匹配条件和动作。

      匹配条件,即匹配数据包被这条iptables规则“捕获”的条件,例如协议类型、源IP、目的IP、源端口、目的端口、连接状态等。每条iptables规则允许多个匹配条件任意组合,从而实现多条件的匹配,多条件之间是逻辑与关系。

      常见动作有:

      • DROP:直接将数据包丢弃。应用场景:不让某个数据源意识到系统的存在,可以用来模拟宕机。
      • REJECT:给客户端返回connection refused或destination unreachable报文,应用场景:不让某个数据源访问系统,提示这里没有想要的服务内容。
      • QUEUE:将数据包放入用户空间的队列,供用户空间的程序处理。
      • RETURN:跳出当前链,该链后续规则不再执行。
      • ACCEPT:统一数据包通过,继续执行后续的规则。
      • JUMP:跳转到其他用户自定义的链继续执行。

    相关文章

      网友评论

          本文标题:iptables

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