防火墙的技术与发展.docx
《防火墙的技术与发展.docx》由会员分享,可在线阅读,更多相关《防火墙的技术与发展.docx(7页珍藏版)》请在冰豆网上搜索。
![防火墙的技术与发展.docx](https://file1.bdocx.com/fileroot1/2023-1/24/326335f6-0e36-432d-ac8d-67b08a53efb9/326335f6-0e36-432d-ac8d-67b08a53efb91.gif)
防火墙的技术与发展
摘要
防火墙作为一种网络或系统之间强制实行的访问控制机制,是确保网络平安的重要手段,有基于通用操作系统设计的防火墙,也有基于专用操作系统设计的防火墙。
由于Linux源代码的开放性,所以,Linux成为研究防火墙技术的一个很好的平台。
本文介绍Linux的防火墙技术Netfilter/Iptables在Linux内核中的具体实现。
讨论了Linux内核防火墙套件Netfilter实现的一些根本技术:
包过滤。
Linux下常用的防火墙规那么配置软件Iptables;从实现原理、配置方法以及功能特点的角度描述了Linux防火墙的功能;并给出了Linux下简单防火墙的搭建。
关键字:
防火墙,Netfilter,Iptables
ABSTRACT
Thefirewalltookbetweenonekindofnetworkorthesystemforcestheaccesscontrolmechanismwhichimplements,isguaranteesthenetworksecuritytheimportantmethod,hasbasedonthegeneraloperatingsystemdesignfirewall,alsohasbasedonthespecial-purposeoperatingsystemdesignfirewall.AsaresultofLinuxsourcecodeopenness,therefore,Linuxbeestheresearchfirewalltechnologyaverygoodplatform.ThisarticleintroducesLinuxfirewalltechnologyNetfilter/IptablesinLinuxessenceconcreterealization.DiscussedLinuxessencefirewallsetofNetfilterrealization’ssomebasictechnologies:
thepackagefilter.UnderLinuxmonlyusedfirewallruledispositionsoftwareIptables;fromtherealizationprinciple,thedispositionmethodaswellasthefunctioncharacteristicangledescribedtheLinuxfirewallfunction;andbuildupasimplefirewallinLinux.
Keywords:
Firewall,Netfilter,Iptables
第二章防火墙技术2
2.1防火墙概述2
第三章Netfilter/Iptables3
第一章绪论
1.1前言
Linux可以追溯到UCBerkeley分校的Unix,因此从某种意义上讲,Linux本身就是一种网络操作系统,Linux在实现网络功能方面有着独特的优势。
防火墙的初步功能首次出现在Linux1.1内核中,到Linux2.0内核时,其部件IPFwadm对防火墙局部已进展了很大改良和增强;Linux2.2.x内核发布时,IPchains和单独开发的NAT等模块已经可以比拟完整地实现内核IP防火墙功能,从Linux的2.4内核开场的Netfilter最终废除了Ipchains,其主要原因有:
IPchain是以内核级运行的C及C++代码,没有很好地提供从用户空间访问IPchains的接口,限制了IPchains的可扩展性。
1.2开发背景
在网络平安问题日趋严峻的今天,防火墙作为第一道防线起着关键的作用。
防火墙可以对流经它的网络通信进展扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。
防火墙还可以关闭不使用的端口。
而且它还能制止特定端口的流出通信,封锁特洛伊木马。
最后,它可以制止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。
从而对防火墙的研究成为研究热点。
第二章防火墙技术
2.1防火墙概述
防火墙是一个或一组实施访问控制策略的系统。
它在内部网络〔专用网络〕与外部网络〔功用网络〕之间形成一道平安保护屏障,防止非法用户访问内部网络上的资源和非法向外传递内部信息,同时也防止这类非法和恶意的网络行为导致内部网络运行遭到破坏。
它根本功能是过滤并可能阻挡本地网络或者网络的某个局部与Internet之间的数据传送〔数据包〕。
防火墙的主要功能包括:
1.防火墙本身支持一定的平安策略。
2.提供一定的访问或接入控制机制。
3.容易扩大、更改新的效劳和平安策略。
4.具有代理效劳功能,包含先进的鉴别技术。
5.采用过滤技术,根据需求来允许或拒绝某些效劳。
6.防火墙的编程语言应较灵活,具有友好的编程界面。
并用具有较多的过滤属性,包括源和目的IP地址、协议类型、源和目的的TCP/UDP端口以及进入和输出的接口地址。
2.2包过滤技术
包过滤技术是防火墙的一种最根本的实现技术,具有包过滤技术的装置是用来控制内、外网络间数据流的流入和流出,包过滤技术中的数据包大局部是基于TCP/IP协议平台的,其中包括网络层的IP数据包,运输层的TCP和UDP数据包以及应用层的FTP、Telnet和HTTP等应用协议数据包三局部内容。
过滤技术依靠以下三个根本依据来实现“允许或不允许〞某些包通过防火墙:
1.包的目的地址及目的端口;
2.包的源地址及源端口;
3.包的传输协议。
第三章Netfilter/Iptables
3.1Netfilter框架
3.1.1Netfilter框架的介绍
Netfilter是Linux2.4实现的防火墙框架,Netfilter提供了一个抽象、通用化的框架定义一个子功能实现的就是包过滤子系统。
Netfilter由一系列基于协议栈的钩子组成,这些钩子都对应某一具体的协议。
每一个协议对应的钩子函数都定义在协议具体的头文件中,如对应于IPv4的钩子函数就定义在内核头文件:
/Linux/netfilter_ipv4.h中。
3.1.2数据包流经网络协议栈的分析
1、收到数据,中断发生
通常的,当一块网卡接收到属于其自己MAC地址或者播送的以太网络数据帧时,就会引发一个中断,网卡驱动的中断处理程序获得时机,通过I/O,DMA复制网络帧数据到内存中。
然后网络驱动程序将创立一个skb构造,将网络帧数据填充,设置时间戳,区分类型后,将skb送入对应的包接收队列〔其实就是添加到系统中的一个双向链表中〕。
2、数据接收软中断
内核调用kernel/softirq.c:
do_softirq()执行数据包接收软中断(NET_RX_SOFTIRQ),将skb从CPU的接收队列中取出来,交给对应IPv4协议处理程序。
协议处理程序将对传入的数据包进展一些完整性监测,如果监测失败,那么将数据包丢弃。
通过完整性监测以后,将进展一些必要的清理操作,去掉可能多余的填充数据,并且重新计算数据包的长度。
3.2管理工具:
Iptables
3.2.1Iptables防火墙规那么配置管理工具
Netfilter框架在内核中主要负责PACKET的获得和重新注入,而对PACKET的匹配预处理主要由规那么表来完成。
当我们用Iptables命令配置工具配置一条规那么后,Iptables应用程序会运用iptables-standalone.c:
:
main():
:
do_mand(),然后再调用libiptc库提供的iptc_mit()函数向核心提交该操作请求。
该函数根据请求会设置一个structipt_replace构造,用来描述规那么所涉及的表和HOOK点等信息,并在其后附接当前这条规那么〔一个structipt_entry构造〕。
从而将命令行输入转换为程序可读的格式。
组织好这些数据后,iptc_mit()调用setsockopt()系统调用来启动核心处理这一请求:
setsockopt(sockfd,//通过socket创立的原始套接字,
TC_IPPROTO,//即IPPROTO_IP
SO_SET_REPLACE,//即IPT_SO_SET_REPLACE
repl,//structipt_replace构造
sizeof(*repl)+(*handle)->entries.size)
3.2.1Iptables工具的应用方法
一个Iptables命令根本上包含如下五局部
〔1〕希望工作在哪个表上
〔2〕希望使用该表的哪个链
〔3〕进展操作〔插入、添加、删除、修改〕
〔4〕对特定规那么的目标动作
〔5〕匹配数据报条件
第四章Linux下简单防火墙的搭建
4.1防火墙搭建的战略规划
包过滤防火墙的规那么是由一组接收和制止规那么列表组成,规那么列表中定义了数据包是否可以通过网络接口。
防火墙规那么通过数据XX的字段是否允许一个数据包通过。
当默认策略设置为制止一切时,假设数据XX的字段与规那么匹配,那么路由器将该数据包转发至指定的目的地,否那么将该数据包丢弃或被阻止并反应一个错误状态信息给发出端的计算机。
一、输入包过滤
1、远程源地地址过滤
在包过滤的层次上,数据XX中的源地址是识别IP数据包发送者的唯一方法。
〔1〕假冒本地IP地址
从外部输入的数据包声称是来自本地计算机的数据包,因为源地址是唯一可获得的信息,而它可以被修改,所以这是用户在包过滤的层次上唯一检测到的欺骗形式。
〔2〕回环接口地址
回环地址是TCP/IP协议在本地网络效劳使用的内部专用地址,目的是将网络通信请求或处理通过回环地址发给本机的网络效劳,而不许发送到网络上。
通常,回环网络的网络地址是127.0.0.0,回环地址是127.0.0.1,主机名使用localhost,回环网络标识lo。
2、本地目的地址过滤
网卡只接收发给本机的数据包和播送数据包。
也就是说,网卡将滤掉除播送数据包以外的,目的地址不是本机地址的普通数据包。
例如,地址255.255.255.255是对网络上的所有主机进展播送。
二、输出包过滤
输出消息过滤的重要应用层运行局域网效劳时,不把本地数据包和本地系统信息泄漏到因特网上。
1、本地源地址过滤
通过本地源地址过滤,可以防止本地用户仿造IP地址,欺骗其他的。
2、远程目的地址过滤
对于输出数据包,需要限定特定类型的数据包,这个目的地址只能是特定的远程网络或单机。
此时,防火墙规那么将定义这些数据包允许到达的目的地必须是有明确的IP地址或限定的IP地址范围内的目的地。
4.2Iptables规那么脚本
1.删除任何已存在的规那么。
记住在定义任何一个防火墙规那么前,都要删除存在于所有链的规那么。
命令如下[3][4][6]:
iptables-F
2.配置默认的拒绝规那么。
实际应用中配置的根本原那么是:
先拒绝所有的效劳,然后再根据用户的需要设置相应的效劳。
参考配置程序如下:
iptables-PINPUTDROP
iptables-POUTPUTDROP
iptables-PFORWARDDROP
第五章总结与展望
5.1应用前景
Netfilter/Iptables的包过滤架构是Linux内核开发人员通过对Ipfwadm/Ipchains等早期的包过滤程序的开发经历和全世界用户反应的分析,重新设计,改造而形成的相对成熟的Linux内核包过滤框架。
本文从理论和实践两方面对Linux2.4.x内核对防火墙的处理作了分析,目的是使一般小型企业针对自己实际情况,设计专门的防火墙成为可能。
5.2总体体会
经过几个月的磨炼和努力,总结出只有在强压与竞争中才会有意想不到的收获和进步。
毕业设计培养了作者本人综合运用所学的根底理论,根本知识和根本技能,分析解决实际问题的能力,它在某种程度上是前面各个学习环节的继续,深化和检验。
认为自身在这次毕业设计中培养了以下四方面的能力:
●综合运用所学专业根本理论,提高查阅文献、论文和资料的能力。
●提高自身进展技术总结和撰写论文的能力。
●编程的过程是不断学习的过程,当有更好、更简洁的程序时,要注意扬弃的结合。
●设计既要重视分工,重视设计作品的完整性,重视风格的统一性。
●要注重编程过程中的细节,有时细小的失误也会形成极大的麻烦。
毕业设计让作者本人体会到科学的精神。
面对随时而来的挫折,自己不断的给自己鼓劲,克制困难,勇往直前。
参考文献
[1]博嘉科技主编.Linux防火墙技术探秘.国防工业,2002
[2]JamesF.Kurose,,KeithW.Ross著.计算机网络------用自顶向下方法描述因特网特色.人发邮电,2004
[3]X斌等编.Linux网络编程.清华大学,2000
[4]X伟,龚汉明,X青编著.UNIX根底教程.清华大学,2003
[5]X琳等编著.网络管理与应用.人民邮电,2000
[6]孙建华等编著.网络系统管理------Linux实训篇.人民邮电,2003
[7]W.RichardStevens著.TCP/IP详解卷1:
协议.机械工业,2006
[8]鸟哥编著.LINUX私房菜效劳器架设篇.科学,2005
致谢
首先衷心地感谢指导教师王那么林,每星期的指导与教学,以及平时对我的不懈支持和帮助,他对我的谆谆教导和诚挚关心,严谨治学的态度、睿智的学者风度和敏锐的洞察力令我敬仰,并将会使我终生受益。
才使我的毕业设计顺利完成。
感谢与我同组毕业设计的同学们,他们良好的合作精神以及认真严谨的科学态度深深地感染了我,这也是我们毕业设计能够顺利完成的保证。
最后感谢同窗四年的兄弟姐妹们,他们的关心和帮助陪伴我度过了人生中最值得回忆,最难以忘怀的大学四年。