Linux 系统内核新型包过滤结构的使用
一、包如何穿过(traverse)过滤
内核从"lter"表格的三个列表(lists)开始,这三个列表叫做 rewall chains(防
火墙链)或就叫做 chains(链)。这三个链分别为 INPUT、OUTPUT 以及 FORWARD。
各链(chains)如下图所示:
其中三个圈代表前述的三个链,当一个包抵达上图其中的一个链时,相应的链就会被
检验(examined)以决定如何处理这个包。如果链认为应该丢弃(DROP)这个包,则
将该包丢弃;如果链认为应该接受(ACCEPT)该包,那么它将继续在图中穿越。
一个链(chain)其实就是众多规则(rules)钟的一个检查清单 (checklist)。每
一条规则的形式就像这样:"如果包的头是这样,就这样处理该包"。如果规则的设定和包
不匹配,则交由链中的下一条规则继续处 理。直到最后没有余下的规则可以参考,那么内
核就会根据链的策略(policy)以决定如何处理。在一个安全性强的系统中,策略通常都
会要求内核丢弃该 包。
(1)当一个包进入时(假设通过 Ethernet 网卡),内核首先看包的目的地
(destination):这被称为路由(routing)。
(2)如果目的地址为本机,这个包就按图时下行至 INPUT 链,如果能够通过,则进
入后面的包处理过程。
(3)否则,如果内核没有启动转发功能,或者它不知道如何转发这个包,那么该包
就会被丢弃。如果转发功能已经启动,同时包指向另一网络接口(如果连接有另一网络),
那么这个包将按图示向右行至 FORWARD 链。如果该包未被接受,那么它将会被发送出
去。
评论0
最新资源