欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于linux系统的防火墙技术与应用.doc

    • 资源ID:82398314       资源大小:1.20MB        全文页数:39页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于linux系统的防火墙技术与应用.doc

    本科毕业设计题目:基于linux系统的防火墙技术的研究和应用 学 院:信息科学与工程学院 专 业:电子信息工程 学 号:9 学生姓名:付剑雄 指导教师:李富年 日 期:二一二年六月 摘 要随着计算机网络,特别是近年来Internet的飞速发展,各公司、企业、政府机关交流信息的方式正在发生变化。但这些部门面临的最大的问题就是如何用一种有效的安全解决方案来保护网络及信息系统不受攻击。在众多的方案中,防火墙是安全解决策略的关键部分。防火墙是一类安全防范措施的总称,它是在两个网络之间强制实施访问控制策略的一个系统或一组系统。本文主要是针对有关防火墙的技术和防火墙应用的模型、设计和实现进行研究,通过对各种防火墙技术和防火墙体系结构的分类比较,对明确防火墙相关概念和选择使用防火墙上具有指导意义。同时,介绍了一种在Linux系统下集包过滤与代理于一身的复合防火墙的设计和实现过程。本课程设计介绍基于Netfilter/Iptables的包过滤防火墙的实现原理。对Linux系统、TCP/IP的相关知识及Iptables语法做了介绍。详细介绍了Iptables命令的使用举例,通过实例介绍了基于Netfilter/Iptables的包过滤防火墙的配置过程。本课题目标是设计并实现一种新型防火墙。这种防火墙既有包过滤的功能,又能在应用层进行代理,具有先进的过滤和代理体系,能从数据链路层到应用层进行全方位安全处理。TCP/IP协议和代理的直接相互配合,使系统的防欺骗能力和运行的健壮性都大大提高。实现了什么功能。在这里介绍的一些技术细节和实现策略可以为今后的防火墙构造提供借鉴。这种防火墙技术不仅可以使系统更具有灵活性和可扩展性,更使得系统的安全性得到提高。关键词: 防火墙; 包过滤; 代理; 复合型防火墙; LinuxAbstractRecently, with computer network and Internet increasing rapidly, its have changed forever the way of corporations, enterprises, and organizations communicating. 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 measure. 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 comparing and classifying the all types of firewall technology, 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 complex firewall system which make packet filter and proxy under Linux operation system, All of the detail of technologies and implementing strategies are a good example to building firewall system in future. the firewalls are not only enhanced the flexible and expandable of application but also allowed to raise the systems safety.Key words: Firewall; Packet Filter; Proxy; Hybrid-Firewall; Linux 目 录 引 言5第1章 绪论61.1 Intranet系统以及其安全问题61.2 防火墙技术71.2.1 防火墙的定义81.2.2 防火墙的基本类型81.2.3 包过滤防火墙91.2.4 应用网关101.3 设计与实现Linux防火墙的缘起与目标12第2章 使用防火墙构造安全的解决方案142.1 堡垒主机或双穴主机网关142.2 被屏蔽主机网关152.3 被屏蔽子网15第3章 Linux防火墙技术173.1 Linux 防火墙技术的发展173.2 利用Linux 实现路由和包过滤173.2.1 Ipchains原理及简介173.2.2 Ipchains命令使用简介223.3 Linux下代理的实现283.3.1代理服务器概述283.3.2 代理软件的简介和比较32结 论35致 谢37参考文献38 引 言随着网络的发展, 网络的资源共享, 网上办公,电子商务等蓬勃发展, 网络给人们带来了更快捷方便的信息交换和处理方式, 在各方面改变着人们的生产,生活。为了充分利用网络技术带来的快捷和方便, 越来越多的公司和政府部门在公司或部门范围内组建起自己的计算机网络系统(Intranet), Intranet的技术优势, 给公司带来了高效的工作效率的同时, 也带来了全新的安全问题。全球信息安全方面的研究工作者就此问题展开了广泛而深入的研究,其中防火墙技术1是近年发展起来的一种网络安全技术。顾名思义,它是在受保护网与外部网之间构造一个保护层,把攻击者挡在受保护网的外面。这种技术强制所有内外网的连接都必须经过此保护层,在此进行检查和连接,从而保护了受保护网资源免遭外部非法入侵。它通过监测、限制或更改跨越防火墙的数据流,尽可能地对外部网络屏蔽有关受保护网络的信息和结构来实现对网络的安全保护。 本文将首先从Intranet的安全性入手, 分析Intranet面临的安全问题,讨论Intranet安全设计需求,然后详述防火墙的背景知识和关键技术,最后重点介绍我们提出的基于Linux平台的复合防火墙的设计和实现。第1章 绪论1.1 研究意义Intranet简单地说是采用Internet的技术和产品建立的公司中专用企业网络,人们可以利用现有的内部网络硬件、软件和服务器,采用Internet技术协议(如TCP/IP、HTTP、SMTP、HTML 等等)来建立企业Intranet。近年来,Intranet受到了人们的普遍关注,并得到了迅速发展。由于Intranet突破了传统的企业管理信息系统的系统模式,采用了多层的Client/Server模式,并利用业已成熟而广泛采用的Internet技术,因此,现代企业网络都采用以Web为核心应用,以TCP/IP、HTTP为传输协议,通过浏览器访问与Web相连的后台数据库,构成统一便利的信息交换平台,同时又能较好地与传统的企业信息系统相融合,使企业的传统应用平衡地过度到Intranet。随着Intranet带来的企业效.率的提高, 带来了高度的信息共享和快捷便利的信息处理的方式的同时, 也带来了更大的安全性问题。一方面, 随着企业规模的扩大, 为了提高企业的工作效率, 加强部门间的信息交流和事务处理, 要求网上办公的规模也逐渐深化, 通过Intranet共享的信息资源增多。这些不同的信息按照其不同的内容和性质及其保密程度, 应当设置不同的访问控制策略。 另一方面, 随着企业规模的扩大, Intranet也相应的扩大, 连接到Intranet上工作的人员也增多, 企业的工作人员都通过Intranet访问共享的信息资源, 这样从Intranet 内部造成的安全威胁在增加,对资源的争用也更突出。如果没有完善的安全措施, 就可能由于工作人员的疏忽和误操作,或者内部人员的恶意犯罪, 造成绝密信息的泄露或系统信息资源的破坏。Intranet2的安全即保护内部的信息资源, 使其不受意外的和蓄意的未经授权的泄露和破坏。 为了实现这一安全目标, 就必须对Intranet上的信息资源实现有效的访问控制, 使得只有经过授权的用户才能以被授权的方式(读, 写, 执行) 进行访问。 禁止非法用户的非授权访问和合法用户的越权访问。防火墙 介绍2. 研究内容3. 论文组织1.2 防火墙技术现代计算机环境中,由于环境的复杂性和多样性,使得单纯的主机安全防卫越来越无法适应网络时代的要求,网络安全防卫模式在这种情况下应运而生。网络安全服务3的最大特点就是将分散的各种安全任务集中到一点来管理,把注意力集中到控制不同主机的网络通信和它们所提供的服务上来。采用网络安全防卫可以获得很多的好处,例如,一个单独的网络防火墙可以保护几百几千台计算机免于防火墙外的攻击,即使内部个别主机的主机防卫水平比较低。防火墙是一种网络安全防卫的典型实例。通常,将防火墙安装在被保护的内部网和外部网/Internet之间的连接点上,所有进出内部网络的活动都必须经过防火墙,这样防火墙就可以在此检查这些活动,实施安全防范措施。防火墙也可以被认为是一种访问控制机制,决定哪些内部服务允许外部访问,哪些不允许,反之亦然。从逻辑上讲,防火墙是一个分离器,是一个限制器,也是一个分析器4。防火墙是一种有效的网络安全控制机制。它可以防止外部网络发生的危险波及内部网络,归纳起来,其主要功能包括:l 限制某些用户/信息进入或离开一个被严格控制的子网:通过防火墙可以过滤掉不安全服务和非法用户,禁止未授权的用户访问受保护网络。可以把防火墙设置成为只有预先被允许的服务和用户才能通过防火墙。这样就降低了被保护子网遭受非法攻击的风险性,大大提高了网络安全性。l 控制对特殊端点的访问:防火墙可以允许受保护网的一些主机被外部网访问,而另一些被保护起来,防止不必要访问。l 提供监视Internet安全和预警的方便端点:防火墙可以记录下所有通过它的访问并提供网络使用情况的统计数据。同时它也是审查和记录Internet使用情况的最佳点,帮助网络管理员掌握Internet连接费用和带宽拥挤的详细情况,提供了一个减轻部门负担的方法。各种的防火墙的构造是不同的,有的是一台主机,有的甚至是一个网络系统。这要取决于站点的安全要求和投资等综合因素。1.2.1 防火墙的定义“防火墙(Firewall)”的原始含义是一种建筑,用以防止着火的时候火不至从一个房间蔓延到另一个房间。后来,将其引入到计算机安全的领域来,特别是近年来多用于飞速发展的Internet网络中。所以,有时也叫Internet防火墙。防火墙5是在两个网络之间强制实施访问控制策略的一个系统或一组系统,是一个由多个部件组成的集合,它被放在两个网络之间,并具有如下特性:l 所有的从内部到外部或从外部到内部的通信都必须经过它。l 只有内部访问策略授权的通信才能被允许通过。l 系统本身要具有高可靠性。简而言之,防火墙就是用来保护可信网络不受非可信网络侵入的一种机制,但它允许在这两个网络之间的进行通信。这两种网络的最典型的例子就是企业内部网和Internet。从安全策略和网络配置的角度来看,防火墙就是附加了许多安全机制的主机系统或路由器,使得内部网络与Internet之间或者与其他外部网络互相隔离,通过限制网络互访,隐藏主机或子网中的协议和服务,并保护其内部资源不受外部的攻击或滥用。1.2.2 防火墙的基本类型经过十余年的发展过程,目前存在应用不同技术的多种防火墙,这些技术之间的区分不很明显,但就其处理的数据对象和实现层次来说,大体上可分为包过滤和应用层网关两种类型6:l 包过滤防火墙:它是在IP层实现的,其处理对象是网络报文/IP包。因此,它可以只用路由器完成。包过滤根据网络报文的源IP地址、目的IP地址、源端口、目的端口及报文传递方向等报头信息来判断是否允许报文通过。l 应用网关防火墙:它是在应用层实现的,通过对网络服务的代理,检查进出网络的各种服务。其处理对象是各种不同的应用服务。由于网络通讯基于层次参考模型,所以,不同类型的防火墙也就处理不同层次抽象出的通讯数据。IP包过滤处理网络层数据,应用代理处理应用层数据。随着防火墙技术的不断发展,近年来出现了许多加强功能的防火墙,本质上讲,它们都是这两类基本类型。例如,现在出现了一种可以分析IP包数据区内容的智能型包过滤器7,它通过深入检查IP包而得出的有关各种Internet服务的信息,进而进行访问控制,实际上属于包过滤型防火墙。另外,有些防火墙是控制TCP通信会话层,如SOCKS,这种防火墙本质上是应用网关,只是对所有的应用都通过控制连接会话来实施。1.2.3 包过滤防火墙包过滤防火墙工作于网络体系结构的IP层,作用对象是网络报文(或称为IP包)。众所周知,在TCP/IP网络中,数据都是被封装到不同的IP包中进行传输的。包过滤防火墙就是截获每个通过它的IP包,并进行安全检查,如果通过检查,就将该IP包正常转发出去,否则,阻止其通过,也就阻断了网络通讯。TCP/IP8体系结构中,IP包头的信息主要包含以下内容:l IP源地址l IP目的地址l 协议(表明该IP包是TCP、UDP或ICMP包)l TCP或UDP的源端口l TCP或UDP的目的端口l ICMP信息类型在Internet中,提供某些特定服务的服务器一般都使用相对固定的端口。因此,包过滤器只需控制端口,也就控制了服务。IP包过滤的功能应用十分广泛,最常见的就是包过滤路由器。它就是在路由IP包的同时基于一定的规则对IP包进行安全检查。这些规则一般是基于一个五元组:<协议类型,源地址,目的地址,源端口,目的端口>包过滤就可以通过协议类型来控制特定协议,通过IP地址9来控制特定的源和目的主机,通过控制源和目的端口来控制特定网络服务,通过源/目的来控制是入网信息还是出网信息,即控制信息方向。同时,还可以制定IP地址和端口的组合规则,使得这种安全检查更加细致。IP包过滤能够有效地控制网络的通信,具有速度快,效率高,花费少,对用户透明,支持任何协议等优点,但它仍然存在着以下不足:l 允许外部客户机直接连接内部主机系统l 可能导致IP欺骗等基于源地址的网络攻击l 在复杂环境中,管理的复杂度迅速提高l 一般的包过滤的审计功能较弱l 不能提供用户认证包检查型防火墙是一种新型的防火墙,本质上也是应用了包过滤技术,所不同的是它不只根据IP包头信息进行检查过滤,而且还要检查包的TCP头甚至包的内容。同时,还引入了动态规则的概念,减少许多防火墙系统的漏洞。1.2.4 应用网关应用网关就是在网关上执行一些特定的应用程序或服务器程序,这些程序统称为“代理(Proxy)”程序。在一个网络中,对于由内向外的请求和由外向内的请求的处理是不同的。一般认为内部网络是比较安全,外部网络是危险的。所以,要控制外部网络向内部的信息请求。这时,就由代理程序将外部用户对内部网络的服务请求依据已制定的安全规则决定是否向内部真实服务器提交。代理服务替代外部用户与内部网络中的服务器进行连接。一个代理就好象在应用服务和用户之间的一个转发器。当一个远程用户要请求内部的服务时,它首先与这个代理相连,经过认证后,再由代理连到目的主机,同时,将服务器的响应传送回给所代理的客户,如图1-1所示。在这个过程中,代理既是客户程序又担任服务器的角色,对于真正的客户请求来说,它是服务器;而对于服务器来说,它是一个客户请求进程。代理服务是一种软件防火墙的解决方案。从代理实现在不同的OSI网络分层次结构上来看,代理可分为回路层代理和应用层代理;从代理控制的服务数来看,代理可分为公用代理和专用代理。1.2.4.1 回路层代理回路层代理是工作在传输层上的一种代理方法,实现时通常在通用的传输层之上插入代理模块。由于对于所有网络服务,都通过共同的回路层代理,所以这种代理也叫公共代理。所有的入站和出站连接都必须先连接代理。在建立连接之前,由代理服务器先检查连接会话请求,应用访问控制规则决定是否建立连接,然后再建立连接,并一直监控连接状态。当连接打开时,回路层代理会将IP包在用户应用程序和Internet服务之间进行转发。如果符合安全规则,则正常转发;否则,IP数据包不得通过。回路层代理可以提供较详尽的访问控制机制,其中包括认证和其它客户与代理之间的信息交换。其缺点在于它是控制连接的,不支持UDP的服务。另外,这种代理不能提供太详尽的审计信息。1.2.4.2 应用层代理应用层代理防火墙能针对不同的应用协议和特殊的安全服务需求进行处理,并且能对IP包中的数据(甚至数据重组后的内容)进行不同的处理的。通常,在这类防火墙系统中,都会有多个代理分别对应不同的应用。每出现一种新的应用,就必须提供新的与之对应的代理,因此属于专用代理。与回路层代理相比,应用层代理与其对等实体之间具有更好的交互性。在这个过程中,代理程序既是客户程序,又是服务器程序。首先,代理以服务器的身份接收的来自真正客户的请求,然后,对客户进行认证和安全检查;安全检查通过后,再以客户机的身份将客户请求转发给真正的服务器。待会话建立后,代理就作为一个转接器,在已初始化的客户机和服务器之间拷贝数据。因为在客户机和服务器之间的所有数据都由应用程序代理存储转发,它对会话和数据拥有全部控制权。所以,应用层代理能提供非常细致的认证和对应用服务进行访问控制。1.3 设计与实现Linux防火墙的缘起与目标近几年来,迅速崛起的Linux成为IT产业最引人注目的焦点之一。Linux10作为类Unix的一个网络操作系统,其良好的稳定性,低廉的价格和开放的源代码,在全球产生了巨大的影响。Linux是一种符合GNU通用公共版权协议(GPL)的完全公开源码的类UNIX系统。自1991年芬兰赫尔辛基大学的Lines Torvalds首先开发成功,得到了许多UNIX程序员和爱好者地不断完善。借助全新的Internet开发模式,短短几年时间,Linux已经成长为一种功能强大、性能稳定的操作系统。Linux与UNIX高度兼容,稳定性和可靠性都很好,但价格却低廉得多。而且由于完全开放源代码,用户不必担心操作系统中存在后门,与之相对的是,Windows系统的安全漏洞和后门时有报道,如最近披露的关于FrontPage98的秘密口令使网站的非授权访问易如反掌。越来越多的厂商开始支持Linux并在其上开发应用,使得Linux的发展和推广速度远远高于其他操作系统,如今已在网络服务器领域占据了超过20%的市场份额。操作系统作为用户和计算机之间的界面,它一方面管理所有计算机系统资源,另一方面为用户提供一个抽象的虚拟机,避免了对系统硬件的直接操作。Linux良好的应用前景和开放的代码使得它成为我们开发防火墙的理想平台。此外Linux内置的路由和防火墙功能亦是本课题缘起的另一重要因素。本课题目标是设计并实现一种新型防火墙。这种防火墙既有包过滤的功能,又能在应用层进行代理,具有先进的过滤和代理体系,能从数据链路层到应用层进行全方位安全处理。TCP/IP协议和代理的直接相互配合,使系统的防欺骗能力和运行的健壮性都大大提高。 第2章 使用防火墙构造安全的解决方案2.1 堡垒主机或双穴主机网关如图2-1所示,这种配置是用一台装有两块网卡的堡垒主机做防火墙。两块网卡各自与受保护网和外部网相连。堡垒主机上运行着防火墙软件,可以转发应用程序,提供服务等。堡垒主机 受保护网 外部网图2-1 堡垒主机解决方案图双穴主机网关11装配的防火墙软件一般不转发TCP/IP协议,它为每种服务提供专门的应用程序。其使用的便利性及安全性取决于管理者设置的访问方式:是否允许用户登录到防火墙上。如果设为允许,方便性提高了,但安全性会降低。例如若某一合法用户设置的口令比较脆弱(weak),很容易被计算出来,那么设法取得该用户口令的黑客会利用该用户的帐户登录到防火墙上,设法取得超级用户特权,这样危险带扩展到整个受保护网。双穴主机网关优于屏蔽路由器的地方是:堡垒主机的系统软件可用于维护系统日志、硬件拷贝日志或远程日志。这对于日后的检查很有用。但这不能帮助网络管理者确认内网中哪些主机可能已被黑客入侵。双穴主机网关的一个致命弱点是:一旦入侵者侵入堡垒主机并使其只具有路由功能,则任何网上用户均可以随便访问内网。例如,若堡垒主机的操作系统是UNIX,系统管理者可以修改核心变量ipforwarding来禁止TCP/IP转发。但熟知该操作系统的黑客设法取得系统特权后,也可以重设该变量使其具有路由功能。系统管理员必须很注意监视软件的校订级和网关主机的配置才能及早发现。2.2 被屏蔽主机网关屏蔽主机网关11易于实现也很安全,因此应用广泛。如图2-2 所示,一个分组过滤路由器连接外部网络,同时一个堡垒主机安装在内部网络上,通常在路由器上设立过滤规则,并使这个堡垒主机成为从外部网络唯一可直接到达的主机,这确保了内部网络不受未被授权的外部用户的攻击。进出内部网络的数据只能沿图中的虚线流动。堡垒主机屏蔽路由器网中其他主机外部网受保护网图2-2 屏蔽主机网关图如果受保护网是一个虚拟扩展的本地网,即没有子网和路由器,那么内网的变化不影响堡垒主机和屏蔽路由器的配置。网关的基本控制策略由安装在上面的软件决定。如果攻击者设法登录到它上面,内网中的其余主机就会受到很大威胁。这与双穴主机网关受攻击时的情形差不多。2.3 被屏蔽子网 堡垒主机外部网受保护网屏蔽路由器屏蔽路由器被屏蔽子网图 2-3 屏蔽子网图这种方法是在内部网络和外部网络之间建立一个被隔离的子网,用两台分组过滤路由器将这一子网分别与内部网络和外部网络分开。在很多实现中,两个分组过滤路由器放在子网的两端,在子网内构成一个“非军事区”DMZ12,如图2-3所示,内部网络和外部网络均可访问被屏蔽子网,但禁止它们穿过被屏蔽子网通信,象WWW和FTP服务器可放在DMZ中。有的屏蔽子网中还设有一堡垒主机作为唯一可访问点,支持终端交互或作为应用网关代理。这种配置的危险带仅包括堡垒主机、屏蔽子网主机及所有连接内网、外网和屏蔽子网的路由器。如果攻击者试图完全破坏防火墙,他必须重新配置连接三个网的路由器,既不切断连接又不要把自己锁在外面,同时又不使自己被发现,这样也还是可能的。但若禁止网络访问路由器或只允许内网中的某些主机访问它,则攻击会变得很困难。在这种情况下,攻击者得先侵入堡垒主机,然后进入内网主机,再返回来破坏屏蔽路由器,整个过程中不能引发警报。第2章 Linux防火墙技术 你的工作Iptable实现局域网的安全控制3.1 Linux 防火墙技术的发展Ipchains是linux13的防火墙配置工具,以前叫Ipfwadm,版本的更新非常快,现在的版本号是1.3.10。相对于Ipfwadm来讲,Ipchains更容易配置,且功能更强大。最近,Linux又推出新一代防火墙工具Iptable,但是其运行还不稳定。3.2 利用Linux 实现路由和包过滤Linux是一种可以运行在PC上的网络操作系统,对于硬件的要求低,稳定性高,有良好的伸缩性。Linux已内置了路由和防火墙功能。在2.2内核以后Linux推出的技术是Ipchains,在2.4内核版本后运行的技术是Iptables,它继续兼容Ipchains.3.2.1 Ipchains原理及简介3.2.1.1 原理简介Ipchains14即IP链,是由IP防火墙管理程序ipfwadm发展而来。从根本上说,Ipchains就是一种包过滤器。Ipchains(IP链) 作为Linux核心的一部分,当核心启动时,Ipchains也启动若干个规则表,也叫链。包过滤器实际上是一段程序,它检查IP包的包头,决定包的命运。它可以丢弃(DENY)这些包(就好像没收到)、接受(ACCEPT)或拒绝(REJECT)包(如DENY,但它告诉包的发送者已经接受)。命令ipchains 用于过滤和地址转换规则的建立,维护,及检查。这些防火墙规则15可被分为三种不同的类型: input链、 output链和forward链,过滤和地址转换的控制基于这三种类型的规则设置。 Input链是指从防火墙主机外部通过防火墙某块网卡进入防火墙主机的IP包的规则集合。 Output链是指从防火墙主机通过防火墙某块网卡出到防火墙主机外部的IP包的规则集合。 Forward链是指防火墙主机内部从某块网卡转发到另一网卡的IP包的规则集合。当一个包从Internet进入配置了防火墙的linux的主机,内核使用输入链决定该包的取舍。如果该包没有被丢弃,则内核继而调用转发链决定是否将该包发送到某个出口,最后当包要被发出前,内核通过输出链来做决定。 一个链就是一个规则(Rule)表。规则的意思是:如果包头符合规则的定义,就按预先的设定对包作某种处理。如果包与此规则不相符,就与下一个规则比较。图3-1说明了一个包进入一台机器的流程。 Packet In ChecksunC DENY Sanity OutputChainForwardChainInput Chain Chain DENY DENY/REJECTDemasqueradeedRoutingDecision Y Masquerad?Local?I/OInterfaceLocalProcess Y N N DENY/REJECT DENY/REJECT Packet Out 图3-1 包进入机器的流程1:checksum:当一个包进来时,内核首先检查它是不是被篡改。主要是检查效验码。(checksum)如果效验码不对,则此包被拒绝。 2:sanity:写在每条防火链的前面,特别是input链。主要是检验那些不规范的包。如果包被sanity拒绝,则在syslog文件中有记载。 3:input:包进入input链,按照上面所说的一条链中的包的流程来走。是被拒绝,否定还是被接受,重定向等。 4:Demasqerade:包被接受。此包是由原来的包经过伪装后的包则解伪装。5:Routing Decision:通过路由机制判断包的目的地址,是本机器的还是需要转发给其他远程机器的。 6:Local Process:如果包的目的地是本机器。则直接送到output链。 7:Lo interface:如果包是从local process传来的,则它从output链中出来后interface被改为"lo",然后再从新被送到input链,以接口是"lo"的身份再一次通过各个防火链。8:forward:如果是需要转发的包则进入forward链。forward链对那些需要转发的包进行详细的检查,通过了再进行转发。 9:output:此链核对出去的包的详细信息,若符合,则让它通过。 3.2.1.2 源代码分析 Ipchains内置的规则链如何处理接受的包,从而完成过滤任务,这我们必须从源代码进行分析。为加速网络的处理速度,Linux内核中的网络部分采用统一的的缓冲区结构skbuff17,各层协议间通过对skbuff的操作来完成各层协议的封装和拆包。一个个单独的skbuff被组织成双向链表的形式。网卡接收到的数据帧分配一块内存,然后将数据整理成skbuff 的结构。在网络协议处理的时候,数据均以skbuff的形式在各层之间传递、处理。Skbuff的强大功能在于它提供了众多指针,可以快速定位各层协议的协议头位置;它也同时保留了许多数据包信息(如使用的网络设备等),以便协议层根据需要灵活应用。对IP包过滤的实现在IP层进行,在IP协议层有3个关键的函数ip_rev( ),ip_forward( ),ip_output( )18,分别管理IP层的接收,转发和发送工作。Ipchains中的3种内置规则链分别对应作用于这3个函数。下面我们通过对这些函数的介绍,进一步明确Ipchains的工作流程。Ip_rev( )是IP层的接收函数,由它来处理网卡接收到的数据包,它首先检查:1) 长度是否正确2) 版本号是否正确(是IPV4还是IPV6)3) 校验和是否正确在确定这些信息无误后,则调用包过滤检测:fw_res =call_in_firewall(PF_INET,dev,iph,&rport,&skb);call_in_firewall 会对输入的数据包进行规则检查,fw_ res返回的便是匹配出来的规则。如果对应的规则为不接受该数据包,则立即将此数据包丢弃:if(fw_ res< FW_ACCEPT && fw_ res != FW_REJECT) goto drop;如果规则允许接受,则查找路由表,对输入的数据包进行路由:ip_route_input(skb,iph->daddr,iph->saddr,iph->tos,dev)此时路由信息已包括在了skbuff数据结构的dst项中,紧接着调用skb->dst->input(skb)继续处理。对发往本地高层协议的包,则调用ip_local_deliver( )进行处理;对转往其他主机的包,则实际调用ip_forward( )处理。值得注意的是,经伪装的包再回来时,其目的IP是防火墙的IP,经路由后,也送入ip_local_deliver( )处理,在ip_local_deliver( )内部先解伪装,然后再查一次路由,发往本地的直接发往高层,否则依然调用ip_forward( )。Ip_forward( )用来处理发往其他主机的数据包。其函数流程为:1) 因为ip_forward( )接收的参数是一个skbuff,它首先利用skbuff的指针,把IP头找出:iph=skb->nh.iph2) 因为ip_forward( )由ip_rev( )调用,而在ip_rev( )中已查过了路由,此处只需利用skbuff的指针定位路由信息即可:struct rtable * rt;/* Route we use */rt=(stuct rtable*)skb->dst;3) 如果此包的生存时间(ttl)已到,则丢弃:if(iph->ttl<=1) goto too_many_hops;4) 如果在选项中指定了严格的源路由功能(strict source routing),且此处无法达到,也丢弃: if(opt->is_strict route && rt->rt_dst!=rt_>rt_gateway) goto sr_failed;5)如果指定的伪装功能,且上层协议是ICMP,则在此处处理一部分,且跳过后面的包过滤处理: # 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,&skb);7)因为转发的数据总是要送出的,紧接着会调用call_out_firewall( ),并把数据送出去。Ip_output( )完成数据包的发送,具体过程参照Ip_rev( )。我们已经知道内核在网络层中自动调用用户编写的防火墙程序。但有一个前提条件就是用户必须正确地将自己编写的防火墙程序登记到内核中,内核中提供了防火墙的登记和卸载函数,分别是register_firewall和unregister_firewall。1、 register_firewall

    注意事项

    本文(基于linux系统的防火墙技术与应用.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开