当前位置:文档之家› 基于linux系统的防火墙技术与应用

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

本科毕业设计

题目:基于linux系统的防火墙技术

的研究和应用

学院:信息科学与工程学院

专业:电子信息工程

学号:200812135129

学生姓名:付剑雄

指导教师:李富年

日期:二〇一二年六月

摘要

随着计算机网络,特别是近年来Internet的飞速发展,各公司、企业、政府机关交流信息的方式正在发生变化。但这些部门面临的最大的问题就是如何用一种有效的安全解决方案来保护网络及信息系统不受攻击。

在众多的方案中,防火墙是安全解决策略的关键部分。防火墙是一类安全防范措施的总称,它是在两个网络之间强制实施访问控制策略的一个系统或一组系统。

本文主要是针对有关防火墙的技术和防火墙应用的模型、设计和实现进行研究,通过对各种防火墙技术和防火墙体系结构的分类比较,对明确防火墙相关概念和选择使用防火墙上具有指导意义。同时,介绍了一种在Linux系统下集包过滤与代理于一身的复合防火墙的设计和实现过程。

本课程设计介绍基于Netfilter/Iptables的包过滤防火墙的实现原理。对Linux系统、TCP/IP的相关知识及Iptables语法做了介绍。详细介绍了Iptables 命令的使用举例,通过实例介绍了基于Netfilter/Iptables的包过滤防火墙的配置过程。

本课题目标是设计并实现一种新型防火墙。这种防火墙既有包过滤的功能,又能在应用层进行代理,具有先进的过滤和代理体系,能从数据链路层到应用层进行全方位安全处理。TCP/IP协议和代理的直接相互配合,使系统的防欺骗能力和运行的健壮性都大大提高。

实现了什么功能。

在这里介绍的一些技术细节和实现策略可以为今后的防火墙构造提供借鉴。这种防火墙技术不仅可以使系统更具有灵活性和可扩展性,更使得系统的安全性得到提高。

关键词: 防火墙; 包过滤; 代理; 复合型防火墙; Linux

Abstract

Recently, 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 system’s safety.

Key words:Firewall; Packet Filter; Proxy; Hybrid-Firewall; Linux

目录

引言 (6)

第1章绪论 (7)

1.1 Intranet系统以及其安全问题 ..................................... 错误!未定义书签。

1.2 防火墙技术 (8)

1.2.1 防火墙的定义 (9)

1.2.2 防火墙的基本类型 (10)

1.2.3 包过滤防火墙 (10)

1.2.4 应用网关 (11)

1.3 设计与实现Linux防火墙的缘起与目标 (13)

第2章使用防火墙构造安全的解决方案 (15)

2.1 堡垒主机或双穴主机网关 (15)

2.2 被屏蔽主机网关 (16)

2.3 被屏蔽子网 (16)

第3章 Linux防火墙技术 (18)

3.1 Linux 防火墙技术的发展 (18)

3.2 利用Linux 实现路由和包过滤 (18)

3.2.1 Ipchains原理及简介 (18)

3.2.2 Ipchains命令使用简介 (24)

3.3 Linux下代理的实现 (29)

3.3.1代理服务器概述 (29)

3.3.2 代理软件的简介和比较 (33)

结论 (36)

致谢 (38)

参考文献 (39)

引言

随着网络的发展, 网络的资源共享, 网上办公,电子商务等蓬勃发展, 网络给人们带来了更快捷方便的信息交换和处理方式, 在各方面改变着人们的生产,生活。为了充分利用网络技术带来的快捷和方便, 越来越多的公司和政府部门在公司或部门范围内组建起自己的计算机网络系统(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 内部造成的安全威胁在增加,对资源的争用也更突出。如果没有完善的安全措施, 就可能由于工作人员的疏忽和误操作,或者内部人员的恶意犯罪, 造成绝密信息的泄露或系统信息资源的破坏。

Intranet[2]的安全即保护内部的信息资源, 使其不受意外的和蓄意的未经授权的泄露和破坏。为了实现这一安全目标, 就必须对Intranet上的信息资源实现有效的访问控制, 使得只有经过授权的用户才能以被授权的方式(读, 写,

执行) 进行访问。禁止非法用户的非授权访问和合法用户的越权访问。

防火墙介绍

2. 研究内容

3. 论文组织

1.2 防火墙技术

现代计算机环境中,由于环境的复杂性和多样性,使得单纯的主机安全防卫越来越无法适应网络时代的要求,网络安全防卫模式在这种情况下应运而生。网络安全服务[3]的最大特点就是将分散的各种安全任务集中到一点来管理,把注意力集中到控制不同主机的网络通信和它们所提供的服务上来。采用网络安全防卫可以获得很多的好处,例如,一个单独的网络防火墙可以保护几百几千台计算机免于防火墙外的攻击,即使内部个别主机的主机防卫水平比较低。

防火墙是一种网络安全防卫的典型实例。通常,将防火墙安装在被保护的内部网和外部网/Internet之间的连接点上,所有进出内部网络的活动都必须经过防火墙,这样防火墙就可以在此检查这些活动,实施安全防范措施。防火墙也可以被认为是一种访问控制机制,决定哪些内部服务允许外部访问,哪些不允许,反之亦然。从逻辑上讲,防火墙是一个分离器,是一个限制器,也是一个分析器[4]。

防火墙是一种有效的网络安全控制机制。它可以防止外部网络发生的危险波及内部网络,归纳起来,其主要功能包括:

限制某些用户/信息进入或离开一个被严格控制的子网:通过防火墙可以过滤掉不安全服务和非法用户,禁止未授权的用户访问受保护网络。

可以把防火墙设置成为只有预先被允许的服务和用户才能通过防火墙。

这样就降低了被保护子网遭受非法攻击的风险性,大大提高了网络安全

性。

●控制对特殊端点的访问:防火墙可以允许受保护网的一些主机被外部网

访问,而另一些被保护起来,防止不必要访问。

●提供监视Internet安全和预警的方便端点:防火墙可以记录下所有通

过它的访问并提供网络使用情况的统计数据。同时它也是审查和记录

Internet使用情况的最佳点,帮助网络管理员掌握Internet连接费用

和带宽拥挤的详细情况,提供了一个减轻部门负担的方法。

各种的防火墙的构造是不同的,有的是一台主机,有的甚至是一个网络系统。这要取决于站点的安全要求和投资等综合因素。

1.2.1 防火墙的定义

“防火墙(Firewall)”的原始含义是一种建筑,用以防止着火的时候火不至从一个房间蔓延到另一个房间。后来,将其引入到计算机安全的领域来,特别是近年来多用于飞速发展的Internet网络中。所以,有时也叫Internet防火墙。

防火墙[5]是在两个网络之间强制实施访问控制策略的一个系统或一组系统,是一个由多个部件组成的集合,它被放在两个网络之间,并具有如下特性:

●所有的从内部到外部或从外部到内部的通信都必须经过它。

●只有内部访问策略授权的通信才能被允许通过。

●系统本身要具有高可靠性。

简而言之,防火墙就是用来保护可信网络不受非可信网络侵入的一种机制,但它允许在这两个网络之间的进行通信。这两种网络的最典型的例子就是企业内部网和Internet。

从安全策略和网络配置的角度来看,防火墙就是附加了许多安全机制的主机系统或路由器,使得内部网络与Internet之间或者与其他外部网络互相隔离,通过限制网络互访,隐藏主机或子网中的协议和服务,并保护其内部资源不受外部的攻击或滥用。

1.2.2 防火墙的基本类型

经过十余年的发展过程,目前存在应用不同技术的多种防火墙,这些技术之间的区分不很明显,但就其处理的数据对象和实现层次来说,大体上可分为包过滤和应用层网关两种类型[6]:

●包过滤防火墙:它是在IP层实现的,其处理对象是网络报文/IP包。因

此,它可以只用路由器完成。包过滤根据网络报文的源IP地址、目的

IP地址、源端口、目的端口及报文传递方向等报头信息来判断是否允许

报文通过。

●应用网关防火墙:它是在应用层实现的,通过对网络服务的代理,检查

进出网络的各种服务。其处理对象是各种不同的应用服务。

由于网络通讯基于层次参考模型,所以,不同类型的防火墙也就处理不同层次抽象出的通讯数据。IP包过滤处理网络层数据,应用代理处理应用层数据。随着防火墙技术的不断发展,近年来出现了许多加强功能的防火墙,本质上讲,它们都是这两类基本类型。例如,现在出现了一种可以分析IP包数据区内容的智能型包过滤器[7],它通过深入检查IP包而得出的有关各种Internet服务的信息,进而进行访问控制,实际上属于包过滤型防火墙。另外,有些防火墙是控制TCP通信会话层,如SOCKS,这种防火墙本质上是应用网关,只是对所有的应用都通过控制连接会话来实施。

1.2.3 包过滤防火墙

包过滤防火墙工作于网络体系结构的IP层,作用对象是网络报文(或称为IP包)。众所周知,在TCP/IP网络中,数据都是被封装到不同的IP包中进行传输的。包过滤防火墙就是截获每个通过它的IP包,并进行安全检查,如果通过检查,就将该IP包正常转发出去,否则,阻止其通过,也就阻断了网络通讯。

TCP/IP[8]体系结构中,IP包头的信息主要包含以下内容:

●IP源地址

●IP目的地址

●协议(表明该IP包是TCP、UDP或ICMP包)

●TCP或UDP的源端口

●TCP或UDP的目的端口

●ICMP信息类型

在Internet中,提供某些特定服务的服务器一般都使用相对固定的端口。因此,包过滤器只需控制端口,也就控制了服务。

IP包过滤的功能应用十分广泛,最常见的就是包过滤路由器。它就是在路由IP包的同时基于一定的规则对IP包进行安全检查。这些规则一般是基于一个五元组:

<协议类型,源地址,目的地址,源端口,目的端口>

包过滤就可以通过协议类型来控制特定协议,通过IP地址[9]来控制特定的源和目的主机,通过控制源和目的端口来控制特定网络服务,通过源/目的来控制是入网信息还是出网信息,即控制信息方向。同时,还可以制定IP地址和端口的组合规则,使得这种安全检查更加细致。

IP包过滤能够有效地控制网络的通信,具有速度快,效率高,花费少,对用户透明,支持任何协议等优点,但它仍然存在着以下不足:

●允许外部客户机直接连接内部主机系统

●可能导致IP欺骗等基于源地址的网络攻击

●在复杂环境中,管理的复杂度迅速提高

●一般的包过滤的审计功能较弱

●不能提供用户认证

包检查型防火墙是一种新型的防火墙,本质上也是应用了包过滤技术,所不同的是它不只根据IP包头信息进行检查过滤,而且还要检查包的TCP头甚至包的内容。同时,还引入了动态规则的概念,减少许多防火墙系统的漏洞。

1.2.4 应用网关

应用网关就是在网关上执行一些特定的应用程序或服务器程序,这些程序统称为“代理(Proxy)”程序。

在一个网络中,对于由内向外的请求和由外向内的请求的处理是不同的。一

般认为内部网络是比较安全,外部网络是危险的。所以,要控制外部网络向内部的信息请求。这时,就由代理程序将外部用户对内部网络的服务请求依据已制定的安全规则决定是否向内部真实服务器提交。代理服务替代外部用户与内部网络中的服务器进行连接。一个代理就好象在应用服务和用户之间的一个转发器。当一个远程用户要请求内部的服务时,它首先与这个代理相连,经过认证后,再由代理连到目的主机,同时,将服务器的响应传送回给所代理的客户,如图1-1所示。

在这个过程中,代理既是客户程序又担任服务器的角色,对于真正的客户请求来说,它是服务器;而对于服务器来说,它是一个客户请求进程。

代理服务是一种软件防火墙的解决方案。从代理实现在不同的OSI 网络分层次结构上来看,代理可分为回路层代理和应用层代理;从代理控制的服务数来看,代理可分为公用代理和专用代理。

1.2.4.1 回路层代理

回路层代理是工作在传输层上的一种代理方法,实现时通常在通用的传输层之上插入代理模块。由于对于所有网络服务,都通过共同的回路层代理,所以这种代理也叫公共代理。 响应

被转发请求

请求被转发响应客户机

服务器

代理服务器代理客户机代理获得客户机和服务器

之间通信的全部控制权

图1-1 应用代理的工作原理

代理应用程序

所有的入站和出站连接都必须先连接代理。在建立连接之前,由代理服务器先检查连接会话请求,应用访问控制规则决定是否建立连接,然后再建立连接,并一直监控连接状态。当连接打开时,回路层代理会将IP包在用户应用程序和Internet服务之间进行转发。如果符合安全规则,则正常转发;否则,IP数据包不得通过。

回路层代理可以提供较详尽的访问控制机制,其中包括认证和其它客户与代理之间的信息交换。其缺点在于它是控制连接的,不支持UDP的服务。另外,这种代理不能提供太详尽的审计信息。

1.2.4.2 应用层代理

应用层代理防火墙能针对不同的应用协议和特殊的安全服务需求进行处理,并且能对IP包中的数据(甚至数据重组后的内容)进行不同的处理的。通常,在这类防火墙系统中,都会有多个代理分别对应不同的应用。每出现一种新的应用,就必须提供新的与之对应的代理,因此属于专用代理。与回路层代理相比,应用层代理与其对等实体之间具有更好的交互性。

在这个过程中,代理程序既是客户程序,又是服务器程序。首先,代理以服务器的身份接收的来自真正客户的请求,然后,对客户进行认证和安全检查;安全检查通过后,再以客户机的身份将客户请求转发给真正的服务器。待会话建立后,代理就作为一个转接器,在已初始化的客户机和服务器之间拷贝数据。

因为在客户机和服务器之间的所有数据都由应用程序代理存储转发,它对会话和数据拥有全部控制权。所以,应用层代理能提供非常细致的认证和对应用服务进行访问控制。

1.3 设计与实现Linux防火墙的缘起与目标

近几年来,迅速崛起的Linux成为IT产业最引人注目的焦点之一。Linux[10]作为类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.3 被屏蔽子网

堡垒主机 屏蔽路由器 网中其他主机

外部网 受保护网

堡垒主机 外部网 受保护网

屏蔽路由器 屏蔽路由器 被屏蔽子网 图2-2 屏蔽主机网关图 图 2-3 屏蔽子网图

这种方法是在内部网络和外部网络之间建立一个被隔离的子网,用两台分组过滤路由器将这一子网分别与内部网络和外部网络分开。在很多实现中,两个分组过滤路由器放在子网的两端,在子网内构成一个“非军事区”DMZ[12],如图2-3所示,内部网络和外部网络均可访问被屏蔽子网,但禁止它们穿过被屏蔽子网通信,象WWW和FTP服务器可放在DMZ中。有的屏蔽子网中还设有一堡垒主机作为唯一可访问点,支持终端交互或作为应用网关代理。这种配置的危险带仅包括堡垒主机、屏蔽子网主机及所有连接内网、外网和屏蔽子网的路由器。

如果攻击者试图完全破坏防火墙,他必须重新配置连接三个网的路由器,既不切断连接又不要把自己锁在外面,同时又不使自己被发现,这样也还是可能的。但若禁止网络访问路由器或只允许内网中的某些主机访问它,则攻击会变得很困难。在这种情况下,攻击者得先侵入堡垒主机,然后进入内网主机,再返回来破坏屏蔽路由器,整个过程中不能引发警报。

第2章Linux防火墙技术你的工作

Iptable实现局域网的安全控制

3.1 Linux 防火墙技术的发展

Ipchains是linux[13]的防火墙配置工具,以前叫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 原理简介

Ipchains[14]即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

C DENY

DENY

DENY/REJECT

Y

Y

N N

DENY/REJECT

Checksun

Sanity Input Chain

Masquerad ? Local? Forward Chain Output Chain

Demasqueradeed Local Process

I/O Interface Routing

Decision

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内核中的网络部分采用统一的的缓冲区结构skbuff[17],各层协议间通过对skbuff的操作来完成各层协议的封装和拆包。一个个单独的skbuff被组织成双向链表的形式。网卡接收到的数据帧分配一块内存,然后将数据整理成skbuff 的结构。在网络协议处理的时候,数据均以skbuff的形式在各层之间传递、处理。Skbuff的强大功能在于它提供了众多指针,可以快速定位各层协议的协议头位置;它也同时保留了许多数据包信息(如使用的网络设备等),以便协议层根据需要灵活应用。对IP包过滤

相关主题
文本预览
相关文档 最新文档