欢迎来到天天文库
浏览记录
ID:18405127
大小:181.50 KB
页数:5页
时间:2018-09-17
《netfilteriptables防火墙技术(张丽)1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Netfilter/Iptables防火墙技术江苏省无锡立信职教中心校张丽摘要:防火墙作为一种网络或系统之间强制实行的访问控制机制,是确保网络安全的重要手段,有基于通用操作系统设计的防火墙,也有基于专用操作系统设计的防火墙。由于Linux源代码的开放性,所以,Linux成为研究防火墙技术的一个很好的平台。本文介绍Linux的防火墙技术Netfilter/Iptables在Linux内核中的具体实现。讨论了Linux内核防火墙套件Netfilter实现的一些基本技术:包过滤。Linux下常用的防火墙规则配置软件Iptables。关键词:防火墙,Netfilter,Iptables一、开发背景在
2、网络安全问题日趋严峻的今天,防火墙作为第一道防线起着关键的作用。防火墙可以对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。从而对防火墙的研究成为研究热点。二、防火墙技术1、防火墙概述防火墙是一个或一组实施访问控制策略的系统。它在内部网络(专用网络)与外部网络(功用网络)之间形成一道安全保护屏障,防止非法用户访问内部网络上的资源和非法向外传递内部信息,同时也防止这类非法和恶意的网络行为导致内部网络运行遭到破坏。它基
3、本功能是过滤并可能阻挡本地网络或者网络的某个部分与Internet之间的数据传送(数据包)。防火墙结构可以采用双宿主主机结构、主机过滤结构、子网过滤等多种结构。2、包过滤技术包过滤技术是防火墙的一种最基本的实现技术,具有包过滤技术的装置是用来控制内、外网络间数据流的流入和流出,包过滤技术中的数据包大部分是基于TCP/IP协议平台的,其中包括网络层的IP数据包,运输层的TCP和UDP数据包以及应用层的FTP、Telnet和HTTP等应用协议数据包三部分内容。在每一个数据包中有包含特定信息的报头,主要有IP源地址、IP目标地址、协议、TCP或UDP源端口、TCP或UDP目标端口及ICMP消息类型
4、。另外在路由器中还有一些数据报头中不含有的有关信息,如数据包到达及送出端口等。三、Netfilter/Iptables1、Netfilter在IP协议栈中的总体框架Netfilter是Linux2.4.x以后的内核中用于包处理的抽象、通用化的框架,它为IPv4、IPv6、Appletalk等可以多达32种的网络协议定义了一套hook,这些hook在数据报流过协议栈的几个关键点被调用,如IPv4协议栈为了实现对Netfilter架构的支持,IPPACKET在IPv4协议栈上的游历路线之中,仔细选择了五个参考点。在这五个参考点上,各引入了一行对NF_HOOK()宏函数的一个相应的调用。这个宏函数
5、定义如下:#defineNF_HOOK(pf,hook,skb,indev,outdev,okfn)(list_empty(&nf_hooks[(pf)][(hook)])?(okfn)(skb):nf_hook_slow((pf),(hook),(skb),(indev),(outdev),(okfn)))#else#defineNF_HOOK(pf,hook,skb,indev,outdev,okfn)(okfn)(skb)#endif从这个宏函数的定义能够清楚地理解,如果编译内核时没有配置Netfilter选项,就和放钩子的地方没有放钩子一样,将直接执行okfn函数指针指向的函数。如
6、果编译内核时配置了Netfilter而且放钩子的地方有钩子,就会执行nf_hook_slow(),从而执行各钩子下的钩子函数。而所有钩子函数都将去执行一个重要的函数IPt_do_table(),在这个函数中一个重要功能就是去进行规则的匹配。图一阐述了PACKET经过协议栈的过程。当一个PACKET通过以太网卡从左边进入IP协议栈,先进行IP校验处理,经过第一个钩子函数在NF_IP_PRE_ROUTING点进行处理,然后进入路由代码,判断这个PACKET的目标地址以决定该PACKET是需要转发还是发给本机;若PACKET是发给本地的,则该PACKET经过钩子函数在NF_IP_LOCAL_IN点
7、的处理后传给上层协议;若该PACKET应该被转发,那就由NF_IP_FORWARD点的钩子函数进行处理;经过转发的PACKET在NF_IP_POST_ROUTING点,经过最后一个钩子函数的处理后被传到网络上;本地产生的PACKET经过钩子函数在NF_IP_LOCAL_OUT点处理后,进行路由选择,然后经过NF_IP_POST_ROUTING处理再发送到网络上。由此可见,5个HOOK的位置,掌管了全部数据包的
此文档下载收益归作者所有