



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Netfilter/Iptables防火墙技术江苏省无锡立信职教中心校 张丽摘 要:防火墙作为一种网络或系统之间强制实行的访问控制机制,是确保网络安全的重要手段,有基于通用操作系统设计的防火墙,也有基于专用操作系统设计的防火墙。由于Linux源代码的开放性,所以,Linux成为研究防火墙技术的一个很好的平台。本文介绍 Linux的防火墙技术 Netfilter/Iptables 在 Linux 内核中的具体实现。讨论了Linux内核防火墙套件Netfilter 实现的一些基本技术:包过滤。Linux下常用的防火墙规则配置软件Iptables。关键词:防火墙,Netfilter,Iptables一、开发背景在网络安全问题日趋严峻的今天,防火墙作为第一道防线起着关键的作用。防火墙可以对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。从而对防火墙的研究成为研究热点。二、防火墙技术1、防火墙概述防火墙是一个或一组实施访问控制策略的系统。它在内部网络(专用网络)与外部网络(功用网络)之间形成一道安全保护屏障,防止非法用户访问内部网络上的资源和非法向外传递内部信息,同时也防止这类非法和恶意的网络行为导致内部网络运行遭到破坏。它基本功能是过滤并可能阻挡本地网络或者网络的某个部分与Internet之间的数据传送(数据包)。防火墙结构可以采用双宿主主机结构、主机过滤结构、子网过滤等多种结构。2、包过滤技术包过滤技术是防火墙的一种最基本的实现技术,具有包过滤技术的装置是用来控制内、外网络间数据流的流入和流出,包过滤技术中的数据包大部分是基于TCP/IP协议平台的,其中包括网络层的IP数据包,运输层的TCP和UDP数据包以及应用层的FTP、Telnet和HTTP等应用协议数据包三部分内容。在每一个数据包中有包含特定信息的报头,主要有IP源地址、IP目标地址、协议、TCP或UDP源端口、TCP或UDP目标端口及ICMP消息类型。另外在路由器中还有一些数据报头中不含有的有关信息,如数据包到达及送出端口等。三、Netfilter/Iptables1、Netfilter在IP协议栈中的总体框架Netfilter是Linux 2.4.x以后的内核中用于包处理的抽象、通用化的框架,它为IPv4、IPv6、Appletalk等可以多达32种的网络协议定义了一套hook,这些hook在数据报流过协议栈的几个关键点被调用,如IPv4 协议栈为了实现对 Netfilter 架构的支持,IP PACKET 在 IPv4 协议栈上的游历路线之中,仔细选择了五个参考点。在这五个参考点上,各引入了一行对 NF_HOOK() 宏函数的一个相应的调用。这个宏函数定义如下:#define NF_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#define NF_HOOK(pf,hook,skb,indev,outdev,okfn)(okfn)(skb)#endif从这个宏函数的定义能够清楚地理解,如果编译内核时没有配置Netfilter选项,就和放钩子的地方没有放钩子一样,将直接执行okfn函数指针指向的函数。如果编译内核时配置了Netfilter而且放钩子的地方有钩子,就会执行nf_hook_slow(), 从而执行各钩子下的钩子函数。而所有钩子函数都将去执行一个重要的函数IPt_do_table(),在这个函数中一个重要功能就是去进行规则的匹配。图一阐述了PACKET经过协议栈的过程。当一个PACKET通过以太网卡从左边进入IP协议栈,先进行IP校验处理,经过第一个钩子函数在NF_IP_PRE_ROUTING点进行处理,然后进入路由代码,判断这个PACKET的目标地址以决定该PACKET是需要转发还是发给本机;若PACKET是发给本地的,则该PACKET经过钩子函数在NF_IP_LOCAL_IN点的处理后传给上层协议;若该PACKET应该被转发,那就由NF_IP_FORWARD点的钩子函数进行处理;经过转发的PACKET在NF_IP_POST_ROUTING点,经过最后一个钩子函数的处理后被传到网络上;本地产生的PACKET经过钩子函数在NF_IP_LOCAL_OUT点处理后,进行路由选择,然后经过NF_IP_POST_ROUTING处理再发送到网络上。由此可见,5个HOOK的位置,掌管了全部数据包的可能出入口,我们只要在对应的位置对数据包进行操作,就能实现对数据包的各种处理。当HOOK截获数据包以后,将根据一些规则判断数据包的命运。用户通过注册一些规则检测函数来检测数据包,内核Netfilter将根据这些函数的返回值来决定数据包的命运。返回值有以下5种: NF_ACCEPT: 允许数据包通过 NF_DROP: 丢弃该数据包NF_STOLEN: 告诉内核,该数据包已被处理。NF_QUEUE: 将数据包排入队列,通常是将数据包发送给用户进程空间处理。NF_REPEAT: 再一次调用本HOOK。图一 NetFilter框架结构示意图Netfilter提供了包过滤(FILTER表),网络地址转换(NAT表)及包处理(MANGLE表)三种表(除了这三种表外,还可以扩展),对PACKET进行处理。这些表就是一些规则,FILTER表为系统缺省,由图一可知该表中包含了输入(INPUT)、输出(OUTPUT)和转发(FORWARD)三条链,当一个PACKET到达一个链时,内核检查这个链以决定如何处理这个PACKET,丢弃或允许继续穿过这个链。链是检查规则的集合,每一条链中都设定一条或数条规则,每一条规则都是这样定义的:“若PACKET头符合这样的条件,就这样处理这个PACKET”,当一个PACKET到达一个链时, 系统就会从第一条规则开始检查,看是否符合该规则所定义的条件,如条件满足,系统将根据该条规则所定义的方法处理该PACKET;如果不满足则继续检查下一条规则。最后,如果在该链中最终没有找到任何一条规则能和此PACKET匹配,该链就会根据系统事先定义的缺省方法处理PACKET。NAT包含PREROUTING,OUTPUT 以及POSTROUTING规则链,PREROUTING对需要转发的PACKET的目的地址进行转换,OUTPUT对本地PACKET的目的地址进行转换,POSTROUTING对需要转发的PACKET的源地址进行转换。另外根据协议,分别有TCP、UDP、ICMP协议的地址转换。地址转换(NAT)功能使从内部网进入外部网所有请求的IP地址都转为防火墙的IP地址,从而起到使内部网对外界来说是未知的空间,因此能更好地保护内部网,提高安全性的作用。而MANGLE表有PREROUTING和 OUTPUT两条规则链,在这两条规则链中可以对PACKET进行调整,如调整TOS、TTL、MARK,但不能进行IP源地址和目地址的转变。2、Iptables 防火墙规则配置管理工具Netfilter框架在内核中主要负责PACKET的获得和重新注入,而对PACKET的匹配预处理主要由规则表来完成。用户对防火墙的配置主要是指对规则表的操作,而Iptables就是设置Netfilter规则的配置工具。在Linux内核中Iptables用struct ipt_table表示,但实际描述表的数据结构是ip_table_info。关于规则的描述用struct ipt_entry表示,其中包含匹配用的ip头部分、一个target和多个match。由于match数不定,所以一条规则实际占用的空间是可变的。当我们用Iptables命令配置工具配置一条规则后,Iptables应用程序会运用iptables-standalone.c:main():do_command(),然后再调用libiptc库提供的iptc_commit()函数向核心提交该操作请求。该函数根据请求会设置一个struct ipt_replace结构,用来描述规则所涉及的表和HOOK点等信息,并在其后附接当前这条规则(一个struct ipt_entry结构)。从而将命令行输入转换为程序可读的格式。组织好这些数据后,iptc_commit()调用setsockopt()系统调用来启动核心处理这一请求:setsockopt( sockfd, /通过socket创建的原始套接字, TC_IPPROTO, /即IPPROTO_IP SO_SET_REPLACE, /即IPT_SO_SET_REPLACErepl, /struct ipt_replace结构sizeof(*repl) + (*handle)-entries.size )这样核外程序只要通过创建一个“原始套接字”获得访问Netfilter的句柄,然后通过getsockopt和setsockopt系统调用来读取、更改Netfilter设置。而Iptables是一个内建在Netfilter框架中的模块,从而用户可以读写内核过滤规则。四、总结Netfilter/Iptables的包过滤架构是Linux内核开发人员通过对Ipfwadm/Ipchains等早期的包过滤程序的开发经验和全世界用户反馈的分析,重新设计,改造而形成的相对成熟的Linux内核包过滤框架。同时,由于公开源代码,全世界的网络开发人员针对各自的需要和网络出现的新情况,在义务的开发着对应的模块,这极大的丰富了Iptables功能。采用 Netfilter/Iptables设计的网络防火墙,完全可以媲美专业的网络防火墙,更重要的是,他的成本几乎为零。对信息安全,尤其是网络安全的重视,使得防火墙成为一个热门话题。多数防火墙产品都比较“贵族化”,价格
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 短期租房合同模板
- 电子商务协议书范文二零二五年
- 公厕结账合同标准文本
- 二零二五版房地产代理销售的合同范例
- 蓄电池爆炸事故应急救援预案
- 设计定金协议范本
- 2025年地震数据采集系统合作协议书
- 人事中介合同正式合同范例
- 买树林合同样本
- 2024年苏教版三年级下册数学全册教案及教学反思
- GB/T 13452.2-2008色漆和清漆漆膜厚度的测定
- 2023年中国工商银行天津分行校园招聘考试录用公告
- 班组工程量结算书
- 生产件批准申请书
- 环境监测考试知识点总结
- 爵士音乐 完整版课件
- 嘉兴华雯化工 - 201604
- 冀教版七年级下册数学课件 第8章 8.2.1 幂的乘方
- XX公司“十四五”战略发展规划及年度评价报告(模板)
- 计算机辅助设计(Protel平台)绘图员级试卷1
- 除法口诀表(完整高清打印版)
评论
0/150
提交评论