基于-linux系统防火墙技术应用_第1页
基于-linux系统防火墙技术应用_第2页
基于-linux系统防火墙技术应用_第3页
基于-linux系统防火墙技术应用_第4页
基于-linux系统防火墙技术应用_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE -PAGE . z.本科毕业设计题目:基于linu*系统的防火墙技术的研究和应用 学 院:信息科学与工程学院 专 业:电子信息工程 学 号:9 学生:付剑雄 指导教师:富年 日 期:二一二年六月 摘 要随着计算机网络,特别是近年来Internet的飞速开展,各公司、企业、政府机关交流信息的方式正在发生变化。但这些部门面临的最大的问题就是如何用一种有效的平安解决方案来保护网络及信息系统不受攻击。在众多的方案中,防火墙是平安解决策略的关键局部。防火墙是一类平安防措施的总称,它是在两个网络之间强制实施控制策略的一个系统或一组系统。本文主要是针对有关防火墙的技术和防火墙应用的模型、设计和实现

2、进展研究,通过对各种防火墙技术和防火墙体系构造的分类比拟,对明确防火墙相关概念和选择使用防火墙上具有指导意义。同时,介绍了一种在Linu*系统下集包过滤与代理于一身的复合防火墙的设计和实现过程。本课程设计介绍基于Netfilter/Iptables的包过滤防火墙的实现原理。对Linu*系统、TCP/IP的相关知识及Iptables语法做了介绍。详细介绍了Iptables命令的使用举例,通过实例介绍了基于Netfilter/Iptables的包过滤防火墙的配置过程。本课题目标是设计并实现一种新型防火墙。这种防火墙既有包过滤的功能,又能在应用层进展代理,具有先进的过滤和代理体系,能从数据链路层到应

3、用层进展全方位平安处理。TCP/IP协议和代理的直接相互配合,使系统的防欺骗能力和运行的强健性都大大提高。实现了什么功能。在这里介绍的一些技术细节和实现策略可以为今后的防火墙构造提供借鉴。这种防火墙技术不仅可以使系统更具有灵活性和可扩展性,更使得系统的平安性得到提高。关键词: 防火墙; 包过滤; 代理; 复合型防火墙; Linu*-. zAbstractRecently, with puter network and Internet increasing rapidly, its have changed forever the way of corporations, enterprise

4、s, and organizations municating. But the vital problem that they must face is how to protect their network and information system against attack by setting an effective network security solution. In all of this solution, firewall is one of the important parts.Firewall is a type of network security m

5、easure. A firewall is a system or group of systems that enforces an access control policy between two networks. In the dissertation, we study on the modeling, design, and implementation of firewall technologies and firewall application, By the paring and classifying the all types of firewall technol

6、ogy, we present a whole concept of firewall technology to reader. It is the good guide to choice and building firewall system. In additional, we illustrate a process of designing and implementing a ple* firewall system which make packet filter and pro*y under Linu* operation system, All of the detai

7、l of technologies and implementing strategies are a good e*ample to building firewall system in future. the firewalls are not only enhanced the fle*ible and e*pandable of application but also allowed to raise the systems safety.Key words: Firewall; Packet Filter; Pro*y; Hybrid-Firewall; Linu* 目 录 TO

8、C o 1-3 h u HYPERLINK l _Toc9509 引 言 PAGEREF _Toc9509 5 HYPERLINK l _Toc29457 第1章 绪论 PAGEREF _Toc29457 6 HYPERLINK l _Toc5655 1.1 Intranet系统以及其平安问题 PAGEREF _Toc5655 6 HYPERLINK l _Toc4569 1.2 防火墙技术 PAGEREF _Toc4569 7 HYPERLINK l _Toc3715 1.2.1 防火墙的定义 PAGEREF _Toc3715 8 HYPERLINK l _Toc11618 1.2.2 防火

9、墙的根本类型 PAGEREF _Toc11618 8 HYPERLINK l _Toc9250 1.2.3 包过滤防火墙 PAGEREF _Toc9250 9 HYPERLINK l _Toc20474 1.2.4 应用网关 PAGEREF _Toc20474 10 HYPERLINK l _Toc15766 1.3 设计与实现Linu*防火墙的缘起与目标 PAGEREF _Toc15766 12 HYPERLINK l _Toc32021 第2章 使用防火墙构造平安的解决方案 PAGEREF _Toc32021 14 HYPERLINK l _Toc21198 2.1 堡垒主机或双穴主机网关

10、 PAGEREF _Toc21198 14 HYPERLINK l _Toc20056 2.2 被屏蔽主机网关 PAGEREF _Toc20056 15 HYPERLINK l _Toc31130 2.3 被屏蔽子网 PAGEREF _Toc31130 15 HYPERLINK l _Toc8417 第3章 Linu*防火墙技术 PAGEREF _Toc8417 17 HYPERLINK l _Toc26580 3.1 Linu* 防火墙技术的开展 PAGEREF _Toc26580 17 HYPERLINK l _Toc29906 3.2 利用Linu* 实现路由和包过滤 PAGEREF _

11、Toc29906 17 HYPERLINK l _Toc8130 3.2.1 Ipchains原理及简介 PAGEREF _Toc8130 17 HYPERLINK l _Toc739 3.2.2 Ipchains命令使用简介 PAGEREF _Toc739 22 HYPERLINK l _Toc24738 3.3 Linu*下代理的实现 PAGEREF _Toc24738 28 HYPERLINK l _Toc22836 3.3.1代理效劳器概述 PAGEREF _Toc22836 28 HYPERLINK l _Toc1149 3.3.2 代理软件的简介和比拟 PAGEREF _Toc11

12、49 32 HYPERLINK l _Toc9298 结 论 PAGEREF _Toc9298 35 HYPERLINK l _Toc32184 致 PAGEREF _Toc32184 37 HYPERLINK l _Toc11529 参考文献 PAGEREF _Toc11529 38引 言随着网络的开展, 网络的资源共享, 网上办公,电子商务等蓬勃开展, 网络给人们带来了更快捷方便的信息交换和处理方式, 在各方面改变着人们的生产,生活。为了充分利用网络技术带来的快捷和方便, 越来越多的公司和政府部门在公司或部门围组建起自己的计算机网络系统(Intranet), Intranet的技术优势,

13、给公司带来了高效的工作效率的同时, 也带来了全新的平安问题。全球信息平安方面的研究工作者就此问题展开了广泛而深入的研究,其中防火墙技术1是近年开展起来的一种网络平安技术。顾名思义,它是在受保护网与外部网之间构造一个保护层,把攻击者挡在受保护网的外面。这种技术强制所有外网的连接都必须经过此保护层,在此进展检查和连接,从而保护了受保护网资源免遭外部非法入侵。它通过监测、限制或更改跨越防火墙的数据流,尽可能地对外部网络屏蔽有关受保护网络的信息和构造来实现对网络的平安保护。本文将首先从Intranet的平安性入手, 分析Intranet面临的平安问题,讨论Intranet平安设计需求,然后详述防火墙的

14、背景知识和关键技术,最后重点介绍我们提出的基于Linu*平台的复合防火墙的设计和实现。绪论研究意义Intranet简单地说是采用Internet的技术和产品建立的公司中专用企业网络,人们可以利用现有的部网络硬件、软件和效劳器,采用Internet技术协议(如TCP/IP、HTTP、SMTP、HTML 等等)来建立企业Intranet。近年来,Intranet受到了人们的普遍关注,并得到了迅速开展。由于Intranet突破了传统的企业管理信息系统的系统模式,采用了多层的Client/Server模式,并利用业已成熟而广泛采用的Internet技术,因此,现代企业网络都采用以Web为核心应用,以T

15、CP/IP、HTTP为传输协议,通过浏览器与Web相连的后台数据库,构成统一便利的信息交换平台,同时又能较好地与传统的企业信息系统相融合,使企业的传统应用平衡地过度到Intranet。随着Intranet带来的企业效.率的提高, 带来了高度的信息共享和快捷便利的信息处理的方式的同时, 也带来了更大的平安性问题。一方面, 随着企业规模的扩大, 为了提高企业的工作效率, 加强部门间的信息交流和事务处理, 要求网上办公的规模也逐渐深化, 通过Intranet共享的信息资源增多。这些不同的信息按照其不同的容和性质及其程度, 应当设置不同的控制策略。 另一方面, 随着企业规模的扩大, Intranet也

16、相应的扩大, 连接到Intranet上工作的人员也增多, 企业的工作人员都通过Intranet共享的信息资源, 这样从Intranet 部造成的平安威胁在增加,对资源的争用也更突出。如果没有完善的平安措施, 就可能由于工作人员的疏忽和误操作,或者部人员的恶意犯罪, 造成绝密信息的泄露或系统信息资源的破坏。Intranet2的平安即保护部的信息资源, 使其不受意外的和蓄意的未经授权的泄露和破坏。 为了实现这一平安目标, 就必须对Intranet上的信息资源实现有效的控制, 使得只有经过授权的用户才能以被授权的方式(读, 写, 执行) 进展。 制止非法用户的非授权和合法用户的越权。防火墙 介绍2.

17、 研究容3. 论文组织1.2 防火墙技术现代计算机环境中,由于环境的复杂性和多样性,使得单纯的主机平安防卫越来越无法适应网络时代的要求,网络平安防卫模式在这种情况下应运而生。网络平安效劳3的最大特点就是将分散的各种平安任务集中到一点来管理,把注意力集中到控制不同主机的网络通信和它们所提供的效劳上来。采用网络平安防卫可以获得很多的好处,例如,一个单独的网络防火墙可以保护几百几千台计算机免于防火墙外的攻击,即使部个别主机的主机防卫水平比拟低。防火墙是一种网络平安防卫的典型实例。通常,将防火墙安装在被保护的部网和外部网/Internet之间的连接点上,所有进出部网络的活动都必须经过防火墙,这样防火墙

18、就可以在此检查这些活动,实施平安防措施。防火墙也可以被认为是一种控制机制,决定哪些部效劳允许外部,哪些不允许,反之亦然。从逻辑上讲,防火墙是一个别离器,是一个限制器,也是一个分析器4。防火墙是一种有效的网络平安控制机制。它可以防止外部网络发生的危险涉及部网络,归纳起来,其主要功能包括:限制*些用户/信息进入或离开一个被严格控制的子网:通过防火墙可以过滤掉不平安效劳和非法用户,制止未授权的用户受保护网络。可以把防火墙设置成为只有预先被允许的效劳和用户才能通过防火墙。这样就降低了被保护子网遭受非法攻击的风险性,大大提高了网络平安性。控制对特殊端点的:防火墙可以允许受保护网的一些主机被外部网,而另一

19、些被保护起来,防止不必要。提供监视Internet平安和预警的方便端点:防火墙可以记录下所有通过它的并提供网络使用情况的统计数据。同时它也是审查和记录Internet使用情况的最正确点,帮助网络管理员掌握Internet连接费用和带宽拥挤的详细情况,提供了一个减轻部门负担的方法。各种的防火墙的构造是不同的,有的是一台主机,有的甚至是一个网络系统。这要取决于站点的平安要求和投资等综合因素。1.2.1 防火墙的定义防火墙Firewall的原始含义是一种建筑,用以防止着火的时候火不至从一个房间蔓延到另一个房间。后来,将其引入到计算机平安的领域来,特别是近年来多用于飞速开展的Internet网络中。所

20、以,有时也叫Internet防火墙。防火墙5是在两个网络之间强制实施控制策略的一个系统或一组系统,是一个由多个部件组成的集合,它被放在两个网络之间,并具有如下特性:所有的从部到外部或从外部到部的通信都必须经过它。只有部策略授权的通信才能被允许通过。系统本身要具有高可靠性。简而言之,防火墙就是用来保护可信网络不受非可信网络侵入的一种机制,但它允许在这两个网络之间的进展通信。这两种网络的最典型的例子就是企业部网和Internet。从平安策略和网络配置的角度来看,防火墙就是附加了许多平安机制的主机系统或路由器,使得部网络与Internet之间或者与其他外部网络互相隔离,通过限制网络互访,隐藏主机或子

21、网中的协议和效劳,并保护其部资源不受外部的攻击或滥用。1.2.2 防火墙的根本类型经过十余年的开展过程,目前存在应用不同技术的多种防火墙,这些技术之间的区分不很明显,但就其处理的数据对象和实现层次来说,大体上可分为包过滤和应用层网关两种类型6:包过滤防火墙:它是在IP层实现的,其处理对象是网络报文/IP包。因此,它可以只用路由器完成。包过滤根据网络报文的源IP地址、目的IP地址、源端口、目的端口及报文传递方向等报头信息来判断是否允许报文通过。应用网关防火墙:它是在应用层实现的,通过对网络效劳的代理,检查进出网络的各种效劳。其处理对象是各种不同的应用效劳。由于网络通讯基于层次参考模型,所以,不同

22、类型的防火墙也就处理不同层次抽象出的通讯数据。IP包过滤处理网络层数据,应用代理处理应用层数据。随着防火墙技术的不断开展,近年来出现了许多加强功能的防火墙,本质上讲,它们都是这两类根本类型。例如,现在出现了一种可以分析IP包数据区容的智能型包过滤器7,它通过深入检查IP包而得出的有关各种Internet效劳的信息,进而进展控制,实际上属于包过滤型防火墙。另外,有些防火墙是控制TCP通信会话层,如SOCKS,这种防火墙本质上是应用网关,只是对所有的应用都通过控制连接会话来实施。1.2.3 包过滤防火墙包过滤防火墙工作于网络体系构造的IP层,作用对象是网络报文或称为IP包。众所周知,在TCP/IP

23、网络中,数据都是被封装到不同的IP包中进展传输的。包过滤防火墙就是截获每个通过它的IP包,并进展平安检查,如果通过检查,就将该IP包正常转发出去,否则,阻止其通过,也就阻断了网络通讯。TCP/IP8体系构造中,IP的信息主要包含以下容:IP源地址IP目的地址协议说明该IP包是TCP、UDP或ICMP包TCP或UDP的源端口TCP或UDP的目的端口ICMP信息类型在Internet中,提供*些特定效劳的效劳器一般都使用相对固定的端口。因此,包过滤器只需控制端口,也就控制了效劳。IP包过滤的功能应用十分广泛,最常见的就是包过滤路由器。它就是在路由IP包的同时基于一定的规则对IP包进展平安检查。这些

24、规则一般是基于一个五元组:包过滤就可以通过协议类型来控制特定协议,通过IP地址9来控制特定的源和目的主机,通过控制源和目的端口来控制特定网络效劳,通过源/目的来控制是入网信息还是出网信息,即控制信息方向。同时,还可以制定IP地址和端口的组合规则,使得这种平安检查更加细致。IP包过滤能够有效地控制网络的通信,具有速度快,效率高,花费少,对用户透明,支持任何协议等优点,但它仍然存在着以下缺乏:允许外部客户机直接连接部主机系统可能导致IP欺骗等基于源地址的网络攻击在复杂环境中,管理的复杂度迅速提高一般的包过滤的审计功能较弱不能提供用户认证包检查型防火墙是一种新型的防火墙,本质上也是应用了包过滤技术,

25、所不同的是它不只根据IP信息进展检查过滤,而且还要检查包的TCP头甚至包的容。同时,还引入了动态规则的概念,减少许多防火墙系统的漏洞。1.2.4 应用网关应用网关就是在网关上执行一些特定的应用程序或效劳器程序,这些程序统称为代理Pro*y程序。在一个网络中,对于由向外的请求和由外向的请求的处理是不同的。一般认为部网络是比拟平安,外部网络是危险的。所以,要控制外部网络向部的信息请求。这时,就由代理程序将外部用户对部网络的效劳请求依据已制定的平安规则决定是否向部真实效劳器提交。代理效劳替代外部用户与部网络中的效劳器进展连接。一个代理就好象在应用效劳和用户之间的一个转发器。当一个远程用户要请求部的效

26、劳时,它首先与这个代理相连,经过认证后,再由代理连到目的主机,同时,将效劳器的响应传送回给所代理的客户,如图1-1所示。在这个过程中,代理既是客户程序又担任效劳器的角色,对于真正的客户请求来说,它是效劳器;而对于效劳器来说,它是一个客户请求进程。代理效劳是一种软件防火墙的解决方案。从代理实现在不同的OSI网络分层次构造上来看,代理可分为回路层代理和应用层代理;从代理控制的效劳数来看,代理可分为公用代理和专用代理。 回路层代理回路层代理是工作在传输层上的一种代理方法,实现时通常在通用的传输层之上插入代理模块。由于对于所有网络效劳,都通过共同的回路层代理,所以这种代理也叫公共代理。所有的入站和出站

27、连接都必须先连接代理。在建立连接之前,由代理效劳器先检查连接会话请求,应用控制规则决定是否建立连接,然后再建立连接,并一直监控连接状态。当连接翻开时,回路层代理会将IP包在用户应用程序和Internet效劳之间进展转发。如果符合平安规则,则正常转发;否则,IP数据包不得通过。回路层代理可以提供较详尽的控制机制,其中包括认证和其它客户与代理之间的信息交换。其缺点在于它是控制连接的,不支持UDP的效劳。另外,这种代理不能提供太详尽的审计信息。 应用层代理应用层代理防火墙能针对不同的应用协议和特殊的平安效劳需求进展处理,并且能对IP包中的数据甚至数据重组后的容进展不同的处理的。通常,在这类防火墙系统

28、中,都会有多个代理分别对应不同的应用。每出现一种新的应用,就必须提供新的与之对应的代理,因此属于专用代理。与回路层代理相比,应用层代理与其对等实体之间具有更好的交互性。在这个过程中,代理程序既是客户程序,又是效劳器程序。首先,代理以效劳器的身份接收的来自真正客户的请求,然后,对客户进展认证和平安检查;平安检查通过后,再以客户机的身份将客户请求转发给真正的效劳器。待会话建立后,代理就作为一个转接器,在已初始化的客户机和效劳器之间拷贝数据。因为在客户机和效劳器之间的所有数据都由应用程序代理存储转发,它对会话和数据拥有全部控制权。所以,应用层代理能提供非常细致的认证和对应用效劳进展控制。1.3 设计

29、与实现Linu*防火墙的缘起与目标近几年来,迅速崛起的Linu*成为IT产业最引人注目的焦点之一。Linu*10作为类Uni*的一个网络操作系统,其良好的稳定性,低廉的价格和开放的源代码,在全球产生了巨大的影响。Linu*是一种符合GNU通用公共协议GPL的完全公开源码的类UNI*系统。自1991年芬兰赫尔辛基大学的Lines Torvalds首先开发成功,得到了许多UNI*程序员和爱好者地不断完善。借助全新的Internet开发模式,短短几年时间,Linu*已经成长为一种功能强大、性能稳定的操作系统。Linu*与UNI*高度兼容,稳定性和可靠性都很好,但价格却低廉得多。而且由于完全开放源代码

30、,用户不必担忧操作系统中存在后门,与之相对的是,Windows系统的平安漏洞和后门时有报道,如最近披露的关于FrontPage98的秘密口令使的非授权易如反掌。越来越多的厂商开场支持Linu*并在其上开发应用,使得Linu*的开展和推广速度远远高于其他操作系统,如今已在网络效劳器领域占据了超过20%的市场份额。操作系统作为用户和计算机之间的界面,它一方面管理所有计算机系统资源,另一方面为用户提供一个抽象的虚拟机,防止了对系统硬件的直接操作。Linu*良好的应用前景和开放的代码使得它成为我们开发防火墙的理想平台。此外Linu*置的路由和防火墙功能亦是本课题缘起的另一重要因素。本课题目标是设计并实

31、现一种新型防火墙。这种防火墙既有包过滤的功能,又能在应用层进展代理,具有先进的过滤和代理体系,能从数据链路层到应用层进展全方位平安处理。TCP/IP协议和代理的直接相互配合,使系统的防欺骗能力和运行的强健性都大大提高。-. z第2章 使用防火墙构造平安的解决方案2.1 堡垒主机或双穴主机网关如图2-1所示,这种配置是用一台装有两块网卡的堡垒主机做防火墙。两块网卡各自与受保护网和外部网相连。堡垒主机上运行着防火墙软件,可以转发应用程序,提供效劳等。堡垒主机 受保护网 外部网图2-1 堡垒主机解决方案图双穴主机网关11装配的防火墙软件一般不转发TCP/IP协议,它为每种效劳提供专门的应用程序。其使

32、用的便利性及平安性取决于管理者设置的方式:是否允许用户登录到防火墙上。如果设为允许,方便性提高了,但平安性会降低。例如假设*一合法用户设置的口令比拟脆弱weak,很容易被计算出来,则设法取得该用户口令的黑客会利用该用户的登录到防火墙上,设法取得超级用户特权,这样危险带扩展到整个受保护网。双穴主机网关优于屏蔽路由器的地方是:堡垒主机的系统软件可用于维护系统日志、硬件拷贝日志或远程日志。这对于日后的检查很有用。但这不能帮助网络管理者确认网中哪些主机可能已被黑客入侵。双穴主机网关的一个致命弱点是:一旦入侵者侵入堡垒主机并使其只具有路由功能,则任何网上用户均可以随便网。例如,假设堡垒主机的操作系统是U

33、NI*,系统管理者可以修改核心变量ipforwarding来制止TCP/IP转发。但熟知该操作系统的黑客设法取得系统特权后,也可以重设该变量使其具有路由功能。系统管理员必须很注意监视软件的校订级和网关主机的配置才能及早发现。2.2 被屏蔽主机网关屏蔽主机网关11易于实现也很平安,因此应用广泛。如图2-2 所示,一个分组过滤路由器连接外部网络,同时一个堡垒主机安装在部网络上,通常在路由器上设立过滤规则,并使这个堡垒主机成为从外部网络唯一可直接到达的主机,这确保了部网络不受未被授权的外部用户的攻击。进出部网络的数据只能沿图中的虚线流动。堡垒主机屏蔽路由器网中其他主机外部网受保护网图2-2 屏蔽主机

34、网关图如果受保护网是一个虚拟扩展的本地网,即没有子网和路由器,则网的变化不影响堡垒主机和屏蔽路由器的配置。网关的根本控制策略由安装在上面的软件决定。如果攻击者设法登录到它上面,网中的其余主机就会受到很大威胁。这与双穴主机网关受攻击时的情形差不多。2.3 被屏蔽子网 堡垒主机外部网受保护网屏蔽路由器屏蔽路由器被屏蔽子网图 2-3 屏蔽子网图这种方法是在部网络和外部网络之间建立一个被隔离的子网,用两台分组过滤路由器将这一子网分别与部网络和外部网络分开。在很多实现中,两个分组过滤路由器放在子网的两端,在子网构成一个非军事区DMZ12,如图2-3所示,部网络和外部网络均可被屏蔽子网,但制止它们穿过被屏

35、蔽子网通信,象和FTP效劳器可放在DMZ中。有的屏蔽子网中还设有一堡垒主机作为唯一可点,支持终端交互或作为应用网关代理。这种配置的危险带仅包括堡垒主机、屏蔽子网主机及所有连接网、外网和屏蔽子网的路由器。如果攻击者试图完全破坏防火墙,他必须重新配置连接三个网的路由器,既不切断连接又不要把自己锁在外面,同时又不使自己被发现,这样也还是可能的。但假设制止网络路由器或只允许网中的*些主机它,则攻击会变得很困难。在这种情况下,攻击者得先侵入堡垒主机,然后进入网主机,再返回来破坏屏蔽路由器,整个过程中不能引发警报。-. zLinu*防火墙技术 你的工作Iptable实现局域网的平安控制3.1 Linu*

36、防火墙技术的开展Ipchains是linu*13的防火墙配置工具,以前叫Ipfwadm,版本的更新非常快,现在的版本号是1.3.10。相对于Ipfwadm来讲,Ipchains更容易配置,且功能更强大。最近,Linu*又推出新一代防火墙工具Iptable,但是其运行还不稳定。3.2 利用Linu* 实现路由和包过滤Linu*是一种可以运行在PC上的网络操作系统,对于硬件的要求低,稳定性高,有良好的伸缩性。Linu*已置了路由和防火墙功能。在2.2核以后Linu*推出的技术是Ipchains,在2.4核版本后运行的技术是Iptables,它继续兼容Ipchains.3.2.1 Ipchains原

37、理及简介 原理简介Ipchains14即IP链,是由IP防火墙管理程序ipfwadm开展而来。从根本上说,Ipchains就是一种包过滤器。IpchainsIP链 作为Linu*核心的一局部,当核心启动时,Ipchains也启动假设干个规则表,也叫链。包过滤器实际上是一段程序,它检查IP包的,决定包的命运。它可以丢弃DENY这些包就好似没收到、承受ACCEPT或拒绝REJECT包如DENY,但它告诉包的发送者已经承受。命令ipchains 用于过滤和地址转换规则的建立,维护,及检查。这些防火墙规则15可被分为三种不同的类型: input链、 output链和forward链,过滤

38、和地址转换的控制基于这三种类型的规则设置。Input链是指从防火墙主机外部通过防火墙*块网卡进入防火墙主机的IP包的规则集合。Output链是指从防火墙主机通过防火墙*块网卡出到防火墙主机外部的IP包的规则集合。Forward链是指防火墙主机部从*块网卡转发到另一网卡的IP包的规则集合。当一个包从Internet进入配置了防火墙的linu*的主机,核使用输入链决定该包的取舍。如果该包没有被丢弃,则核继而调用转发链决定是否将该包发送到*个出口,最后当包要被发出前,核通过输出链来做决定。 一个链就是一个规则Rule表。规则的意思是:如果符合规则的定义,就按预先的设定对包作*种处理。如果包与此规则不

39、相符,就与下一个规则比拟。图3-1说明了一个包进入一台机器的流程。Packet In ChecksunC DENYSanity OutputChainForwardChainInput Chain Chain DENY DENY/REJECTDemasqueradeedRoutingDecision YMasqueradLocalI/OInterfaceLocalProcess Y N N DENY/REJECT DENY/REJECTPacket Out 图3-1 包进入机器的流程1:checksum:当一个包进来时,核首先检查它是不是被篡改。主要是检查效验码。(checksum)如果效验码

40、不对,则此包被拒绝。 2:sanity:写在每条防火链的前面,特别是input链。主要是检验那些不规的包。如果包被sanity拒绝,则在syslog文件中有记载。 3:input:包进入input链,按照上面所说的一条链中的包的流程来走。是被拒绝,否认还是被承受,重定向等。 4:Demasqerade:包被承受。此包是由原来的包经过伪装后的包则解伪装。5:Routing Decision:通过路由机制判断包的目的地址,是本机器的还是需要转发给其他远程机器的。 6:Local Process:如果包的目的地是本机器。则直接送到output链。 7:Lo interface:如果包是从local

41、process传来的,则它从output链中出来后interface被改为lo,然后再从新被送到input链,以接口是lo的身份再一次通过各个防火链。8:forward:如果是需要转发的包则进入forward链。forward链对那些需要转发的包进展详细的检查,通过了再进展转发。 9:output:此链核对出去的包的详细信息,假设符合,则让它通过。 源代码分析Ipchains置的规则链如何处理承受的包,从而完成过滤任务,这我们必须从源代码进展分析。为加速网络的处理速度,Linu*核中的网络局部采用统一的的缓冲区构造skbuff17,各层协议间通过对skbuff的操作来完成各层协议的封装和拆包。

42、一个个单独的skbuff被组织成双向链表的形式。网卡接收到的数据帧分配一块存,然后将数据整理成skbuff 的构造。在网络协议处理的时候,数据均以skbuff的形式在各层之间传递、处理。Skbuff的强大功能在于它提供了众多指针,可以快速定位各层协议的协议头位置;它也同时保存了许多数据包信息如使用的网络设备等,以便协议层根据需要灵活应用。对IP包过滤的实现在IP层进展,在IP协议层有3个关键的函数ip_rev( ),ip_forward( ),ip_output( )18,分别管理IP层的接收,转发和发送工作。Ipchains中的3种置规则链分别对应作用于这3个函数。下面我们通过对这些函数的介

43、绍,进一步明确Ipchains的工作流程。Ip_rev( )是IP层的接收函数,由它来处理网卡接收到的数据包,它首先检查:长度是否正确版本号是否正确是IPV4还是IPV6校验和是否正确在确定这些信息无误后,则调用包过滤检测:fw_res =call_in_firewall(PF_INET,dev,iph,&rport,&skb);call_in_firewall 会对输入的数据包进展规则检查,fw_ res返回的便是匹配出来的规则。如果对应的规则为不承受该数据包,则立即将此数据包丢弃:if(fw_ resdaddr,iph-saddr,iph-tos,dev)此时路由信息已包括在了skbuff

44、数据构造的dst项中,紧接着调用skb-dst-input(skb)继续处理。对发往本地高层协议的包,则调用ip_local_deliver( )进展处理;对转往其他主机的包,则实际调用ip_forward( )处理。值得注意的是,经伪装的包再回来时,其目的IP是防火墙的IP,经路由后,也送入ip_local_deliver( )处理,在ip_local_deliver( )部先解伪装,然后再查一次路由,发往本地的直接发往高层,否则依然调用ip_forward( )。Ip_forward( )用来处理发往其他主机的数据包。其函数流程为:因为ip_forward( )接收的参数是一个skbuff

45、,它首先利用skbuff的指针,把IP头找出:iph=skb-nh.iph因为ip_forward( )由ip_rev( )调用,而在ip_rev( )中已查过了路由,此处只需利用skbuff的指针定位路由信息即可:struct rtable * rt;/* Route we use */rt=(stuct rtable*)skb-dst;如果此包的生存时间ttl已到,则丢弃:if(iph-ttlis_strict route & rt-rt_dst!=rt_rt_gateway) goto sr_failed;5)如果指定的伪装功能,且上层协议是ICMP,则在此处处理一局部,且跳过后面的包过

46、滤处理: * if def CONFIG_IP_MASQUSERADE if (! (IPCB(skb)-flags &IPSKB-MASQUERADED) if (iph-protocol=IPPROTO_ICMP) fw_res=ip_fw_masq_icmp(&skb,maddr); if(fw_res) /*ICMP matched-skip firewall */ goto skip_call_fw_firewall; * end if6)如果上一步的前提不成立,则要经过一次包过滤。 fw_res= call_fw_firewall(PF_INET,dev2,iph,NULL,&sk

47、b);7)因为转发的数据总是要送出的,紧接着会调用call_out_firewall( ),并把数据送出去。Ip_output( )完成数据包的发送,具体过程参照Ip_rev( )。我们已经知道核在网络层中自动调用用户编写的防火墙程序。但有一个前提条件就是用户必须正确地将自己编写的防火墙程序登记到核中,核中提供了防火墙的登记和卸载函数,分别是register_firewall和unregister_firewall。1、 register_firewall函数原型如下:int register_firewall(int pf,struct firewall_ops *fw)返回值:0代表成功,

48、小于0表示不成功。参数:* 协议标志pf,主要的取值及其代表的协议如下:2代表Ipv4协议,4代表IP*协议,10代表Ipv6协议等。* 参数构造fw定义如下:struct firewall_opsstruct firewall_ops *ne*t;int (*fw_forward)(struct firewall_ops *this, int pf, struct device *dev, void *phdr, void *arg, struct sk_buff *pskb);int (*fw_input)(struct firewall_ops *this, int pf, struct

49、 device *dev, void *phdr, void *arg, struct sk_buff *pskb);int (*fw_output)(struct firewall_ops *this, int pf, struct device *dev, void *phdr, void *arg, struct sk_buff *pskb);int fw_pf; int fw_priority; ;构造中ne*t的域将由核来修改,使其指向下一个防火墙模块。fw_pf域为协议标志,含义同上。fw_priority指定优先级,一般应大于0。fw_input、fw_output、fw_for

50、ward是用户编写的防火墙函数模块,在接收到网络报和发送网络报时核将调用这些模块,后面将详细讨论。 2、 unregister_firewallunregister_firewall的原型说明与调用方法同register_firewall。3.2.2 Ipchains命令使用简介过滤和地址转换功能模块植入LINU*核,因此利用Linu*系统命令ipchains来配置过滤和地址转换规则。命令形式:ipchains命令19主要有以下几种形式:ipchains ADC 链名 规则描述 选项ipchains RI 链名 规则索引 规则描述 选项ipchains D 链名 规则索引 选项ipchains

51、 LFZN* 链名 选项ipchains P 链名 操作target 选项ipchains M -L|-S 选项简介: 命令ipchains 用于过滤和地址转换规则的建立,维护,及检查。这些防火墙规则可被分为三种不同的类型: input链、 output链和forward链,过滤和地址转换的控制基于这三种类型的规则设置。操作: 每条规则都规定了IP 包要符合的标准和一种操作,如果IP 包不匹配此规则的标准,则检查下一条规则;假设匹配则按规则中规定的操作对包进展不同的处理。操作项的值是ACCEPT、DENY、REJECT、MASQ中的一个。ACCEPT表示准许包通过;DENY则表示将包丢弃;RE

52、JECT 的作用与DENY相似,只是REJECT除了丢弃包外还向包的原端发送一个ICMP包告知发送者包被丢弃。MASQ 只在forward链中起作用,外出包的源IP地址会自动被转换成防火墙主机的对外IP地址;进入包在绕经转发链时也会被识别并进展反向地址转换。选项: ipchains命令20所使用的选项可分为几个不同的组:命令这一类选项指定了ipchains命令所执行的特定的行为,除以下指出的特殊情况外,在每一命令行中只能出现这类选项中的一个。-A 在选定的链上追加一条或多条规则,如果源或目的地址不止一个,则对每个可能的源地址目的地址组合都增加此规则。例如你设置一个能解析为多个 IP 地址(使用

53、 DNS)的主机名, ipchains 将如同你对多个地址都设置了命令一样发生作用。假设主机名.foo.解析为三个 IP 地址, 主机名.bar.解析为两个 IP 地址, 则命令 ipchains -A input -j reject -s .bar. -d .foo. 将在 input 链中追加6条规则。-D (-I, -R) 的语法与 -A 完全一样. 当在一个链中有多个一样的规则时, 只有第一个被删除。-D 从选定的链中删除一条或多条规则。删除规则有两种形式:指定要删除的规则在链中的索引;详细描述要删除的规则。首先如果我们知道它是链中的唯一规则, 我们可以使用编号删除, 输入:* ipc

54、hains -D input 1来删除进入链的编号1规则。第二条路是 -A 命令的镜象, 但是用 -D 代替 -A. 当你不愿意去数繁多的规则时, 这是一个有用的方法. 这种情况下, 我们使用:* ipchains -D input -s -p icmp -j DENY-R 在指定的链中用新规则替换已存在的规则。 如果源或目的地址不止一个,则此命令无效规则从1 开场记数。Ipchains R 链名 原规则号 新规则描述 参数-I 将一条或多条规则到指定链中的指定位置。如果指定位置号为1 ,新规则将被插入到链的最先位置。-L 列出指定链中的所有规则。如果不指定是哪条链,所有链的规则信息都被列出。

55、-L有几个可选项. -n(数值)项非常有用, 它阻止 ipchains 去查找 IP 地址, 假设你的DNS没有正确设置, 或你已经过滤掉了 DNS 请求, 这将造成很大延时。 它还会导致端口用数字而不是名字被显示出来。-v选项显示规则的所有详细信息,如包和字节计数器,TOS 掩码, 接口, 和包标记. 用其它的方法这些项都会被忽略。-F 覆盖指定链上的规则。它等价于将链上的全部规则逐个删除。* ipchains -F forward假设你不指定链, 则所有链都将被清空。-Z 将链上的规则和记数器清零。假设与命令-L 同时使用亦是合法的,这样在清零之前先显示链上的容,清零之后不可以再指定任何链

56、。-P 为链上的所有规则指定统一的操作。在操作局部已经介绍了有可能的合法操作。只有非自定义的链才可以使用此命令,置的链名和自定义的链名不可以作为此命令用以指定的操作。-N -new-chain以给定的名字创立一条新的user defined链。不能与已有链同名。-M -masquerading允许观察当前IP伪装的连接与-L一起。或者设置核IP 伪装的参数与 S 一起。-S -set tcp tcpfin udp设置伪装的超时值,-S 后跟三个以秒表示的超时值: TCP sessions, FIN 包到后的 TCP sessions, 和对于 UDP 包的。假设你不想改变这些值, 给个 0 值

57、即可。默认值在 /usr/include/net/ip_masp.h 文件中, 目前分别是 15分, 2分和 5分。仅允许和 -M 一起使用。-C 用指定链中的规则对IP 包进展检查。它利用核中用以检查实际网络的例程来检查IP 包,是极为有用的一个命令。它可以检查所有自定义链和置链上的包,利用防火墙规则和IP 包中一样的参数来对包进展检测,源地址、目的地址、协议、端口号是必须具备的。-h 帮助。提供命令语法的简单描述。参数上面命令中规则的详细描述是通过参数的组合来完成的,下面介绍一下ipchains命令中用到的一些参数的含义及用法21。-p ! protocol 此参数用以指定规则中的协议或待

58、检查包中的协议 protocol的取值可以是tcp、udp、icmp中的一种或全部,也可以是代表这些协议的数字值,文件/etc/protocols中的任意一个协议名都是合法取值,在protocol前加上!表示非protocol协议。假设取值为零则代表所有协议,此情况将与任何协议均匹配。如果不设置此选项,则默认取值为所有协议。在CHECK 命令中,此参数不能取all。 -s ! address/mask ! port:port 描述源地址。Address的取值可以是一个主机名、网络名或者是一个单纯的IP 地址,mask的取值可以是一个网络掩码或者是一个数字,此数字代表网络掩码中左边所有1的个数。

59、例如:24,16代表网络掩码,8代表网络掩码。address前加!表示非的意思。 源地址中可以包含端口号或ICMP 包的类型,它可以是*种效劳的名称、一个端口、一个数字化的ICMP 类型码、或是命令ipchains h icmp 所显示的任意一个ICMP 类型名。 可以使用port:port格式来指定端口号的围,假设没有指定第一个端口号,默认从0开场;假设后一端口号没有指定,则默认为65535。 只有在用到tcp、udp、ICMP协议是才可以指定端口号。加!表示取非。当使用Check命令时需且仅需一个端口号,假设使用-f标志,则不允许使用任何端口号。-source-port ! port:po

60、rt 此参数用以单独指定源端口号或端口号围,详见-s中的介绍。-d ! address /mask ! port:port 指定目的地址。语法构造描述见-s,对于无端口号的ICMP 协议,目的端口指数字化的ICMP 类型码。-destination-port ! port:port 单独指定目的端口,详见-s。-icmp-type ! typename 指定ICMP 的类型利用-h icmp 选项可以查看合法的ICMP 类型名。将其附加于目的地址的定义中将更方便。-j target 此选项指定规则中的操作,即指定当包与规则匹配时要做什么。-i ! name 指定一接口的名称(eth0,eth1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论