一、访问控制简介
访问控制是网络安全防范和保护的主要策略,它的主要任务是保证网络资源不被非法使用和访问。它是保证网络安全最重要的核心策略之一。访问控制涉及的技术也比较广,包括入网访问控制、网络权限控制、目录级控制以及属性控制等多种手段。
1、入网访问控制
入网访问控制为网络访问提供了第一层访问控制。它控制那些能够登录到服务器并获取网络资源的用户,控制准许用户入网的时间和准许他们在哪台工作站入网。用户的入网访问控制可分为三个步骤:用户名的识别与验证、用户口令的识别与验证、用户账号的缺省限制检查。三道关卡中只要任何一关未过,该用户便不能进入该网络。对网络用户的用户名和口令进行验证是防止非法访问的第一道防线。用户还可采用一次性用户口令,也可用便携式验证器(如智能卡)来验证用户的身份。网络管理员可以控制和限制普通用户的账号使用、访问网络的时间和方式。用户账号应只有系统管理员才能建立。用户口令应是每用户访问网络所必须提交的“证件”,用户可以修改自己的口令,但系统管理员应该可以控制口令的以下几个方面的限制:最小口令长度、强制修改口令的时间间隔、口令的惟一性、口令过期失效后允许入网的宽限次数。用户名和口令验证有效之后,再进一步履行用户账号的缺省限制检查。网络应能控制用户登录入网的站点、限制用户入网的时间、限制用户入网的工作站数量。网络应对所有用户的访问进行审计。如果多次输入口令不正确,则认为是非法用户的入侵,应给出报警信息。
2、权限控制
网络的权限控制是针对网络非法操作所提出的一种安全保护措施。用户和用户组被赋予一定的权限。网络控制用户和用户组可以访问哪些目录、子目录、文件和其他资源。可以指定用户对这些文件、目录、设备能够执行哪些操作。受托者指派和继承权限屏蔽(IRM)可作为两种实现方式。受托者指派控制用户和用户组如何使用网络服务器的目录、文件和设备。继承权限屏蔽相当于一个过滤器,可以限制子目录从父目录那里继承哪些权限。我们可以根据访问权限将用户分为以下几类:特殊用户(即系统管理员);一般用户,系统管理员根据他们的实际需要为他们分配操作权限;审计用户,负责网络的安全控制与资源使用情况的审计。用户对网络资源的访问权限可以用访问控制表来描述。
3、目录级安全控制
网络应允许控制用户对目录、文件、设备的访问。用户在目录一级指定的权限对所有文件和子目录有效,用户还可进一步指定对目录下的子目录和文件的权限。对目录和文件的访问权限一般有八种:系统管理员权限、读权限、写权限、创建权限、删除权限、修改权限、文件查找权限、访问控制权限。用户对文件或目标的有效权限取决于以下两个因素:用户的受托者(获准访问文件、目录或对象的用户成为受托者,即Trustee)指派、用户所在组的受托者指派,以及继承权限屏蔽取消的用户权限。一个网络管理员应当为用户指定适当的访问权限,这些访问权限控制着用户对服务器的访问。八种访问权限的有效组合可以让用户有效地完成工作,同时又能有效地控制用户对服务器资源的访问,从而加强了网络和服务器的安全性。
4、属性安全控制
当使用文件、目录和网络设备时,网络系统管理员应给文件、目录等指定访问属性。属性安全在权限安全的基础上提供更进一步的安全性。网络上的资源都应预先标出一组安全属性。用户对网络资源的访问权限对应一张访问控制表,用以表明用户对网络资源的访问能力。属性设置可以覆盖已经指定的任何受托者指派和有效权限。属性往往能控制以下几个方面的权限:向某个文件写数据、拷贝一个文件、删除目录或文件、查看目录和文件、执行文件、隐含文件、共享、系统属性等。
5、服务器安全控制
网络允许在服务器控制台上执行一系列操作。用户使用控制台可以装载和卸载模块,可以安装和删除软件。网络服务器的安全控制包括可以设置口令锁定服务器控制台,以防止非法用户修改、删除重要信息或破坏数据;可以设定服务器登录时间限制、非法访问者检测和关闭的时间间隔。
二、防火墙简介
一般认为,防火墙是位于两个信任程度不同的网络之间(如企业内部网络和因特网之间)的软件或硬件设备的组合,它对两个网络之间的通信进行控制,通过强制实施统一的安全策略,防止对重要信息资源的非法存取和访问,以达到保护系统安全的目的。
通常的做法是将防火墙安放在组织机构与外部网络之间,不过大的机构可能还需要内部防火墙将安全域(Security Domain,也叫管理域(Administrative Domain))隔离开来。安全域即一组在共同管理控制之下,具有相同安全策略和安全等级的系统。在实际设计时,防火墙通常被设计为一个过滤器,用于阻断一定类型的通信传输。有时,在网络内部还要把一些对外提供公共服务的服务器划分出来,另外建立一个停火区,也叫非军事区(DeMilitarized Zone,DMZ),DMZ中的堡垒主机由一个内部网关(Internal Gataway)来协助工作。外部过滤器可用来保护整体网络免受攻击,而内部过滤器则用来保证当某个堡垒主机遭到破坏后内部网络仍能够保持安全,两个过滤器均可保护内部网络,使之免受攻击。一般情况下,建立两个过滤器还是建立一个过滤器,依赖于网络的安全需求。
实现防火墙的技术主要包括两大类:网络级防火墙(也叫包过滤型防火墙)、应用级防火墙(代理级防火墙),下面我们就详细介绍一下这两类防火墙。
1、网络级防火墙
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过与否的判断。从这个意义上讲,路由器就是一个最简单的网络级防火墙,它们能通过检查这些数据包的信息来决定是否将所收到的包转发。网络级防火墙在规则表中定义了各种规则来表明是否同意或拒绝包的通过,然后每当一个数据包通过时,把需要判断的数据包的一些信息同规则表进行比较,检查每一条规则直至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默认规则,一般情况下,默认规则就是要求防火墙丢弃该包。通过定义基于TCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如Telnet、FTP连接。
高级的防火墙系统通常还有状态检测功能,状态检测又称动态包过滤,是在传统包过滤上的功能扩展,最早由 checkpoint提出。传统的包过滤在遇到利用动态端口的协议时会发生困难,如FTP,防火墙事先无法知道一个FTP服务会使用哪些端口,需要打开哪些端口,如果采用原始的静态包过滤的话,就需要将所有可能用到的端口打开,这就违反了最小服务准则,会给安全带来不必要的隐患。基于状态检测的防火墙通过检查应用程序信息(如FTP的PORT和PASS命令),来判断此端口是否允许需要临时打开,而当传输结束时,端口又马上恢复为关闭状态。另外,基于状态检测的防火墙在数据包过滤时,先将该数据包归并到某个现有会话中,这样过滤时只要看一下这个会话所适用的规则就可以了,这样做有两个好处:一个是避免了NMAP之类的扫描程序利用异常数据包进行网络扫描,另一方面,也加快了防火墙匹配的速度。状态检测概念已经在防火墙研究中得到广泛认可,而且,越来越多的产品也在向这个方向迈进。
通常来说,网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护依赖于对网络更高协议层的信息的理解能力。在传统的网络级防火墙中,对网络更高层次的信息的理解能力是十分有限的。
2、应用级防火墙
应用级防火墙能够检查进出的数据包,通过防火墙复制传递数据,防止在受信任服务器和客户机与不受信任的主机间直接建立联系。应用级防火墙能够理解应用层上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
常用的应用级防火墙已有了相应的代理服务器,例如HTTP、NNTP、FTP、Telnet、Rlogin、X-Window 等,但是,对于新开发的应用,尚没有相应的代理服务,它们将通过网络级防火墙和一般的代理服务。
应用级防火墙有较好的访问控制功能,而且能够实现内容检查等高级功能,但实现困难,需要针对不同的协议开发不同的代理服务器,而且其身份认证相比来说要更复杂一些。
从近年的发展来看,正在有两种防火墙不断融合的趋势。目前很多防火墙产品中,都集成了这两大类功能,用以满足不同的需求。而且,透明代理技术的发展,也使二者的结合成为可能。最早的透明代理实质上属于NAT(网络地址翻译)的一种,当内网主机访问外网时,防火墙将数据包的源地址变成自己的地址,转发给相应的服务器,得到服务器的应答数据包后,将该数据包的目的地址改成原内网主机的地址,这样内网主机在访问外网服务时,不需要做任何特殊的设置。随着防火墙技术的不断发展,已经有厂商开始在防火墙内部进行数据包的重组和上层协议的分析,防火墙将数据包重组后取出请求,由自己向相应的服务器取得结果,并将结果返回给源客户。这样,不需要客户端采取任何特殊配置,防火墙就可以以类似代理的方式来进行工作,从而使防火墙能够在更高的层次上保护网络。这样的防火墙已经具备了一些入侵检测系统的功能,所不同的是,这些防火墙检查到攻击后,可以立即采取措施将会话终止,因此具有更强大的功能。当然,由于引入了更多的处理,如何使这样的防火墙在具有这些功能后,工作效率、强壮性、稳定性达到较高的水平,还是一个难题。
三、防火墙主要功能
防火墙的主要功能的实现都使用下述的三种技术方法。
1、包过滤
包过滤功能(Packert Filtering)拒绝接受从未授权的主机发送的TCP/IP包,并拒绝接受使用未授权的服务的连接请求。
互联网络上,所有信息都是以数据包的形式来传输的,数据包中包含发送方的IP地址和接收方的IP地址。数据包过滤就是将所有通过的数据包中发送方IP地址、接收方IP地址、TCP端口、TCP链路状态等信息读出,并按照预先设定的过滤原则过滤数据包,那些不符合规定的数据包会被防火墙丢弃,以保证内部网络系统的安全。
包过滤防火墙通常是基于访问控制来实现的。它利用数据包的头信息(源IP地址、封装协议、端口号等)判定与过滤规则相匹配与否以决定取舍。建立这类防火墙需要按照如下步骤进行:建立安全策略、写出所允许的和禁止的服务、将安全策略转化为数据包分组字段的逻辑表达式、用相应的句法重写逻辑表达式并设置之。包过滤防火墙主要用来防止外来攻击,或是限制内部用户访问某些外部的资源。如果是防止外部攻击,针对典型攻击的过滤规则,大体有:
(1)源IP地址欺骗式攻击(Source IP Address Spoofing Attacks)。对入侵者假冒内部主机,从外部传输一个源IP地址为内部网络IP地址的数据包的这类攻击,防火墙只需把来自外部端口的使用内部源地址的数据包丢弃即可。
(2)残片攻击(Tiny Fragment Attacks)。入侵者使用TCP/IP数据包分段特性,创建极小的分段并强行将TCP/IP头信息分成多个数据包,以绕过用户防火墙的过滤规则。攻击者期望防火墙只检查第一个分段而允许其余的分段通过。目前,大多数防火墙已经实现了碎片的重组功能,可以进行相应的过滤设置。
(3)针对FTP服务的过滤。由于FTP服务分为数据通道和命令通道,而且有正常模式和被动模式之分,因此普通数据包过滤防火墙无法进行恰当的设置,对于具有状态检测功能的防火墙,则可以轻易地实现。例如,使用Linux下面的iptables,可以利用relate关键来匹配FTP服务及其相关的动态连接。
(4)URL过滤、病毒过滤等。目前一些包过滤防火墙还具有这些扩展功能。在实现时,这些防火墙通常需要审查数据包的内容,以发现可疑的字段,然后进行访问控制设置。这些功能通常按照实现方式的不同,可以分为按照数据包的过滤和按照会话的过滤。在按照数据包的过滤方式中,只是对各个数据包进行检查,这样的检查机制,很容易被绕过;按照会话重组,则不大容易被欺骗,但是代价则是在性能上的牺牲。
事实上,随着防火墙的发展,已经越来越多地融合了入侵检测技术。但是,由于防火墙对于稳定性、效率等都有着很严格的要求,因此二者的融合方式以及具体的方法,都还在不断的研究之中。
2、网路地址翻译
网络地址翻译(Network Address Translation,NAT),NAT 也称为 IP 伪装(IP Masquerading)。防火墙在接收到数据包后,将源地址或者是目的地址修改后发送,主要是为了解决IP地址不足问题。此外,由于使用网络地址翻译导致网络外部无法访问网络内部的未经授权的服务,因此从一定意义来说可以有效地保护网络内部的系统。
NAT主要是通过防火墙、路由器等网络边缘设备来实现。当网络数据包流入防火墙时,系统会检查该数据包是否符合用户设定的NAT规则,如果找到符合的规则,系统会按照规则对数据包进行转换,同时建立一条NAT进程,当有数据包返回时,将检查进程表,进行相应的处理。
3、代理服务
代理服务(Proxy Service),代理服务器从客户端接到请求后,访问需要访问的服务器,并将结果返回给客户端,这种技术通常能够提供更为强大的访问控制。
代理服务器接收客户请求后会检查验证其合法性,如其合法,代理服务器像一台客户机一样取回所需的信息再转发给客户。它将内部系统与外界隔离开来,从外面只能看到代理服务器而看不到任何内部资源。代理服务器只允许有代理的服务通过,而其他所有服务都完全被封锁住。
代理服务器非常适合那些根本就不希望外部用户访问企业内部的网络,而也不希望内部的用户无限制地使用或滥用互联网络。采用代理服务器,可以把企业的内部网络隐藏起来,内部的用户需要验证和授权之后才可以去访问因特网。
以上我们简要介绍了防火墙相关的一些知识,事实上,作为目前网络安全研究上一个重要的组成方面,防火墙正在迅速的发展之中。出现了很多具有新功能的防火墙系统,如基于内容的检测、透明模式等。