Chinaunix首页 | 论坛 | 博客
  • 博客访问: 106041
  • 博文数量: 36
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 390
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-10 21:00
文章存档

2011年(2)

2010年(3)

2009年(2)

2008年(29)

我的朋友

分类: 网络与安全

2008-04-20 14:53:28

 从图中可以看到:ipv4一共有5个钩子函数,分别为
     NF_IP_PRE_ROUTNG
    
     NF_IP_LOCAL_IN
 
     NF_IP_FORWARD
 
     NF_IP_POST_ROUTING
 
     NF_IP_LOCAL_OUT
 
 数据报从左边进入系统,进行IP效验后,数据报经过一个钩子函数,NF_IP_PRE_ROUTING[1]进行处理:然后进入路由代码,决定该数据包是需要转发,还是发给本机的;若该数据包是发给本机的,则该数据经过钩子函数 NF_IP_LOCAL_IN[2]处理以后,传递给上层协议;若该数据包转发则它被NF_IP__FORWARD[3]处理;经过转发的数据报经过最后一个钩子函数NF_IP_POST_ROUTING[4]处理以后,再传输到网络上。本地产生的数据经过钩子函数  NF_IP_LOCAL_OUT[5]处理后进行路由处理,然后,经过NF_IP_POST_ROUTING[4]处理后发送到网络上。
 
 
iptables规则链
ipatbles的作用在于为netfilter的处理提供相关的规则,这些规则具有“目标”,它们告诉netfilter,对来自某些源,前往某些目的过具有某些协议类型的数据包做些什么,如果某个数据包与规则匹配,则可以使用规则所确定的目标,“ACCEPT”允许该信息包通过,或目标“DROP”、“REJECT”,来组塞并杀死信息包,当然还可以执行其他管理员定义的目标。
 由于一条规则只定义了某一些类型的数据包,而对于其他的数据包,就需要另一条规则来描述,也就有了多中类型的规则存在,同时,这些规则均会被某一个netfilter钩子函数来处理,也就被同一个钩子函数处理的多条规则称为一条规则链,对应于netfilter框架中的5个检查点,iptables需要维护5条规则链:PREROUTING、FORWARD、POSTROUTING、INPUT、OUTPUT,他们在网络数据处理流程中的位置如图
  建立规则并将链防在适当位置之后,就可以开始进行真正的网络信息包过滤工作了。来自外界的信息包到达放火墙时,首先被PREROUTING规则链处理,这个信息包的目的决定信息包的走向,即进行路由。
  如果信息包的目的地是本地系统,那么,内核将他传递到INPUT链进行处理,通过着个规则链的相应处理后,即被系统上层应用程序接受。
   如果信息包源自系统内部,并且,此信息包要前往另一个外部系统,那么信息包传递到OUTPUT链,通过处理后。IP协议栈查看信息包头的信息进行路由,确定路由后,传给POSTROUTING规则链进行处理,根据规则链的“目标”来发送或丢弃该包。
   如果信息包源自外部系统,并前往外部系统,在通过PREOUTING处理后,即传给FORWARD规则链处理,处理完成后,IP协议栈进行路由,然后在传给POSTROUTING链处理发送。
  信息包的每次处理过程基本相同,它使用包头信息,与他所传递到的链中的每条规则进行比较,看是否与某条规则完全匹配。如果信息包与某条对则匹配,那么内核就对该信息包执行由该规则的目标指定的操作。但是,如果信息包与这条规则不匹配,那么它将与链中的下一条规则进行比较。最后,如果信息包与链路中的任何规则都不匹配,那呢内核将参考该链的策略,来决定如何处理该信息包,理想的策略应该告诉内核DROP该信息包,即丢弃该包。
 
iptables 规则表
iptables的规则链组织在3个不同的对则表中:filter、nat、mangle.其中filter针对过滤系统,nat针对地址转换系统,mangle针对策略路由和特殊应用,对则链分配如下
  • Filter: INPUT、FORWARD、OUPUT
  • NAT:    PREROUTING、POSTROUING、INPUT、OUTPUT
  • Mangle:  OUTPUT、POSTROUTING

 针对主机的安全性主要集中在filter表中的INPUT和output规则链。这两个关键字在添加规则的时候会用到。在内核编译了netfilter系统后,系统会自动建立这5个对则链和3个规则表。

 
 
阅读(1061) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~