iptables和netfilter

1.iptables和netfilter说明

  [1]netfilter/iptables组成Linux平台下的包过滤防火墙,iptables是用户空间的管理工具,netfilter是内核空间的包处理框架。

2.数据包处理流程

  

  这个还是很简单的,首先数据包进入PREROUTING链,之后根据路由决策进入INPUT(本机)还是FORWARD(转发),进入INPUT后会继续进入OUTPUT链,最后都走到POSTROUTING链。

  另外,如果加入各种规则之后,则数据包进入某个链之后,还要顺序执行链上的规则,如果匹配某个规则,则根据匹配的规则来处理数据包(例如ACCEPT、DROP或者REJECT),如果都不匹配则使用默认的策略处理数据包。

3.表、链、规则

  理论上,只要在链上添加规则就可以了,这样每个链上就有一个规则链表,只要数据包到链上之后,顺序检查这些规则就可以了。

  但是,实现中又把规则分为了四种类型,放到了四张表中,即raw、mangle、nat、filter,并且优先级raw > mangle > nat > filter,并且还有下面一张图,这个图从左往右是这四个表的优先级,并且说明了每个表可以添加到哪个链上,但是这个图和数据包的流程没有关系,这个图只是说明了规则之间的关系,正确的理解应该为:

    [1]每个规则肯定是位于某个链上,并且这个规则还在某个表中,其实就是这个规则的类型,这样当一个链上有多个规则时,便会根据规则类型的不同,有了优先级,优先级高的规则先检查。

    [2]iptables命令格式为:iptables [-t table] COMMAND chain CRETIRIA -j ACTION,可以看到-t是在最前面的,这就表示对于添加规则来说,规则的类型(表)是最重要的参数。

  最终,四张表、五条链的理解为:数据包依次进入链中进行处理,然后根据每个链上的规则的优先级,依次执行每个链上的规则。添加规则时,根据要添加的这个规则的作用,首先指定规则的类型,然后再配置这个规则的其他参数。

  

  

猜你喜欢

转载自www.cnblogs.com/ne-liqian/p/10053858.html
今日推荐