曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 2836|回复: 0
打印 上一主题 下一主题

filter 机制

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2012-5-8 01:15:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
filter (过滤) 机制如下图所示:



上图中的两个路由表实际上为同一个。在 Linux 里,可以使用 netstat -rn 命令查看路由表的内容,路由表决定了一个数据包的传输路径。

1. 如果数据包的目的地是本机进程时

一个数据包由图中的”数据包进“所标识位置进入,接着被送入路由表,由路由表中的内容决定该数据包的传输路径,这里假设是送到”本机进程“,因此该数据包就会被送入 ”INPUT 链“。此时,如果 INPUT链 中的规则不允许该数据包进入,那么该数据包被丢弃;反之,如果 INPUT链 中的规则允许数据包进入,那么该数据包被送入本机进程位置。从这里可见,INPUT 链机制是为了保护本机进程而设计的。

2. 当本机进程生成的数据包往外发送时

如果本机进程生成一个数据包向外发送,那么该数据包首先被送入路由表,并根据路由表中内容来决定该数据包的传输路径。接着,数据包被送入 OUTPUT链,此时如果 OUTPUT链 中的规则不允许该数据包离开本机,那么该数据包被丢弃;反之,那么数据包经由上图所标识的 “数据包出” 位置送离本机。

由上面 1, 2 两点可以看到,如果数据包和 “本机” 有所关联,那么 “数据包进” 和 “数据包出” 代表同一个接口,比如 eth0 。

3. 当数据包穿过本机

这个例子有个先决条件,就是防火墙部署在网关位置,也就是网关式防火墙。所以,当一个数据包穿过防火墙的另一边时,该数据包会先由 “数据包进“ 的位置进入,接着数据包进入路由表,由于该数据包的目的端不是本机,因此系统会由路由表的内容来决定,数据包是要由另一个接口送出,并立即送入 FORWARD 链,此时若是 FORWARD 链内的规则不允许该包通过,那么数据包就会被丢弃;反之,数据包由 ”数据包出“ 的位置送离本机。

由上看到,如果数据包与 ”本机“ 无关,那么 ”数据包进“ 和 ”数据包出“ 分别代表两个不同的接口。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-7 06:14 , Processed in 0.079261 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表