netfilter框架的分析

netfilter框架的分析

ID:18640830

大小:131.50 KB

页数:16页

时间:2018-09-20

netfilter框架的分析_第1页
netfilter框架的分析_第2页
netfilter框架的分析_第3页
netfilter框架的分析_第4页
netfilter框架的分析_第5页
资源描述:

《netfilter框架的分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、摘要防火墙作为一种网络或系统之间强制实行的访问控制机制,是确保网络安全的重要手段,有基于通用操作系统设计的防火墙,也有基于专用操作系统设计的防火墙。由于Linux源代码的开放性,所以,Linux成为研究防火墙技术的一个很好的平台。 本文介绍Linux的防火墙技术netfilter/iptables在Linux内核中的具体实现。讨论了Linux内核防火墙套件netfilter实现的一些基本技术:连线跟踪、包过滤、地址转换、包处理。LINUX下常用的防火墙规则配置软件Iptables;从实现原理、配置方法以及功能特点的角度描述了LINUX防火墙的三种功能;并给出了一个LINUX防

2、火墙实例作为参考xj。关键字:防火墙NetfilterIptablesABSTRACT:Keywords:第一章防火墙概述1.1什么是防火墙防火墙是一个或一组实施访问控制策略的系统。它在内部网络(专用网络)与外部网络(功用网络)之间形成一道安全保护屏障,防止非法用户访问内部网络上的资源和非法向外传递内部信息,同时也防止这类非法和恶意的网络行为导致内部网络运行遭到破坏。它基本功能是过滤并可能阻挡本地网络或者网络的某个部分与Internet之间的数据传送(数据包)。数据包其实就是一段段的数据,其中同时包括了用来把它们发送到各自的目的地所必须的信息。你可以把数据包想象成一个邮包:数

3、据包本身就是邮包中的数据,而信封上则是所有用来把这些信息发送到正确的机器和正确的程序中去的书信抬头,它同时还包含着回信地址等方面的信息。它可以实施比较广泛的安全策略来控制信息流,防止不可预料的入侵破坏。防火墙结构可以采用双宿主主机结构、主机过滤结构、子网过滤等多种结构。目前防火墙主要运用的新技术包括透明网关技术、多级过滤技术、网络地址转换技术、Internet网关技术、安全服务器网络技术等。1.2防火墙的基本功能1.防火墙的设计策略遵循安全防范的基本原则——“除非明确允许,否则就禁止”。2.防火墙本身支持安全策略。3.如果组织机构的安全策略发生改变,可以加入新的服务。4.有先

4、进的论证手段或有挂钩程序,可以安装先进的论证方法。5.如果需要,可运用过滤技术允许和禁止服务。6.可以使用FTP和telnet等服务代理,以便先进的论证手段可以被安装和运行在防火墙上。7.拥有界友好、易于编程的IP过滤语言,并可以根据数据包的性质进行包过滤。数据包的性质有目标和源IP地址、协议类型、源和目的TCP/UDP端口、TCP包的ACK位、出站和入站网络接口等。第二章Netfilter1.1Netfilter框架的分析1.1.1介绍Netfilter是Linux2.4实现的防火墙框架,Netfilter提供了一个抽象、通用化的框架定义一个子功能实现的就是包过滤子系统。N

5、etfilter由一系列基于协议栈的钩子组成,这些钩子都对应某一具体的协议。每一个协议对应的钩子函数都定义在协议具体的头文件中,如对应于IPv4的钩子函数就定义在内核头文件:/Linux/netfilter_ipv4.h中。下面一副图概括了装在网关上的NetFilter的框架结构图,从图中可以看到一个数据包可能经过的路径,其中用[]扩起来的称为检查点,当数据包到达这个点时,就要停下来进行一些检查。这里检查点的名称使用的是iptables中名称,具体到NetFilter中可能就要改为那些所谓的钩子(Hook)函数了。[1]NF_IP_PRE_ROUTING[2]NF_IP_LO

6、CAL_IN[3]NF_IP_FORWARD[4]NF_IP_POST_ROUTING[5]NF_IP_LOCAL_OUT内核的任何模块可以对每种协议的一个或多个钩子进行了注册,实现挂接。这样当某个数据包被传递给netfilter框架时,内核能检测是否有任何模块对协议和钩子函数进行了注册,若注册了,则调用该模块注册时使用的回调函数。这样,这些模块就有机会检查(可能还会修改)、丢弃该数据包,以及指示netfilter将该数据包传入用户空间的队列。那些排除的数据包被传递给用户空间进行异步处理。个用户进程能检查、修改数据包,甚至可以重新将该数据包通过离开内核的同一个钩子函数以注入到

7、内核中。1.1.2LinuxIP网络协议栈分析为了更好的了解Netfilter的工作机理,非常有必要先来分析一下Linux2.4系列内核对于网络数据是如何处理的。以下的分析全部基于以太网和IPv4协议。1收到数据,中断发生通常的,当一块网卡接收到属于其自己MAC地址或者广播的以太网络数据帧时,就会引发一个中断,网卡驱动的中断处理程序获得机会,通过I/O,DMA复制网络帧数据到内存中。然后网络驱动程序将创建一个skb结构,将网络帧数据填充,设置时间戳,区分类型后,将skb送入对应的包接收队列(其实就是添加

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。