版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Linux防火墙的设计与实现PAGE Linux防火墙的设计与实现 摘要 随着Internet的飞速发展,网络已是人类生活不可缺少的重要成分,信息时代给人类的生活带来极大便利的同时,也对人类的生活造成了破坏,日益突出的信息安全问题也越来越引起大家的注意,公共数据的安全问题日益成为人们关注的焦点,而防火墙作为最早出现的网络安全产品也是目前最基本最有效的信息安全防护手段,正日益受到用户和研发机构的青睐,得到公司和个人的广泛应用。经过详细调查,考虑到现有硬件设备的限制,因包过滤防火墙的优势更明显,速度快且效率高,功能强大,不耗内存,并可对数据进行细致的控制,自己设定过滤规则,方便测试。在保证满足实
2、验要求的环境下又能尽可能地简化了实验环境,因此本论文实现的是基于主机设计的防火墙配置系统,故只需要一个联网的主机加虚拟机即可进行实验测试。所以最终选择在Linux环境下基于netfilter/iptables防火墙设计技术实现包过滤型软件防火墙的设计与应用。关键字:Linux;防火墙设计;安全策略;包过滤;Linux system network securityDesign and Implement The Personal Firewall of LinuxABSTRACT Many of the current firewall products, and its features a
3、re very strong, but for small applications, individual prices are high, and in the size of the pplication firewall products can choose not many. Therefore, to design a suitable ersonal firewall with packet filtering is necessary. The design is first carried out on the netfilter framework of overall
4、understanding, and then construct their own in the framework of a filter rule, followed in the netfilter based personal firewall for the detailed planning, disCussed the personal firewall in the importance of the current network , and research significance. For this design, made three features: Firs
5、tly, to achieve the filter rules; II: combination with a database of historical information for analysis. Third: to combine with the log, you can analyze the current problems. Resolved at this stage only the first target, the other two goals are to be continued. The first objective of the implementa
6、tion process is: First, set up their own filtering rules, in this filter rule, use the hook function to hook to take an external packet filter rules set by their own than on; followed up function by their own set up filtering rules to the system kernel, the rest is to start filtering. Through the de
7、tailed design of filter rules, with some combination of databases and logs to make this personal firewall is more perfect, more powerful. Through the design of personal firewall, reaching some of the content filtering information purposes. Keywords:Device drivers; firewall; security policy; packet f
8、iltering; 目 录 TOC o 1-3 h z u HYPERLINK l _Toc137367611 1 绪论 PAGEREF _Toc137367611 h 1 HYPERLINK l _Toc137367612 1.1 引言 PAGEREF _Toc137367612 h 1 HYPERLINK l _Toc137367614 1.2 系统设计的背景1 HYPERLINK l _Toc137367617 1.3 系统设计的意义3 HYPERLINK l _Toc137367617 1.4 系统设计的思想4 HYPERLINK l _Toc137367620 2 系统的开发环境5
9、HYPERLINK l _Toc137367621 2.1 Linux系统介绍5 HYPERLINK l _Toc137367633 2.1.1 Linux的历史及特点6 HYPERLINK l _Toc137367633 2.1.2 Linux防火墙背景知识6 HYPERLINK l _Toc137367633 HYPERLINK l _Toc137367633 2.1.3 VMware简介6 HYPERLINK l _Toc137367622 2.2 防火墙概述7 HYPERLINK l _Toc137367625 2.2.1 防火墙的原理及分类8 HYPERLINK l _Toc1373
10、67625 2.2.2 防火墙的功能9 HYPERLINK l _Toc137367625 2.2.3 防火墙发展展望9 HYPERLINK l _Toc137367623 2.3 Iptables介绍8 HYPERLINK l _Toc137367624 2.3.1 Iptables的结构8 HYPERLINK l _Toc137367625 2.3.2 Iptables传递数据包的过程8 HYPERLINK l _Toc137367625 2.3.2 Iptables工具的调用语法 8 HYPERLINK l _Toc137367625 2.3.4 Iptables的优点9 HYPERLI
11、NK l _Toc137367627 3系统总体设计10 HYPERLINK l _Toc137367628 3.1 系统功能设计分析 PAGEREF _Toc137367628 h 10 HYPERLINK l _Toc137367631 3.2 系统功能模块 PAGEREF _Toc137367631 h 12 HYPERLINK l _Toc137367632 3.2.1 数据包捕获模块 PAGEREF _Toc137367632 h 12 HYPERLINK l _Toc137367633 3.2.2 数据包捕获模块原理分析 PAGEREF _Toc137367633 h 13 HYP
12、ERLINK l _Toc137367634 3.3 系统设计流程 PAGEREF _Toc137367634 h 16 HYPERLINK l _Toc137367633 3.3.1 数据包捕获模块流程图 PAGEREF _Toc137367633 h 13 HYPERLINK l _Toc137367633 3.3.2 数据包捕获模块实现 PAGEREF _Toc137367633 h 13 HYPERLINK l _Toc137367635 3.4 相关数据结构设计 PAGEREF _Toc137367635 h 17 HYPERLINK l _Toc137367638 4 系统详细设计
13、 PAGEREF _Toc137367638 h 18 HYPERLINK l _Toc137367631 4.1 注册与注销钩子函数的设计与实现 PAGEREF _Toc137367631 h 12 HYPERLINK l _Toc137367633 4.1.1 注册函数的实现部分 PAGEREF _Toc137367633 h 13 HYPERLINK l _Toc137367633 4.1.2 注册与注销函数的功能 PAGEREF _Toc137367633 h 13 HYPERLINK l _Toc137367631 4.2 包处理设计与实现 PAGEREF _Toc137367631
14、 h 12 HYPERLINK l _Toc137367631 4.2.1 钩子函数的作用与功能 PAGEREF _Toc137367631 h 12 HYPERLINK l _Toc137367644 4.3 过滤规则的设计与实现 PAGEREF _Toc137367644 h 25 HYPERLINK l _Toc137367645 4.3.1 基于接口的过滤 PAGEREF _Toc137367645 h 25 HYPERLINK l _Toc137367646 4.3.2 基于IP地址的过滤 PAGEREF _Toc137367646 h 25 HYPERLINK l _Toc1373
15、67647 4.3.3 基于TCP端口的过滤 PAGEREF _Toc137367647 h 25 HYPERLINK l _Toc137367631 4.4 规则的添加与删除设计与实现 PAGEREF _Toc137367631 h 12 HYPERLINK l _Toc137367631 4.4.1 用户程序的实现 PAGEREF _Toc137367631 h 12 HYPERLINK l _Toc137367633 4.5 内核防火墙规则的添加与删除的设计与实现 PAGEREF _Toc137367633 h 13 HYPERLINK l _Toc137367650 5 性能测试与分析
16、 PAGEREF _Toc137367650 h 39 HYPERLINK l _Toc137367651 5.1 测试目标 PAGEREF _Toc137367651 h 39 HYPERLINK l _Toc137367652 5.2 测试方法 PAGEREF _Toc137367652 h 39 HYPERLINK l _Toc137367652 5.3 Iptables基本配置 PAGEREF _Toc137367652 h 39 HYPERLINK l _Toc137367631 4.4 规则的添加与删除设计与实现 PAGEREF _Toc137367631 h 12 HYPERLI
17、NK l _Toc137367631 4.4 规则的添加与删除设计与实现 PAGEREF _Toc137367631 h 12 HYPERLINK l _Toc137367631 HYPERLINK l _Toc137367631 4.4 规则的添加与删除设计与实现 PAGEREF _Toc137367631 h 12 HYPERLINK l _Toc137367661 5.5 快速建立一个入侵检测系统44 HYPERLINK l _Toc137367650 6 结论 PAGEREF _Toc137367650 h 39 HYPERLINK l _Toc137367664 参考文献45 HYP
18、ERLINK l _Toc137367665 致谢 PAGEREF _Toc137367665 h 47附件一:开题报告附件二:译文及原文影印件附件三:部分配置命令集及解析 1 绪论1.1 引言人类已经步入信息高速化社会,21世纪网络技术应用发展又将会踏上一个很大的台阶,随着云计算,大数据,物联网等新兴产业日趋成熟发展,许多大企业开始动员部署,而不容质疑的是,如果没有一套完整的网络安全体系协议规则,这些产业是不能真正实施应用的,公共数据安全问题解决不了,一切美好的计划都只是想象。 在信息时代,信息使团体乃至个人都受益不少,因为网络人们的生活水平大大提高了,而与此同时,随着网络本身架构的复杂性,
19、不完善性,信息安全问题也是很常见的。 黑客恶意攻击盗窃商业机密个人信息的事件层出不穷,斯诺登事件的爆发告诉我们网络信息安全已不容忽视,甚至已经威胁到了国家人民的安全,因此我国要从政策上和法律上建立起有自己特色的网络安全体系,同时人们在网络生活中要有安全防范的意识,多加防范。因此防火墙技术的发展应用前景非常广阔,是网络生活中必不可以少的。1.2系统开发的背景随着计算机网络技术的突飞猛进,网络应用已经无处不在。电子商务,在线教育,三网融合,云计算大数据等,使人类生活越来越智能化,便捷化,计算机及其网络技术给人类带来了无穷的乐趣,在国民经济文化生活中起到了不可替代的作用。然而,万事万物都有其两面性,
20、计算机网络也是把双刃剑,给人类生活带来便利的同时也造成了诸多破坏,网络安全问题已经显而易见了。仅从我了解的资料表明,目前在互联网上大约有将近20%以上的用户曾经遭受过黑客的困扰。尽管黑客如此猖獗,但网络安全问题至今仍没有能够引起足够的重视,大多的户认为网络安全问题离自己尚远,这一点从大约有40%以上的用户特别是企业级用户没有安装防火墙(Firewall)便可以窥见一斑,而所有的问题都在向大家证明一个事实,大多数的黑客入侵事件都是由于未能正确安装防火墙而引发的。几乎所有用户都听说过计算机病毒或木马,也大致了解它们的危害。曾经遭受其侵扰的用户可能如今想起还心有余悸。病毒木马是可怕的,会干扰人们的正
21、常工作、破坏资料、泄露个人信息隐私、甚至会造成个人系统乃至商用服务器的瘫痪,个人财物被盗窃。由于恶性的竞争,企业网站经常遭受有目的的入侵者的攻击,有些专业的著名网站也是攻击者的目标,如Yahoo、Baidu等著名网站都曾经被黑客用原始的DOS方法攻陷过,软件系统独裁者微软公司也难逃“黑”运。斯诺登事件的爆发,使人们意识到,不止是企业个人,连国家信息的安全都饱受侵扰,国家利益,尊严正受到严重威胁。防攻击,防欺骗同防病毒,防黑客成为确保企业信息系统安全的基本手段。这里所说的那道无形的“墙”,是十分重要的,能把烧过来的火挡在外边,给人以安全,在相当大程度上这指的就是“防火墙”。防火墙的这个概念由来已
22、久,在古代人们都是使用木制材料建房子,为了防止火灾的发生和蔓延,古人就将坚固的石块堆砌在房屋周围作为屏障,这种防护构筑物就被称之为“防火墙”。而这里所说的防火墙当然不是指物理上的防火墙,而是指隔离在本地网络与外界网络之间的一道防御系统,是这一类防范措施的总称。应该说,在互联网上防火墙是一种非常有效的网络安全模型,通过它可以隔离风险区域(即Internet或有一定风险的网络)与安全区域(局域网)的连接,同时不会妨碍人们对风险区域的访问。网络防火墙是借鉴了古代用于防火的防火墙的喻义,可使企业内部网络与Internet之间或者与其外部网络互相隔离、限制网络互访用来保护内部网络。Linux操作系统一个
23、类Unix网络操作系统,在系统的稳定性、健壮性及价格的低廉性方面都独具优势。更难能可贵地是,Linux本身的源代码是完全开放的,而且其中包含了许多性能优异且开放的软件,如Apache Web服务器、DNS服务器、Mail服务器、Database服务器等。同样,基于Linux的防火墙软件不但具有强大的功能,而且也是免费的,供大家继续开发测试。Linux内核从1.1版本开始,其防火墙就已经具备包过滤功能。在2.0内核中,开始采用Ipfwadm来控制操作内核的包过滤规则。到2.2版本时,Linux内核采用Ipchains来控制内核的包过滤规则。开发到2.4.版时,Ipchains被一个全新设计的包过
24、滤管理工具Iptables所替代。近来发布的2.6版内核也在安全方面进行了诸多改进。因此,无论使用哪个版本的Linux内核,无论选择哪个版本的Linux来构建个人或企业网,都可以利用现有的系统架构出一个高效实用的防火墙。1.3 系统开发的意义对于处于因特网上的系统,首先我们要明确一点:网络是不安全的,100%安全的系统是不存在的。正因如此,防火墙才显得至关重要。防火墙的目的就是要将那些破坏网络安全的不法之徒拒在墙外,使自己的正常生活工作不受干扰。LINUX是特点性能十分突出的一种操作系统,因其公开源代码、强大稳定的网络性能和免费的后续技术开发支持受到了业界的普遍赞扬。在LINUX操作系统中,防
25、火墙其实只是系统一个自带的功能模块。通过安装不同的防火墙内核,LINUX操作系统会对接收到的数据包按指定的策略进行处理。随着Linux系统越来越为人所接受了解,安全问题成了关键。病毒木马在不断变异发展着,而Linux防火墙技术也是如此,经历了Ipfw、Ipchains等发展过程。如今Iptables作为Linux防火墙的集大成者,当然也针对骇客不断推陈出新的攻击探测技术做出回应之道,那就是对封包的联机状态作出更详细的分析,对容易遭受攻击的地方加以防范,另外对真正的封包具有改写能力,不需要透过其它程序的协助来仿真网址转译,除此之外,Iptables也获得系统核心的直接支持,不需要像Ipchain
26、s那样需要自行重新编译核心。Iptables以其优越的性能取代Ipchains已是大势所趋,如今成为网络防火墙的主流,而Ipchains也并未被淘汰,目前Ipchains已经转型成单机防火墙,在新版Linux时,还是会自动被安装启用,用来保护单机上没有被使用的通讯端口1。总之,目前国内外大部分企业都采用Linux系统来构建服务器,以增强运行系统的稳定性和安全性,因此学习Linux这个优秀的操作平台是很有发展前途的,尤其是防火墙配置搭建技术必不可少的。1.4 系统设计的思想 目前市场上防火墙的产品很多,而且其功能服务都十分强大,但是对于个人用户来说,一个物美价廉实用的小型防火墙基本上就已经能够满
27、足需求了。因此,设计一个适合个人且具有包过滤功能的防火墙是很有必要的。相对于一个小型的个人防火墙应该具有以下性质:可以监控进出网络的通信量,可以限制他人进入内部网络,过滤掉不安全服务和非法用户;仅让安全、核准了的信息进入,抵制对企业构成威胁的数据。(2)只有符合规则且经过检查的通信数据,才能通过防火墙。(3)是限定用户访问特殊站点本论文设计的防火墙是基于Linux下的NetFilter/Iptables架构的,其中的包过滤功能是由NetFilter来实现,安全策略是“允许一切未被禁止的服务”的规则。2 系统的开发环境 2.1 Linux系统简介2.1.1 Linux的历史和特点什么是Linux
28、,Linux操作系统是自由软件的代表,同时它也是一个功能强大,安全稳定地类Unix操作系统,运行在该系统上的应用程序几乎都是免费的,Linux也是免费的,是开源的。这个系统是由全球各地的优秀程序员共同设计和实现的。编写它的目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。Linux是基于Unix克隆(Unix clone)或Unix风格(Unixalike)的操作系统(OS),在原代码级上兼容绝大部分Unix标准(指的IEEEOSIX,SystemV,BSD),是一个支持多用户, 多线程,多任务,实时性较好的功能 安全性高,强大且稳定的操作系统。Linux的出现始
29、于一位名叫Linus Torvalds的计算机狂热爱好者,当时他是芬兰赫尔辛基大学的学生。Linus Torvalds的目的是想设计一个代替Minix(是由一位名叫Andrew Tannebaum的计算机教授编写的一个操作系统示教程序)的操作系统,Linux的诞生显得充满了偶然。林纳斯经常要用他的终端仿真器(Terminal Emulator)去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了HYPERLINK /view/253189.htm磁盘驱动程序和HYPERLINK /view/266589.htm文件系统,这些在后来成为了Linux第一个内核的雏形。当时,他年仅2
30、1岁。 Linux之所以受到众多计算机爱好者的喜爱,主要原因有两个,一是其为广大的计算机爱好者提供了学习、探索以及修改计算机操作系统内核的机会。用户可以无偿地得其源代码,可以任意地修改和补充它们。另一个原因是,Linux是目前唯一可免费获得的、为PC平台上的多个用户提供多任务、多进程功能的操作系统,学习和使用Linux,用户可以节省一笔可观的资金。2.1.2 Linux防火墙的背景知识Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多HYPERLINK /view/2089.htmCPU的操作系统。它能运行主要的UNIX工具软
31、件、应用程序和网络协议。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它芬兰大学生Linus Torvalds于1991年创建并在因特网上发布,任何计算机爱好者只要遵守GPL版权,都可以免费使用和修改Linux。实际上,GPL要求的是完全的软件共享,你可从中谋利,但是你不能占为己有。经过全球千千万万的计算机爱好者对其不断修改,如今的Linux系统已经变得强大无比!很多大企业也把目光投向了linux,IBM、Intel、Oracle、Sysbase、Borland,HP,SUN,Corel等商业软件6厂商纷纷表示对Linux进行商业开发和技术支持,使得Lin
32、ux的商业价值和发展前景不可预测。近年来,随着相关技术的发展,Linux正朝着微型设备的嵌入式操作系统和桌面操作系统发展。IDC预测Linux将成为Windows NT后的第二大操作系统3。LINUX操作系统提供了强大的网络功能,同时为增加系统安全性更提供了防火墙保护。LINUX防火墙其实是操作系统本身所自带的一个功能模块。通过安装特定的防火墙内核,LINUX操作系统会对接收到的数据包按一定的策略进行处理。而用户所要做的,就是使用特定的配置软件(如iptables)去定制适合自己的“数据包处理策略”。包过滤防火墙是用软件来查看所流经的数据包的包头(header),由此来判断决定整个包的命运。它
33、可能丢弃(DROP)这个包,也可能接受(ACCEPT)这个包,也可能执行其它规定的复杂动作。Netfilter/Iptables IP 信息包过滤系统是最新的解决方案,而且也是第一个集成到 Linux内核的解决方案。对于Linux系统管理员、网络管理员以及家庭用户(他们想要根据自己特定的需求来配置防火墙,在防火墙解决方案上节省费用和对IP信息包过滤具有完全控制权)来说,Netfilter/Iptables系统十分理想。Iptables是最新的2.4.x版本Linux HYPERLINK /view/1366.htm t _blank 内核集成的IP信息 HYPERLINK /view/1508
34、53.htm t _blank 包过滤系统管理工具。如果Linux系统连接到因特网或 HYPERLINK /view/14702.htm t _blank LAN、服务器或连接LAN和因特网的 HYPERLINK /view/751.htm t _blank 代理服务器,则该系统可以方便的在Linux系统上更好地配置IP信息包过滤规则和 HYPERLINK /view/3067.htm t _blank 防火墙设置。Iptables组件是一种管理工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易2。Iptables的构造比较复杂,它集成到Linux内核
35、中。用户通过Iptables可以对进出你的计算机的数据包进行过滤。通过Iptables命令配置来把守你的计算机网络端口的放行-哪些数据允许通过,哪些不能通过,哪些通过的数据要进行记录。2.1.3 VMware简介VMware Workstation是VMware公司设计的专业虚拟机,可以虚拟现有的任何操作系统,即在现有的操作系统上再运行另一个操作系统,VMware可以在计算机所安装的操作系统上构建多个虚拟的操作系统,那个真实的计算机上安装的操作系统被称为主操作系统(Host Operation System),虚拟机上安装的操作系统则称为客户操作系统(Guest Operation Syste
36、m).利用VMware虚拟机安装操作系统主要有以下目的和意义。单机构建网络环境一台计算机下,用户可以在主机和多个虚拟操作系统间构建一个小型网络环境,并且可以进行网络配置、测试以及网络编程测试应用等。如用户可以在Linux操作系统构建各种网络服务功能,然后通过虚拟网络在Windows下进行测试应用。软件开发跨平台移植对于软件开发的用户,可以在Windows环境下开发,再移植到Linux或UNIX下进行跨平台测试应用,如Java及JSP脚本语言的开发移植测试。系统学习对于学习Linux或UNIX操作系统的用户,采取在Windows下利用虚拟机方式安装,可以在Windows下随时切换到Linux环境
37、下学习操作。进行危险操作有些用户很难对磁盘进行分区格式化操作,因为这些操作不当极容易造成硬盘数据的丢失,而采取虚拟机方式,如在Windows下安装Linux操作系统及进行Linux分区格式化不会影响到真正的Windows系统分区。2.2防火墙概述2.2.1防火墙的原理及分类防火墙是在两个网络间实现访问控制的一个或一组软件或硬件系统。防火墙的最主要功能就是屏蔽和允许指定的数据通讯,而该功能的实现又主要是依靠一套访问控制策略,由访问控制策略来决定通讯的合法性。如果我们从OSI分层模式来考察及分类防火墙,会比较容易的把握住防火墙的脉络,目前主流的防火墙可以分为两类,它们分别是:包过滤防火墙、应用代理
38、(网关)防火墙,而由这两类防火墙又可以推导和演绎出其它可能的变化。这些都能对系统起到保护作用并可以筛选出网络上的攻击者。包过滤防火墙(IPFiltingFirewall)包过滤防火墙一般是用路由器上实现,用以过滤用户自定义的内容,如IP地址。包过滤(PacketFilter)防火墙的工作原理是:是在网络层中对数据包实施有选择的通过,依据系统事先设定好的过滤逻辑,检查数据据流中的每个数据包,根据数据包的源地址、目标地址、以及包所使用端口确定是否允许该类数据包通过。在互联网这样的信息数据包交换网络上,所有往来的信息都被分割成许许多多一定长度的信息包,包中又包括发送者的IP地址和接收者的IP地址。当
39、这些包被送上互联网时,路由器就会读取接收者的IP并选择一条物理上的线路发送出去,信息包可能以不同的路线抵达目的地,当所有的包抵达后会在目的地重新组装还原。包过滤式的防火墙会检查所有通过信息包里的IP地址,并按照系统管理员所给定的过滤规则过滤信息包。如果防火墙设定某一IP为危险IP的话,从这个地址而来的所有信息都会被防火墙屏蔽掉。但是,包过滤防火墙也有一定的缺陷,通常它没有用户的使用记录,这样我们就不能从访问记录中发现黑客的攻击记录。另一个关键的弱点就是不能在用户级别上进行过滤,即不能鉴别不同的用户和防止IP地址盗用,而且配置比较繁琐。 (2)应用网关防火墙应用网关防火墙的检查是针对所有应用层的
40、信息包,它将检查的内容信息放到决策过程中,以提高网络的安全性。代理服务器通常也称作应用级防火墙。包过滤防火墙可以按照IP地址来禁止未授权者的访问。但是它不适合单位用来控制内部人员访问外界的网络,对于这样的企业来说应用级防火墙是更好的选择。所谓代理服务,即防火墙内外的计算机系统应用层的链接是在两个终止于代理服务的链接来实现的,这样便成功地实现了防火墙内外计算机系统的隔离。代理服务是设置在Internet防火墙网关上的应用,是在网管员允许下或拒绝的特定的应用程度或者特定服务,同时,还可应用于实施较强的数据流监控、过滤、记录和报告等功能。一般情况下可应用于特定的互联网服务,如超文本传输(HTTP)、
41、远程文件传输(FTP)等。代理服务器通常拥有高速缓存,缓存中存有用户经常访问站点的内容,在下一个用户要访问同样的站点时,服务器就用不着重复地去抓同样的内容,既节约了时间也节约了网络资源。但是,应用网关防火墙具有可伸缩性差的缺点。 2.2.2防火墙的功能(1)防火墙是网络安全的屏障 HYPERLINK /view/3067.htm防火墙具有很好的HYPERLINK /view/2420558.htm网络安全保护作用,能极大地提高一个网络的安全。由于只有经过配置允许的应用协议才能通过防火墙,所以网络环境变得相对安全。入侵者必须首先得穿越HYPERLINK /view/3067.htm防火墙这条安全
42、防线,才能有机会接触目标HYPERLINK /view/3314.htm计算机。我们可以根据需要将HYPERLINK /view/3067.htm防火墙配置成许多不同保护级别。高级别的保护可能会禁止一些服务,如HYPERLINK /view/2722588.htm视频流等,但至少这是你自己的保护选择。(2)防火墙可以强化网络安全策略 通过服务中心的安全方案配置,可以将所有安全软件(如口令、加密、身份认证、审计等)配置在指定防火墙上,可以对分散主机进行统一安全维护。与将网络安全问题分散到各地主机上相比,防火墙的集中安全管理更科学也更经济。例如在网络访问时,身份认证系统完全可以不必分散在各个分布的
43、主机上,可以集中在某一统一防火墙身上。 对网络存取和访问进行监控审计 大多的攻击行为在攻击前时是可以查看端倪的,比如某网段的流量突然骤增,或都某些端口接收的请求数据包不太正常,这时我们配置的防火墙就很有作用了,通过对网络存取和访问进行监控审计,对数据流量包进行实时监控。当检查到可疑动作时,防火墙能进行适当的报警,并提供网络监测到的详细信息。另外,收集一个网络的使用和误用情况也是非常重要的,不仅可以发现潜在的攻击漏洞,也可以对网络进行维护和优化。对于频繁访问的网络来说是非常重要的。 防止内部信息的外泄 通过配置防火墙对内部网络的划分,我们可实现对内部网重点网段的安全隔离,从而限制了局部重点或敏感
44、网络安全问题对全局网络造成的影响。再者,隐私信息是内部网络非常关心的问题,一个内部网络中很多不引人注意的细节可能暗藏着漏洞,有关系统的信息会给攻击者提供有用的线索,甚至因此而暴漏了内部网络的某些安全漏洞。使用防火墙就可以屏蔽那些透漏内部细节,让系统的敏感信息不被别人窥视。2.2.3 防火墙发展展望1多级过滤技术 所谓多级过滤技术,是指防火墙一般采用多级过滤措施,并辅以鉴别手段。在分组过滤(网络层)一级,过滤掉所有的源路由分组和假冒的IP源地址;在传输层一级,遵循过滤规则,过滤掉所有禁止出或/和入的协议和有害数据包如nuke包、圣诞树包等;在应用网关(应用层)一级,能利用FTP、SMTP等各种网
45、关,控制和监测Internet提供的所用通用服务。 多级过滤技术其实就是现在防火墙已经广泛使用的技术:包过滤、应用网关。之所以把他提出来是因为这个提法比较科学,在分层上非常清楚,而且从这个概念出发,又有很多内容可以扩展。 2网络安全产品的系统化 现在有一种提法,叫做建立“以防火墙为核心的网络安全体系”,主要是随着目前网络安全产品的不断推出和防火墙在实际使用中表现出越来越大的局限性而提出的。 一般情况下,内外网交界的位置由于非常关键,为了降低网络传输延迟,只有不得不置于这个位置的设备如防火墙才会放置在这里(一般必需的还有病毒检测设备等 等),其他设备如IDS只能置于旁路位置。而在实际使用中,ID
46、S的任务往往不仅在于检测,很多时候在IDS发现入侵行为以后,也需要IDS本身对入侵及 时遏止(在这点上我理解为其实IDS是一个策略不断变化的动态的“智能”防火墙,而防火墙本身是一个策略安全级最低的静态设备,这里所说的IDS是指 NIDS,而非基于主机的)。显然,要让处于旁路侦听的IDS完成这个任务又太难为,同时主链路又不能串接太多类似设备。 在这种情况下,如果防火墙能和IDS、病毒检测等相关安全产品联合起来,充分发挥各自的长处,协同配合,共同建立一个有效的安全防范体系,那么系统网络的安全性就能得以明显提升。 目前主要有两种解决办法。一种是直接把IDS、病毒检测部分直接“做”到防火墙中,使防火墙
47、具有(简单的)IDS和病毒检测设备的功能。另一种是各个产品 分立,但是通过某种通讯方式形成一个整体,即相关检测系统专职某一类安全事件的检测,一旦发现安全事件,则立即通知防火墙,由防火墙完成过滤和报告。第一 种方法似乎前途不明确,因为IDS本身也是一个非常复杂的系统,且不说能不能“做”到防火墙里边去,即使成为防火墙的一部分,这样一个防火墙的效率也很难 说。第二种方法在实现起来困难一些,而且很明显的是:IDS、病毒检测设备必须置于防火墙之外,如果置于防火墙之内,就起不到相应效果了。这样一 来,IDS等设备本身的安全性又不得不成为研究的一个重点。 3管理的通用化 国外的防火墙这一点已经非常成熟,一般
48、防火墙都不是作为一个特殊网络产品来管理,而是纳入通用网络设备管理体系。 国内则相差很远,往往是防火墙就是防火墙,管理起来需要单独管理,乃至单独培训。不过国内也已经有所改观,正在向网络化、通用化发展,据称亿阳信通出品一种防火墙和VPN的结合产物就支持远程通用管理。 2.3 Iptables简介 Linux从内核2.4之后使用全新的内核包过滤管理工具-Iptables,这个功能强大的防火墙管理工具使用户更易于理解其工作原理,操作更便捷。I事实上ptables只是一个管理内核包过滤的工具,用户可以根据需求加入、插入或删除核心包过滤表格(链)中的规则。但实际上真正执行这些过滤规则的是netfilter
49、(linux核心中一个通用架构)及其相关模块(如iptables模块和nat模块)。netfilter是linux核心中一个通用架构,它提供一系列的“表”(tables),每个表由若干“链”(chains)组成,而每条链中可以由一条或数条规则(rule)组成。可以这样理解,netfilter是表的容器,表是链的容器,链是规则的容器。2.3.1 Iptables的结构Iptables规则一般由指定表(table)、指定链(chains)、指定操作命令(command)、指定规则匹配器(matcher)、指定目标动作(target)等构成,如图2.3.1所示。图2.3.1 Iptables结构图I
50、ptables的指令结构如图2.3.2所示。 图2.3.2 Iptables的指令结构图2.3.2 Iptables传输数据包的过程 当数据包进入系统时,系统首先根据路由表决定将数据包发给哪一条链,则可能有以下3种情况:1、数据包的目的地址是本机,则系统将数据包送往INPUT链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统将丢弃该包。2、数据包上的地址不是本机,也就是说这个包将被转发,则系统将数据包送往FORWARD链,如果通过规则检查,该包被发给相应的本地进程处理;如果没有通过规则检查,系统将丢弃该包。3、数据包是由本地系统进程产生的,则系统将其送往OUTPU
51、T链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过检查,系统则将该包丢弃。用户可以根据需要给各链定义规则,当数据包到达其中的每一条链,Iptables就会根据链中定义的规则来处理这个数据包。Iptables会将数据包的头信息与它所传递到的链中的每条规则进行比较,看它是否和每条规则完全匹配。如果数据包与某条规则匹配,Iptables就对该数据包执行由该规则指定的操作。例如某条链中的规则决定要丢弃(DROP)数据包,数据包就会在该链处丢弃;如果链中规则接受(ACCEPT)数据包,数据包就可以继续前进;但是,如果数据包与这条规则不匹配,那么它将与链中的下一条规则进行比较。如果该数据
52、包不符合该链中的任何一条规则,那么Iptables将根据该链预先定义的默认策略来决定如何处理该数据包,理想的默认策略应该告诉Iptables丢弃(DROP)该数据包。2.3.3 Iptables工具的调用语法Iptables的语法通常可以简化为下面的形式:Iptables-t tableCMDchainrule-matcher-j target其中:tables为表名,CMD为操作命令,chain为链名,rule-matcher为规则匹配器,target为目标动作。Iptables软件包提供了两个命令分别用于保存和恢复规则集。可以使用下在的命令转储在内存中的内核规则集。其中/etc/sysco
53、nfig/Iptables是Iptables守护进程调用的默认规则集文件:#/sbin/Iptables-save ; /etc/sysconfig/Iptables要恢复原来的规则库,需使用命令:#/sbin/Iptables-restore /etc/sysconfig/Iptables为了使得用Iptables命令配置的规则在下次启动机器时还能被使用,有两种方法:1、使用Iptables的启动脚本实现。Iptables的启动脚/etc/rc.d/init.d/Iptables每次启动时都使用/etc/sysconfig/Iptables所提供的规则进行规则恢复,并可以使用如下的命令保存规
54、则:#service Iptables save2、在自定义脚本中用Iptables命令直接创建规则集。可以直接用Iptables命令编写一个规则脚本,并在启动时执行这个脚本。例如:若规则脚本的文件名为/etc/fw/rules,则可以在启动脚本/etc/rd.d/init.d/rc.local中加入下面的代码:if-x/etc/fw/rules;then/etc/fw/rules;fi;这样,机器每次启动时即可执行该规则脚本。如果使用此种方式,建议使用ntsysv命令关闭系统的Iptables守护进程。2.3.4 Iptables的优点Iptables最大优点是可以配置有状态的防火墙,有状态
55、的防火墙能够指定并记住为发送或接收信息包所建立的连接的状态。 2、Iptables的另一个重要优点是,用户可以完全控制防火墙配置和信息包过滤。可以定制自己的规则来满足特定需求,从而只允许想要的网络流量进入系统。 3、Iptables能够过滤TCP标志任意组合报文,还能够过滤MAC地址。相比Ipchains更容易配置,扩展性也更好。3 系统的总体设计 3.1 系统功能设计分析Linux系统下实现软件防火墙的设计与应用,实质上就是基于主机的网络安全解决方案。因此,我们完全可以选择合适的软硬件平台和相应的防火墙设计原理,自己开发出一套能够满足要求的防火墙系统。 基于Linux的防火墙系统应该主要具有
56、以下功能:(1)全程动态包过滤 防火墙要在Linux下实现全程动态包过滤功能,通过分析数据包的地址、协议、端口对任何网络连接当前状态进行访问控制,以提高系统的性能和安全性。(2)提供日志审计 防火墙应配备日志记录系统和查询工具,以用于记录系统管理、系统访问及针对安全策略的网络访问情况。(3)防火墙数据库的备份 本防火墙不但要能过滤数据库,并且管理员也可以对该数据库进行设置。3.2 系统功能模块此节对监控层数据包捕获模块的结构进行探讨,主要是针对数据包过滤模块,对实现数据包捕获功能的程序的一些重要函数进行说明。 3.2.1 数据包捕获模块结数据包捕获模块主要用于监视和验证网络流量情况,可以截取或
57、者阅读网络上OSI协议模型中各个协议层次上的数据包。本文设计的数据包捕获程序可以捕获通过原始套接口(Socket)的原始数据包(Raw Packet),当一个数据包到达网络接口时,数据包捕获程序就直接从缓存区读取捕获的数据包,以供数据分析和处理时调用。数据捕获模块的结构如图3-1如示。图3-1 数据捕获程序结构图3.2.2 数据包捕获模块原理设计分析(1)网卡设置原理在一个实际的应用系统中,数据收发工作是由网卡来实现的,网卡接收到传输来的数据,网卡内的指定程序接收数据帧的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收数据包,如果判断为不该接收就丢掉不管。对于网卡来说一般
58、有四种接收模式:广播模式组播模式、混杂模式、直接方式。数据包捕获程序首先初始化使网络接口(网卡)处于混杂状态,从而截获网络上的内容,并且通过相应的软件处理,实时分析这些数据的内容,为数据包过滤作准备。(2)基本函数说明在Linux环境下的数据包捕获程序是用C语言编写的,因此很多地方用到了Linux中的预定义函数,在此节将对这些基本函数的功能和使用特点进行说明。socket函数定义常用的Socket套接字类型有两种:流式Socket(SOCK_STREAM)和数据包式Socket (SOCK_DGRAM)。流式是面向连接的Socket,针对TCP服务应用;而数据报式Socket是一种无连接的So
59、cket,针对UDP服务应用。Socket函数原型为:int socket(int domain, int type,int protocol);recvfrom()函数定义recvfrom()函数是用来实现接收数据包,recvfrom()是具有“阻塞式I/O”特性的函数,能够在没有数据包到达的情况下暂时挂起等待,直至接收到数据包后,再激活转入下一步处理。recvfrom()函数的原型为: int recvfrom(SOCKET s,char FAR *buf,int len,int flags,struct sockaddr FAR *from,int *fromlen);本函数用于从已连接
60、套接口上接收数据,并能将数据发送源的地址捕获。对于SOCK_STREAM类型的套接口,最多可以接收缓冲区大小个数据。如果套接口被设置为线内接收带外数据(选项为 SO_OOBINLINE),且有带外数据未读入,则返回带外数据。应用程序可以通过调用ioctlsocket()的SOCATMARK命令来确定是否有带外数据待读入。而对于SOCK_STREAM类型套接口,则忽略from和fromlen参数。一些“字节顺序”转换函数由于网络和主机采用的存储字节时内存顺序安排方式的不同,就存在“字节顺序”的问题。在网络环境下存储时,高位字节存放在内存的起始位置,而低字节则存放在较高的位置。但是主机形式的存放顺
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 承包园林苗木合同范例
- 公司人员聘用合同范例
- 口罩机器购买合同范例
- 医药otc销售合同范例
- 困难劳动合同范例
- 招标和造价合同范例
- 定制柜门购销合同范例
- 医疗器材购销合同范例
- 小餐厅转让合同范例
- 政府厨房维修合同范例
- 2022-《参与感:小米口碑营销内部手册》
- 三级医院医疗设备配置标准
- 合法离婚协议书(2篇)
- 水轮发电机组大修质量标准
- 项目主要技术方案计划表
- 汽车零部件开发质量管理课件
- 20m29.6m30.4m20m钢箱梁桥实例设计内容与表达
- 冀教版四年级上册英语Unit 4单元测试卷(含听力音频)
- 【真题】北京市西城区六年级语文第一学期期末试卷 2021-2022学年(有答案)
- VMWare Horizon7平台集成指南
- 口腔专科护理知识考核试题与答案
评论
0/150
提交评论