美文网首页程序员
iptables学习笔记

iptables学习笔记

作者: 无知者云 | 来源:发表于2018-03-27 09:51 被阅读0次

iptables需要处理两个维度的信息:

  1. 在什么时候应用配置,这便是iptables中的链(chain),对应于netfilter的hook
  2. 应用什么配置,即iptables中的表(table)

iptables其实是运行与用户空间的,其本身并不是Linux内核的一部分,真正完成防火墙功能是Linux内核的netfilter模块,iptables通过netfilter所提供的钩子(hook)通知netfilter需要完成哪些功能。

iptables在默认情况下包含5个链,分别对应netfilter的5个hook:

Chain 对应的hook 作用时机
PREROUTING NF_IP_PRE_ROUTING 数据包进入内核网络模块之后,获得路由之前
INPUT NF_IP_LOCAL_IN 数据包被决定路由到本机之后
FORWARD NF_IP_FORWARD 数据包被决定路由到其他主机之后
OUTPUT NF_IP_LOCAL_OUT 离开本机的数据包进入内核网络模块之后
POSTROUTING NF_IP_POST_ROUTING 对于离开本机或者FORWARD的数据包,当数据包被发送到网络之后

链执行顺序

  • 对于目的地为本机的数据包:PREROUTING -> INPUT
  • 对于目的地为其他主机的数据包:PREROUTING -> FORWARD -> POSTROUTING
  • 对于本机产生的数据包:OUTPUT -> POSTROUTING

iptables中的表所表示的是防火墙中某一类配置,有些配置可能对所有的chain都生效(比如mangle表),而有些配置能对某些chain生效(比如filter表)。

iptables中包含了以下5张表:

  • filter表:估计是iptables里最常用的表了,用于控制到达某个chain的数据包是否可以继续放行。
  • nat表:用于修改数据包的源地址和目的地地址。
  • mangle表:用于修改数据包的IP头信息。
  • raw表:iptables是有状态的,也即iptables对数据包有连接追踪(connection tracking)机制,而raw便是用来去除这种最终机制。
  • security表:在数据包上使用SELinux。

至于某个表中包含了哪些chain,请参考:


表与链对应

连接跟踪

数据包通常是属于某个连接(connection)的,当数据包经过iptables时,从iptables的连接跟踪机制可以得知当前数据包所对应的连接的状态,主要有以下状态:

  • NEW,请求一个新连接,比如一个全新的HTTP请求
  • ESTABLISHED,数据包已经属于某个连接
  • RELATED,数据包已经属于某个连接,但是又请求一个新连接
  • INVALID,数据包不属于任何连接

iptables配置例子参考这里

相关文章

  • iptables学习笔记

    自定义firewall 多个网卡接口 放行特定IP 端口及协议 参考资料 Iptables (简体中文)

  • iptables学习笔记

    iptables需要处理两个维度的信息: 在什么时候应用配置,这便是iptables中的链(chain),对应于n...

  • iptables学习笔记

    iptables防火墙简介 基于包过滤防火墙 OSI 二三四层 iptables+squid实现7层过滤 Netf...

  • iptables学习笔记

    Iptable Study 最近经常碰到iptables的问题。现在找个时间专门研究一下。 iptables是什么...

  • iptables学习笔记

    参考 第九章、防火墙与 NAT 服务器 不同Linux内核,有不同的报文过滤软件 Linux Kernal 2.0...

  • 《Linux实践技能》学习笔记 day09

    iptables学习总结 netfilter/iptables(简称为iptables)组成Linux平台下的包过...

  • iptables 安全

    注解;来自某位大神的详解,做个笔记。 iptables防火墙简介 Netfilter/Iptables(以下简称I...

  • CentOS7下防火墙相关

    本文章仅作为个人笔记 iptables相关:(更改完配置需运行/etc/rc.d/init.d/iptables ...

  • iptables 笔记

    好文:https://www.digitalocean.com/community/tutorials/a-dee...

  • iptables学习

    简介   当主机收到一个数据包后,数据包先在内核空间中处理,若发现目的地址是自身,则传到用户空间中交给对应的应用程...

网友评论

    本文标题:iptables学习笔记

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