基于Linux的Netfilter处理数据包的过程分析

来源 :硅谷 | 被引量 : 0次 | 上传用户:rzq1988
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]防火墙技术在保护网络安全方面的作用越来越明显。相比较window,Linux有更好的网络性能,因此基于Linux的Netfilter技术的使用越来越广泛。先分析Netfilter技术的特点,然后从两个方面对其进行详细分析:Netfilter的工作原理和Netfilter对数据包的处理过程,最后简要分析Netfilter应用开发及其优越性。
  [关键词]Netfilter数据包钩子函数
  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0710041-01
  
  网络在经济和生活的各个领域正在迅速普及,众多的企业、组织、政府部门与机构都在组建和发展自己的网络,并连接到Internet上。为了保护组织资源不泄露,不受到病毒侵袭,黑客攻击,网络安全越来越受到人们的重视。Linux良好的网络性能和开放源代码的特点,使越来越多的用户选择了Linux作为其防火墙的操作平台,本文正是针对当前流行的Linux中采用的Netfilter技术进行相关分析。
  
  一、Netfilter的技术特点
  
  Netfilter技术对ipchains进行了改进:它摒弃了ipchains不区分数据包是单纯的进入包、外出包或中转包的做法,同时为每种网络协议(IPv4、IPv6等)定义一套钩子函数,这些钩子函数在数据包流过协议栈的几个关键点被调用;Netfilter内核中,任何模块可以对每种协议的一个或多个钩子进行注册,实现挂载,这样当某个数据包被传递给Netfilter框架时,内核能检测是否有任何模块对某种协议和钩子函数进行了注册[1]。如果是注册了,这些模块就调用注册时使用的回调函数对数据包进行检查或修改,然后决定是丢弃还是接受数据包;Netfilter位于Linux的IP层,它的防火墙的代码与实现IP层的代码完全分离,从而构成不同的模块,使网络层和防火墙在结构上很清晰,防火墙代码修改和功能扩充更加容易。
  
  二、Netfilter技术分析
  
  Netfilter是Linux内核实现数据包过滤、网络地址转换(NAT)、数据包处理等的功能框架。相对于原来的ipchains防火墙,Netfilter防火墙以更好的结构重新构造,并实现了许多新功能。
  (一)Netfilter的工作原理。Netfilter的设计为Linux内核中其它模块动态参与IP层中的数据包处理提供了途径。其实现方法是:
  1. 在内核中建立了一个函数指针链表,即钩子函数链表,加入到链表中的函数指针所指的函数称为钩子函数(Hook Function)。当内核模块需要参与IP层中对数据包的处理时,通过调用Netfilter中钩子函数的注册函数,注册内核模块的数据包处理函数,Netfilter将在钩子函数链表中记录下此模块中的数据包处理函数指针。
  2. IP层在数据包处理过程中,会检查相应的钩子函数链表中是否有钩子函数被注册:如果存在注册的钩子函数,便会调用此函数,并且根据该函数的处理结果,决定是继续完成IP层中的后续处理过程,还是丢弃此数据包,中断数据包的传输;如果不存在注册的钩子函数,则继续完成IP层中的后续处理。
  3. 当内核模块不需要参与IP层的数据包处理时,调用Netfilter钩
  子注销函数,Netfilter从钩子函数链表中去掉此钩子函数指针,这样IP层检测不到钩子函数的存在,会继续其后续操作。
  钩子和挂载函数是Netfilter架构中的核心部分。Linux内核的Netfil
  Ter框架为IPv4协议实现了五个钩子函数挂载点,分别为:NF_IP_PRE_ROUT
  ING,NF_IP_LOCAL_IN,NF_IP_FORWARD,NF_IP_POST_ROUTING,NF_IP_LOC
  AL_OUT。当数据包流经IPv4协议栈的五个挂载点时,内核就会调用在挂载点注册的回调函数对数据包进行处理。Netfilter挂载点回调函数的调用代码是通过NF_HOOK宏嵌入在网络协议栈的代码之中的,其定义在include/li
  nux/netfilter.h中。
  (二)Netfilter对数据包的处理过程。基于Linux的Netfilter防火墙设计中,其对数据包的处理过程如图1所示:
  图1Netfilter中数据包的处理过程
  图1中共有5个钩子函数(即HOOK),数据包从左边进入系统,进行IP校验以后,数据包经过第一个钩子函数链表NF_IP_PRE_ROUTING进行处理;然后就进入路由代码,决定该数据包是需要转发还是发给本机;若该数据包是发给本机的,则经过钩子函数链表NF_IP_LOCAL_IN处理后传递给上层协议;若该数据包应该被转发,则它被NF_IP_FORWARD处理;转发的数据包经过最后一个钩子函数链表NF_IP_POST_ROUTING处理以后,再传输到网络上。本地产生的数据包经过钩子函数链表NF_IP_LOCAL_OUT处理后,进行路由选择处理,然后经过NF_IP_POST_ROUTING处理并发送到网络上。另外,还可以使用内核模块在Netfilter的五个钩子函数链表上挂载一个或者多个这样的钩子函数。这样当有数据包进入钩子点处理时,将查找被挂载的函数,然后调用这些函数对数据包进行处理。
  (三)Netfilter应用和开发。一般而言基于Netfilter的应用开发有两种[2]:从用户空间的角度进行开发,这种开发主要是如何充分发挥内核所提供的防火墙功能,它不能为防火墙增加基本功能模块;另外就是从内核空间的角度进行开发。这种方法不仅能充分发挥现有功能,而且还能添加新的功能模块。
  Netfilter具有良好的框架和拓展性,这使得开发人员无需过多涉及内核协议栈的改动。开发基于Netfilter框架的内核模块一般有一下几个步骤:分析功能需求,确定要在哪几个钩子挂载点处注册钩子函数;按照钩子函数的接口规范编写钩子函数;在挂载点处注册钩子函数。
  
  参考文献:
  [1]邹思轶,嵌入式Linux设计与应用[M].北京:清华大学出版社,2002.
  [2]姚晓宇、赵晨,Linux内核防火墙Netfilter实现与应用研究[J].计算机工程,2003(5).
其他文献
[摘要]在现代网络办公形式中,各种形式的INTERNET网络链接形式各有利弊,在不同形式的环境中发挥的巨大的作用,其中由网络硬件防火墙作路由器上网的链接方式,是小型企业和组织使用的最广泛的一种上网工作方式。对该系统进行相应的配置,使我们的网络工作得到有效的安全保障。  [关键词]网络硬件防火墙NTERNET安全配置  中图分类号:TJ8文献标识码:A文章编号:1671-7597(2009)0710
期刊
[摘要]详细介绍ARM Cortex-M3架构的无线触摸点菜系统的组成和程序的设计。  [关键词]ARM Cortex-M3处理器射频通信触摸操作电脑上位机  中图分类号:TN92文献标识码:A文章编号:1671-7597(2009)0710024-01    一、系统设计    (一)设计思路  该系统要求设计一套具有射频通信功能的短距离触摸通信系统,实现触摸端的控制信息能够以无线传输的方式发送
期刊
中图分类号:TP2文献标识码:A文章编号:1671-7597(2009)0710033-02    一、引言    随着社会经济的发展和现代科学技术的进步,特别是网络的快速发展和普及,为办公自动化提供了很好的发展契机。办公自动化(Office Automation,简称OA),顾名思义,就是让工作中的各项活动实现“自动化”。自动化实现的媒介就是通过计算机及计算机网络,以及其他的电子技术。美国麻省理
期刊
[摘要]Web日志挖掘技术是Web数据挖掘中最重要的应用。通过对挖掘服务器日志文件的分析和研究,可以对网站的组织结构及其性能进行改进,增加个性化服务,发现潜在的读者群体。数据预处理关系到Web日志挖掘的质量。数据预处理包括数据清理、用户识别、会话识别、路径补充、格式化数据。  [关键词]数据挖掘Web日志挖掘数据预处理  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)07
期刊
中图分类号:TN94文献标识码:A文章编号:1671-7597(2009)0710013-01    目前,广电网络正面临着数字电视的变革,随着网络技术的不断发展,新业务的出现促进了业务模式的变化和广电网络技术的不断进步,同时也带来了新的市场机会和发展可能,使广电网络的运营面临着新的机遇和挑战,用EPON技术构建双向网络,可实现光纤到户,大大加快全民的信息化进程。  CATV(共天线电视/有线电视
期刊
[摘要]介绍一种新型的简易温度测量系统电路。该系统采用一种新的电流/脉宽转换电路,与常用的温度测量系统比较,具有测量范围广、精度高、构成简单、成本低廉等优点。  [关键词]AD590传感器555集成电路温度测量系统  中图分类号:TN7文献标识码:A文章编号:1671-7597(2009)0710011-01    一、引言    目前工业上温度测量系统存在下列问题:(1)存在电压信号损失和噪声干
期刊
[摘要]PSO算法由于具有独特的信息共享机制而得到广泛应用。介绍人工神经网络的基本原理以及网络学习及泛化的方法,以此为基础将POS算法作为学习算法用于人工神经网络训练,给出基于PSO的神经网络学习算法的设计方法,并通过实验,验证PSO算法在训练集错误率方面的优越性。  [关键词]PSO算法人工神经网络网络学习与泛化  中图分类号:TP2文献标识码:A文章编号:1671-7597(2009)0710
期刊
[摘要]雷电是常见的自然现象,常常是造成众多灾害性事故的直接或间接原因,因此,对雷电防护保障体系研究具有重要意义。  [关键词]雷电防障体系 研究  中图分类号:TN97 文献标识码:A 文章编号:1 671—7597(2009)1010159—01    雷电防护保障体系是系统工程,应当用系统工程的观点建立系统的技术标准。这里至少有四层意义:一是广泛性,技术法规应当是国家级的标准,而且与国际先进
期刊
[摘要]利用稚化教学使抽象的生物学概念变成学生可感知的、便于理解的知识,有利于学生对生物学概念的掌握和灵活应用,对于整个生物学课程的学习起到非常重要作用。  [关键词]生物学概念 稚化思维 稚化教学  中图分类号:G42 文献标识码:A 文章编号:1 671—7597(2009)10101 67—01    生物学概念是通过抽象、概括而形成的对生物学研究对象的本质特征或共同属性的反应,正确的生物学
期刊
[摘要]介绍目前我国秸秆利用的现状,同时指出作为绿色资源的秸秆在今后的发展趋势。通过有效的利用秸秆,对农作物秸秆的增值、农民的增收、减少焚烧秸秆带来的环境污染、发展生态畜牧业和退耕还林还草有较大的推动作用。  [关键词]玉米秸秆 现状 发展趋势  中图分类号:X7 文献标识码:A 文章编号:1 671—7597(2009)10101 58—01    一、引言    秸秆通常指小麦、水稻、玉米、薯
期刊