一、cisco防火墙的概念与构成
所谓cisco防火墙就是一个或一组网络设备(计算机或路由器等),可用来在两个或多个网络间加强访问控制。它的实现有好多种形式,有些实现还是很复杂的,但基本原理原理却很简单。你可以把它想象成一对开关, 一个开关用来阻止传输, 另一个开关用来允许传输。
设立cisco防火墙的主要目的是保护一个网络不受来自另一个网络的***。通常,被保护的网络属于我们自己,或者是我们负责管理的,而所要防备的网络则是一个外部的网络,该网络是不可信赖的,因为可能有人会从该网络上对我们的网络发起***,破坏网络安全。对网络的保护包括下列工作:拒绝未经授权的用户访问,阻止未经授权的用户存取敏感数据,同时允许合法用户不受妨碍地访问网络资源。
不同的cisco防火墙侧重点不同。从某种意义上来说,cisco防火墙实际上代表了一个网络的访问原则。如果某个网络决定设定cisco防火墙,那么首先需要由网络决策人员及网络专家共同决定本网络的安全策略(security policy),即确定那些类型的信息允许通过cisco防火墙,那些类型的信息不允许通过cisco防火墙。cisco防火墙的职责就是根据本单位的安全策略,对外部网络与内部网络交流的数据进行检查,符合的予以放行,不符合的拒之门外。
在设计cisco防火墙时,除了安全策略以外,还要确定cisco防火墙类型和拓扑结构。一般来说,cisco防火墙被设置在可信赖的内部网络和不可信赖的外部网络之间。cisco防火墙相当于一个控流器,可用来监视或拒绝应用层的通信业务, cisco防火墙也可以在网络层和传输层运行,在这种情况下,cisco防火墙检查进入和离去的报文分组的IP和TCP头部,根据预先设计的报文分组过滤规则来拒绝或允许报文分组通过。
cisco防火墙是用来实现一个组织机构的网络安全措施的主要设备。在许多情况下需要采用验证安全和增强私有性技术来加强网络的安全或实现网络方面的安全措施。本文主要介绍下列cisco防火墙的基本构件和技术:筛选路由器(screening router)、分组过滤(packet filtering)技术、双宿主机(dual-homed host)、代理服务 (Proxy Service)、应用层网关(application level gateway)和堡垒主机(bastion host)。象筛选路由器这样的能够实现安全措施的路由器常常被称为安全路由器或安全网关,而实现安全管理的应用层网关又称为安全应用层网关。
所谓cisco防火墙就是一个或一组网络设备(计算机或路由器等),可用来在两个或多个网络间加强访问控制。它的实现有好多种形式,有些实现还是很复杂的,但基本原理原理却很简单。你可以把它想象成一对开关, 一个开关用来阻止传输, 另一个开关用来允许传输。
设立cisco防火墙的主要目的是保护一个网络不受来自另一个网络的***。通常,被保护的网络属于我们自己,或者是我们负责管理的,而所要防备的网络则是一个外部的网络,该网络是不可信赖的,因为可能有人会从该网络上对我们的网络发起***,破坏网络安全。对网络的保护包括下列工作:拒绝未经授权的用户访问,阻止未经授权的用户存取敏感数据,同时允许合法用户不受妨碍地访问网络资源。
不同的cisco防火墙侧重点不同。从某种意义上来说,cisco防火墙实际上代表了一个网络的访问原则。如果某个网络决定设定cisco防火墙,那么首先需要由网络决策人员及网络专家共同决定本网络的安全策略(security policy),即确定那些类型的信息允许通过cisco防火墙,那些类型的信息不允许通过cisco防火墙。cisco防火墙的职责就是根据本单位的安全策略,对外部网络与内部网络交流的数据进行检查,符合的予以放行,不符合的拒之门外。
在设计cisco防火墙时,除了安全策略以外,还要确定cisco防火墙类型和拓扑结构。一般来说,cisco防火墙被设置在可信赖的内部网络和不可信赖的外部网络之间。cisco防火墙相当于一个控流器,可用来监视或拒绝应用层的通信业务, cisco防火墙也可以在网络层和传输层运行,在这种情况下,cisco防火墙检查进入和离去的报文分组的IP和TCP头部,根据预先设计的报文分组过滤规则来拒绝或允许报文分组通过。
cisco防火墙是用来实现一个组织机构的网络安全措施的主要设备。在许多情况下需要采用验证安全和增强私有性技术来加强网络的安全或实现网络方面的安全措施。本文主要介绍下列cisco防火墙的基本构件和技术:筛选路由器(screening router)、分组过滤(packet filtering)技术、双宿主机(dual-homed host)、代理服务 (Proxy Service)、应用层网关(application level gateway)和堡垒主机(bastion host)。象筛选路由器这样的能够实现安全措施的路由器常常被称为安全路由器或安全网关,而实现安全管理的应用层网关又称为安全应用层网关。
2.1筛选路由器 (Screening Router)
许多路由器产品都具有根据给定规则对报文分组进行筛选的功能,这些规则包括协议的类型、特定协议类型的源地址和目的地址字段以及作为协议一部分的控制字段。例如在常用的Cisco路由器上就具有这种对报文分组进行筛选的功能,这种路由器被称为筛选路由器。最早的Cisco路由器只能根据IP数据报头部内容进行过滤,而目前的产品还可以根据TCP端口及连接建立的情况进行过滤, 而且在过滤语法上也有了一定改进。
筛选路由器提供了一种强有力的机制,可用于控制任何网络段上的通信业务类型。而通过控制一个网络段上的通信业务类型,筛选路由器可以控制该网络段上网络服务的类型,从而可以限制对网络安全有害的服务。
筛选路由器可以根据协议类型和报文分组中有关协议字段的值来区别不同的网络通信业务。路由器根据与协议相关的准则来区别和限制通过其端口的报文分组的能力被称为报文分组过滤。因此,筛选路由器又称为分组过滤路由器。下面我们首先介绍应用筛选路由器时需要考虑的安全防线设置问题,以及筛选路由器与OSI模型的关系,分组过滤技术将在下一节讨论。
识别危险区域
根据1996年1月的统计,连入INTERNET的网络大约为60,000个左右,主机总数则已超过900万台。由于INTERNET上有如此众多的用户,其中难免有少数居心不良的所谓“***”。这种情况就象迁入一个大城市时会遇到犯罪问题一样。在大城市中,使用带锁的门来保护我们的居室是明智之举。在这种环境下要求凡事要小心谨慎,因此当有人来敲我们的门时,应首先查看来人,再决定是否让来人进入。如果来人看起来很危险(安全风险很高),则不应让其进来。类似地,筛选路由器也通过查看进入的分组来决定它们当中是否有可能有害的分组。企业网络中的边界被称为安全环形防线。由于在INTERNET上危险的“***”很多,确定一个危险区域是很有用的。这个危险区域就是指通过INTERNET可以直接访问的所有具有TCP/IP功能的网络。这里“具有TCP/IP功能”是指一台主机支持TCP/IP协议和它所支持的上层协议。“直接访问”是指在INTERNET和企业网络的主机之间没有设置强有力的安全措施(没有“锁门”)。
从我们自己的角度上看,INTERNET中的地区网、国家网和主干网都代表着一个危险区域,在危险区域内的主机对于外来***的防范是很脆弱的。因此,我们当然希望把自己的网络和主机置于危险区域之外。然而,没有相应的设备去拦截对自己网络的***,则危险区域将会延伸至自己的网络上。筛选路由器就是这样一种设备,它可以用来减小危险区域,从而使其不能***到我们网络的安全防线之内。
在我们的企业网络中,可能不是所有的主机都具有TCP/IP功能。即使这样,这些非TPC/IP主机也可能成为容易***的,尽管从技术上说它们不属于危险区域。如果一台非TCP/IP主机与一台TCP/IP主机相连,就会发生这种情况。***者可以使用一种TCP/IP主机和非TCP/IP主机都支持的协议来通过TCP/IP主机访问非TCP/IP主机,例如:如果这两台主机都连在同一个以太网网段上,***者就可以通过以太网协议去访问非TCP/IP主机。
筛选路由器本身不能够消除危险区域,但它们可以极为有效地减小危险区域。
筛选路由器和cisco防火墙与OSI模型的关系
按照与OSI模型的关系将筛选路由器和 cisco防火墙进行比较。筛选路由器的功能相当于OSI模型的网络层(IP协议)和传输层(TCP协议)。 cisco防火墙常常被描述为网关,而网关应可以在OSI模型的所有七个层次上执行处理功能。通常,网关在OSI模型的第七层(应用层)执行处理功能。对于大多数 cisco防火墙网关来说,也确实如此。
cisco防火墙可以执行分组过滤功能,因为 cisco防火墙覆盖了网络层和传输层。某些厂商,可能是由于市场营销策略,模糊了筛选路由器和 cisco防火墙之间的区别,将他们的筛选路由器产品称为 cisco防火墙产品。为了清晰起见,我们根据OSI模型对筛选路由器和 cisco防火墙加以区别。
有些时候,筛选路由器也被称为分组过滤网关。使用“网关”这一术语来称呼分组过滤设备可能有以下理由,即在传输层根据TCP标志执行的过滤功能不属于路由器的功能,因为路由器运行在OSI模型的网络层。在网络层以上运行的设备也被称为网关。
2.2分组过滤 (Packet Filtering) 技术
筛选路由器可以采用分组过滤功能以增强网络的安全性。筛选功能也可以由许多商业 cisco防火墙产品和一些类似于Karlbridge的基于纯软件的产品来实现。但是,许多商业路由器产品都可以被编程以用来执行分组过滤功能。许多路由器厂商,象Cisco、Bay Networks、3COM、DEC、IBM等,他们的路由器产品都可以用来通过编程实现分组过滤功能。
分组过滤和网络安全策略
分组过滤可以用来实现许多种网络安全策略。网络安全策略必须明确描述被保护的资源和服务的类型、重要程度和防范对象。
通常,网络安全策略主要用于防止外来的***,而不是监控内部用户。例如,阻止外来者***内部网络,对一些敏感数据进行存取和破坏网络服务是更为重要的。这种类型的网络安全策略决定了筛选路由器将被置于何处,以及如何进行编程用来执行分组过滤。良好的网络安全的实现同时也应该使内部用户难以妨害网络安全,但这通常不是网络安全工作的重点。
网络安全策略的一个主要目标是向用户提供透明的网络服务机制。由于分组过滤执行在OSI模型的网络层和传输层,而不是在应用层,所以这种途径通常比 cisco防火墙产品提供更强的透明性。我们曾经提到 cisco防火墙在OSI模型应用层上运行,在这个层次实现的安全措施通常都不够透明。
一个分组过滤的简单模型
一个分组过滤装置常被置于一个或几个网段与其他网段之间。网段通常被分为内部网段和外部网段,外部网段将你的网络连向外部网络,例如INTERNET;内部网段用来连接一个单位或组织内部的主机和其它网络资源。
在分组过滤装置的每一个端口都可以实施网络安全策略,这种策略描述通过该端口可存取的网络服务的类型。如果同时有许多网段同该过滤装置相连,则分组过滤装置所实施的策略将变得很复杂。一般来说,在解决网络安全问题时应该避免过于复杂的方案,其原因如下:
*难于维护,
*在配置过滤规则时容易发生错误,
*执行复杂的方案将对设备的性能产生负作用。
在许多实际情况下,一般都只采用简单模型来实现网络安全策略。在这个模型中只有两个网段与过滤装置相连,典型的情况是一个网段连向外部网络,另一个连向内部网络。通过分组过滤来限制请求被拒绝服务的网络通信流。由于分组过滤规则的设计原则是有利于内部网络连向外部网络,所以在筛选路由器两侧所执行的过滤规则是不同的。换句话说,分组过滤器是不对称的。
分组过滤器的操作
当前,几乎所有的分组过滤装置(筛选路由器或分组过滤网关)都按如下方式操作:
(1) 对于分组过滤装置的有关端口必须设置分组过滤准则,也称为分组过滤规则。
(2) 当一个分组到达过滤端口时,将对该分组的头部进行分析。大多数分组过滤装置只检查IP、TCP或UDP头部内的字段。
(3) 分组过滤规则按一定的顺序存贮。当一个分组到达时,将按分组规则的存贮顺序依次运用每条规则对分组进行检查。
(4) 如果一条规则阻塞传递或接收一个分组,则不允许该分组通过。
(5) 如果一条规则允许传递或接收一个分组,则允许该分组通过。
(6) 如果一个分组不满足任何规则,则该分组被阻塞。
从规则4和5,我们可以看到到将规则按适当的顺序排列是非常重要的。在配置分组过滤规则时一个常犯的错误就是将分组过滤规则按错误的顺序排列。如果一个分组过滤规则排序有错,我们就有可能拒绝进行某些合法的访问,而又允许访 问本想拒绝的服务。
规则6遵循守以下原则:未被明确允许的就将被禁止。
这是一个在设计安全可靠的网络时应该遵循的失效安全原则。与之相对的是一种宽容的原则,即:没有被明确禁止的就是允许的。
如果采用后一种思想来设计分组过滤规则,就必须仔细考虑分组过滤规则没有包括的每一种可能的情况来确保网络的安全。当一个新的服务被加入到网络中时,我们可以很容易地遇到没有规则与之相匹配的情况。在这种情况下,不是先阻塞该服务,从而听取用户因为合法的服务被阻塞而抱怨,然后再允许该服务,我们也可以以网络安全风险为代价来允许用户自由地访问该服务,直到制定了相应的安全规则为止。
2.3 双宿主机 (Dual-Homed Host)
在TCP/IP网络中,术语多宿主机被用来描述一台配有多个网络接口的主机。通常,每一个网络接口与一个网络相连。在以前,这种多宿主机也可以用来在几个不同的网段间进行寻径,术语网关用来描述由多宿主机执行的寻径功能。但近年来人们一般用术语路由器来描述这种寻径功能,而网关则用于描述相当于OSI模型上几层中所进行的寻径功能。
如果在一台多宿主机中寻径功能被禁止了,则这个主机可以隔离与它相连的网络之间的通信流量;然而与它相连的每一个网络都可以执行由它所提供的网络应用,如果这个应用允许的话,它们还可以共享数据.
在双宿主机 cisco防火墙中禁止寻径。
大多数 cisco防火墙建立在运行UNIX的机器上。证实在双宿主机 cisco防火墙中的寻径功能是否被禁止是非常重要的;如果该功能没有被禁止,你必须知道如何去禁止它.
为了在基于UNIX的双宿主机中禁止进行寻径,需要重新配置和编译内核。在BSD UNIX系统中该过程如下所述。
使用MAKE命令编译UNIX系统内核。使用一个叫做CONFIG的命令来读取内核配置文件并生成重建内核所需的文件。内核配置文件在/usr/sys/conf或 /usr/src/sys目录下。在使用Intel硬件的BSDI UNIX平台上,配置文件在/usr/src/sys/i386/conf目录下。
为检查你所使用的是哪一个内核配置文件,你可以对内核映像文件使用strings命令并查找操作系统的名字。例如:
% strings /bsd | grep BSD
BSDI $Id: if_pe.c, v 1.4 1993/02/21 20:35:01 karels Exp $
BSDI $Id: if_petbl.c, v 1.2 1993/02/21 20:36:09 karels Exp $
BSD/386
@(#)BSDI BSD/386 1.0 kernel #0: Wed Mar 24 17:23:44 MST 1993
[email]polk@hilltop.BSDI.COM[/email]:/home/hilltop/polk/sys.clean/compile/GENERIC
最后一行说明当前的配置文件是GENERIC.
进入配置文件目录(/usr/src/sys/i386/conf),将文件GENERIC复制到一个新的配置文件中,其名字应对新的配置有所启发。例如,你可以将这个文件称为FIREWALL或LOCAL。
cd /usr/src/sys/i386/conf
cp GENERIC FIREWALL
下一步,编辑文件FIREWALL中的选项参数IPFORWARDING,将其值改为- 1,代表“不转发任何IP数据报”。这个变量的作用是设置内核变量ipforwarding的值,从而禁止IP转发。
options IPFORWARDING=-1
在某些其它的系统上,你看到的可能不是IPFORWARDING参数,而是:
options GATEWAY
为禁止IP分组的转发,可以将一个#号放在这一行的起始处,将这句话注释掉。
#options GATEWAY
同时,检验下列TCP/IP内核配置语句是否存在:
options INET # Internet Protocol support is to be included
pseudo-device loop # The loop back device is to be defined (127.0.0.1)
pseudo-device ehter # Generic Ethernet support such as ARP functions
pseudo-device pty # pseudo teletypes for telnet /rlogin access
device we0 at isa? port 0x280 # Could be different for your Ethernet interface
运行CONFIG命令来建立LOCAL目录,然后进入该目录:
config LOCAL
cd ../../compile/LOCAL
然后,运行MAKE命令来建立必要的相关部件和内核:
make depend
make
将内核映像复制到根目录下,然后重新启动(reboot):
cp /bsd /bsd.old
cp bsd /bsd
reboot
现在,这台主机可以用来作为双宿主机 cisco防火墙了。
怎样破坏双宿主机cisco防火墙的安全
了解双宿主机 cisco防火墙的安全性是如何被破坏的是很有用的,因为这样一来你就可以采取相应的措施来防止发生这种破坏。
对安全最大的危胁是一个***者掌握了直接登录到双宿主机的权限。登录到一个双宿主机上总是应该通过双宿主机上的一个应用层代理进行。对从外部不可信任网络进行登录应该进行严格的身份验证。
如果外部用户获得了在双宿主机上进行登录的权利,那么内部网络就容易遭到***。这种***可以通过以下任何一种方式来进行:
1)通过文件系统上宽松的许可权限制。
2)通过内部网络上由NFS安装的卷。
3)利用已经被破坏了的用户帐号,通过在这类用户的主目录下的主机等价文件,如.rhosts,来访问由Berkeley r*工具授权的服务。
4)利用可能恢复的过分访问权的网络备份程序。
5)通过使用没有适当安全防范的用于管理的SHELL脚本。
6)通过从没有适当安全防范的过时软件的修订版和发行文档来掌握系统的漏洞。
7)通过安装允许IP传递的老版本操作系统内核,或者安装存在安全问题的老版本操作系统内核。
如果一台双宿主机失效了,则内部网络将被置于外部***之下,除非这个问题很快被查出并解决。
在前面,我们已经了解到UNIX内核变量ifrorwarding控制着是否允许进行IP路由选择。如果一个***者获得了足够的系统权限,则这个***者就可以改变这个内核变量的值,从而允许IP转发。在允许IP转发后, cisco防火墙机制就会被旁路掉了.
双宿主机cisco防火墙上的服务
除了禁止IP转发,你还应该从双宿主机 cisco防火墙中移走所有的影响到安全的程序、工具和服务,以免落入***者的手中。下面是UNIX双宿主机 cisco防火墙的一部分有用的检查点:
1)移走程序开发工具:编译器、链接器等。
2)移走你不需要或不了解的具有 SUID和SGID权限的程序。如果系统不工作,你可以移回一些必要的基本程序。
3)使用磁盘分区,从而使在一个磁盘分区上发动的填满所有磁盘空间的***被限制在那个磁盘分区当中。
4)删去不需要的系统和专门帐号。
5)删去不需要的网络服务,使用netstat -a来检验。编辑/etc/inetd.conf和/etc/services文件,删除不需要的网络服务定义。
2.4代理服务和应用层网关
代理服务 (Proxy Service)
代理服务使用的的方法与分组过滤器不同,代理(Proxy)使用一个客户程序(或许经过修改),与特定的中间结点连接,然后中间结点与期望的服务器进行实际连接。与分组过滤器所不同的是, 使用这类 cisco防火墙时外部网络与内部网络之间不存在直接连接。因此,即使 cisco防火墙发生了问题,外部网络也无法与被保护的网络连接。中间结点通常为双宿主机。
代理服务可提供详细的日志记录(log)及审计(audit)功能, 这大大提高了网络的安全性,也为改进现有软件的安全性能提供了可能性。代理服务器可运行在双宿主机上,它是基于特定应用程序的。为了通过代理支持一个新的协议,必须修改代理以适应新协议。在一个称为SOCKS的免费程序库中包括了与许多标准系统调用基本兼容的代理版本,如SOCKS()、BIND()、CONNECT()等。在URL统一资源定位地址[url]ftp://ftp.inoc.dl.nec.com/pub/security/sock.cstc[/url]中可以得到该程序.
代理服务通常由两个部分构成: 代理服务器程序和客户程序。相当多的代理服务器要求使用固定的客户程序。例如SOCKS要求适应SICKS的客户程序。如果网络管理员不能改变所有的代理服务器和客户程序, 系统就不能正常工作。代理使网络管理员有了更大的能力改善网络的安全特性。然而,它也给软件开发者、网络系统员和最终用户带来了很大的不便,这就是使用代理的代价。也有一些标准的客户程序可以利用代理服务器通过 cisco防火墙运行,如mail、FTP和telnet等。即便如此,最终用户也许还需要学习特定的步骤通过 cisco防火墙进行通信。
透明性对基于代理服务企的 cisco防火墙显然是一个大问题。即使是那些声称是透明性 cisco防火墙的代理也期望应用程序使用特定的TCP或UDP端口。假如一个节点在非标准端口上运行一个标准应用程序, 代理将不支持这个应用程序。许多 cisco防火墙允许系统管理员运行两个代理拷贝, 一个在标准端口运行,另一个在非标准端口运行,常用服务的最大数目取决于不同的 cisco防火墙产品。
基于代理服务的 cisco防火墙厂商正在开始解决这个问题。基于代理的产品开始改进成能够设置常用服务和非标准端口。然而,只要应用程序需要升级,基于代理的用户会发现他们必须发展新的代理。一个明显的例子是许多的Web浏览器中加入了大量的安全措施。 cisco防火墙的购买者应留心询问 cisco防火墙厂商他们的产品到底能处理哪些应用程序。另外, 基于代理服务器的 cisco防火墙常常会使网络性能明显下降。相当多的 cisco防火墙不能处理高负载的网络通信。
应用层网关
应用层网关可以处理存储转发通信业务,也可以处理交互式通信业务。通过适当的程序设计,应用层网关可以理解在用户应用层(OSI模型第七层)的通信业务。这样便可以在用户层或应用层提供访问控制,并且可以用来对各种应用程序的使用情况维持一个智能性的日志文件。能够记录和控制所有进出通信业务,是采用应用层网关的主要优点。在需要时,在网关本身中还可以增加额外的安全措施。
对于所中转的每种应用,应用层网关需要使用专用的程序代码。由于有这种专用的程序代码,应用层网关可以提供高可靠性的安全机制。每当一个新的需保护的应用加入网络中时,必须为其编制专门的程序代码。正是如此,许多应用层网关只能提供有限的应用和服务功能.
为了使用应用层网关,用户或者在应用层网关上登录请求,或者在本地机器上使用一个为该服务特别编制的程序代码。每个针对特定应用的网关模块都有自己的一套管理工具和命令语言.
采用应用层网关的一个缺陷是必须为每一项应用编制专用程序。但从安全角度上看,这也是一个优点,因为除非明确地提供了应用层网关,就不可能通过 cisco防火墙。这也是在实践“未被明确允许的就将被禁止”的原则。
专用应用程序的作用是作为“代理”接收进入的请求,并按照一个访问规则检查表进行核查,检查表中给出所允许的请求类型。在这种情况下,这个代理程序被称为一个应用层服务程序代理。当收到一个请求并证实该请求是允许的之后,代理程序将把该请求转发给所要求的服务程序。因此,代理程序担当着客户机和服务器的双重角色。它作为服务器接收外来请求,而在转发请求时它又担当客户机。一旦会话已经建立起来,应用代理程序便作为中转站在起动该应用的客户机和服务器之间转抄数据。因为在客户机和服务器之间传递的所有数据均由应用层代理程序转发,因此它完全控制着会话过程,并可按照需要进行详细的记录。在许多应用层网关中,代理程序是由一个单一的应用层模块实现的。
为了连接到一个应用层代理程序,许多应用层网关要求用户在内部网络的主机上运行一个专用的客户方应用程序。另一种方法是使用TELNET命令并给出 可提供代理的应用服务的端口号。例如:如果应用代理程序运行在主机gatekeeper.kinetics.com上,其端口号为63,则可以使用下列命令:
telnet gatekeeper.kinetics.com 63
在连接到代理服务所在的端口之后,你将会看到标识该应用代理的特定的提示符。这时,需要执行专门配制命令来指定目的服务器。不管采用的是哪种途径,用户与标准服务之间的接口将会被改变。如果使用的是一个专用的客户程序,则必须对该程序进行修改,使它总是连向代理程序所在的主机(即代理机)上,并告诉代理机你所要连接的目的地址。此后,代理机将与最终的目标地址相连并传递数据。一些代理服务程序模拟标准应用服务的工作方式,当用户指定一个在不同网络中的连接目标时,代理应用程序就将被调用.
对于某一应用代理程序,如果需使用专用的客户机程序时,那么就必须在所有的要使用INTERNET的内部网络主机上安装一该专用客户程序。当网络的规模较大时,这将是一件困难的工作。如果你的一些用户在使用DOS/WINDOWS或MACINTOSH客户机,则通常没有与这种客户机应用程序相对应的代理程序。这时,如果你没有相应客户机应用程序的源码(通常为在PC或MAC机上用的),你将无法修改这些程序。
如果代理程序客户机只能使用某一个应用层网关服务器,则当这个服务器关闭时,这个系统就很容易发生单点失效。如果一个客户端代理可以由管理员指定连向另一个应用层网关,就可以避免单点失效错误.
由于在配置代理程序的客户机方面存在的诸多问题,一些站点倾向于使用分组过滤技术来处理象FTP或TELNET等可由适当的过滤规则来保证安全的应用;而使用代理程序客户机方式处理比较复杂的应用,如DNS、SMTP、NFS、HTTP和GOPHER等。
当需要通过专用客户机应用程序与代理服务器通信时,象CONNECT()这样的一些标准系统调用必须被替换为相应的代理版本。这时,你必须将客户机应用程序和这些代理版本的系统调用一起进行编译和链接.
代理服务程序应该设计为在未使用适当修改了的客户机程序的情况下能够提供“失效安全”(fail safe) 的运行模式。例如:当一个标准的客户机应用程序被用来与代理服务器相连,那么这种通信应该被禁止,并且不能对 cisco防火墙或筛选路由器引起不希望的或不可预料的行为。
另一种类型的应用层网关被称为“线路网关”(circuit gateway)。在线路层网关中,分组的地址是一个应用层的用户进程。线路网关用于在两个通信端点之间中转分组。线路网关只是在两个端点之间复制字节。
线路网关是建立应用层 cisco防火墙的一种更灵活、更通用的途径。线路网关中可能包括支持某些特定TCP/IP应用的程序代码,但这通常是有限的。如果它能支持某些应用,则这些应用通常是一些TCP/IP的应用。
在线路-线路网关(circuit-circuit gateway)中,可能需要安装专门的客户机软件,而用户可能需要与改变了的用户界面打交道,或者改变他们的工作习惯。在每一台内部主机上安装和配置专门的应用程序将是一件费时的工作,而对大型异构网络来说很容易出错,因为硬件平台和操作系统不同。
由于每个报文分组都将由在应用层运行的软件进行处理,主机的性能将会受到影响。每个分组都将被所有的通信层次处理两遍,并需要在用户层上进行处理以及转换工作环境。应用层网关(不论是堡垒主机还是双宿主机)都暴露在网络面前,因此可能需要采用其它手段来保护应用层网关主机,例如分组过滤技术。
堡垒主机 (Bastion Host)及其应用。
堡垒主机指的是任何对网络安全至关重要的 cisco防火墙主机。堡垒主机是一个组织机构网络安全的中心主机。因为堡垒主机对网络安全至关重要,对它必须进行完善的防御。这就是说,堡垒主机是由网络管理员严密监视的。堡垒主机软件和系统的安全情况应该定期地进行审查。对访问记录应进行查看,以发现潜在的安全漏洞和对堡垒主机的试探性***。双宿主机是堡垒主机的一个实例,因为它们对网络的安全至关重要。
为了达到更高程度的安全性要求,有的厂商把基于分组过滤技术的方法和基于代理服务的方法结合起来,形成了新型的 cisco防火墙产品。这种结合通常是以下面两种方案之一实现的:有屏蔽主机(Screened Host)或有屏蔽子网(Screened Subnet)。在第一种方案中,一个分组过滤路由器与Internet相连,同时,一个堡垒主机安装在内部网络上。通常,在路由器上设立过滤规则,使这个堡垒主机成为Internet上其他节点所能达到的唯一节点。这确保了内部网络不受未被授权的外部用户的***。有屏蔽子网的方法是建立一个被隔离的子网,位于Internet和内部网络之间,用两台分组过滤路由器将这一子网分别与Internet和内部网络分开。在许多有屏蔽子网的实现中,两个分组过滤路由器放在子网的两端,在子网内构成一个禁止穿行区。即Internet和内部网络均可访问有屏蔽子网,但禁止它们穿过有屏蔽子网进行通信。象WWW和FTP这样的Internet服务器一般就放在这种禁止穿行区中。
堡垒主机的最简单的设置方法
因为堡垒主机是与外部不可信赖网络的接口点,它们常常容易受到***。堡垒主机最简单的设置,是作为外部网络通信业务的第一个也是唯一的一个入口点。
有屏蔽主机网关
因为堡垒主机对内部网络的安全是至关重要的,人们常常在外部不可信赖网络和内部网络之间增加另外一条防线。第一条防线通常由筛选路由器充当。图9说明了以筛选路由器作为第一条防线的堡垒主机的一种应用方法。在这个例子中,只配置了堡垒主机的网络接口,该接口与内部网络相连。筛选路由器的一个端口与内部网络相连,另一个端口与INTERNET相连。这种配置方式被称为有屏蔽主机网关.
对筛选路由器必须做如下配置,它应将从外部网络收到的目的地为内部网络的所有通信业务首先送到堡垒主机。在将信息转发到堡垒主机之前,筛选路由器对收到的分组运行自己的过滤规则。只有通过了过滤规则的网络信息才被送到堡垒主机,所有其它网络信息将被拒绝进入。这种体系结构给予网络安全更高的信心,进攻者必须首先穿过筛选路由器,如果设法穿过了筛选路由器,还必须对付堡垒主机.
堡垒主机使用应用层功能来确定允许或拒绝来自或发向外部网络的请求。如该请求通过了堡垒主机的严格审查,它将被作为进来的信息转发到内部网络上。对于通向外部的网络的信息,该请求被转发到筛选路由器。
许多路由器产品都具有根据给定规则对报文分组进行筛选的功能,这些规则包括协议的类型、特定协议类型的源地址和目的地址字段以及作为协议一部分的控制字段。例如在常用的Cisco路由器上就具有这种对报文分组进行筛选的功能,这种路由器被称为筛选路由器。最早的Cisco路由器只能根据IP数据报头部内容进行过滤,而目前的产品还可以根据TCP端口及连接建立的情况进行过滤, 而且在过滤语法上也有了一定改进。
筛选路由器提供了一种强有力的机制,可用于控制任何网络段上的通信业务类型。而通过控制一个网络段上的通信业务类型,筛选路由器可以控制该网络段上网络服务的类型,从而可以限制对网络安全有害的服务。
筛选路由器可以根据协议类型和报文分组中有关协议字段的值来区别不同的网络通信业务。路由器根据与协议相关的准则来区别和限制通过其端口的报文分组的能力被称为报文分组过滤。因此,筛选路由器又称为分组过滤路由器。下面我们首先介绍应用筛选路由器时需要考虑的安全防线设置问题,以及筛选路由器与OSI模型的关系,分组过滤技术将在下一节讨论。
识别危险区域
根据1996年1月的统计,连入INTERNET的网络大约为60,000个左右,主机总数则已超过900万台。由于INTERNET上有如此众多的用户,其中难免有少数居心不良的所谓“***”。这种情况就象迁入一个大城市时会遇到犯罪问题一样。在大城市中,使用带锁的门来保护我们的居室是明智之举。在这种环境下要求凡事要小心谨慎,因此当有人来敲我们的门时,应首先查看来人,再决定是否让来人进入。如果来人看起来很危险(安全风险很高),则不应让其进来。类似地,筛选路由器也通过查看进入的分组来决定它们当中是否有可能有害的分组。企业网络中的边界被称为安全环形防线。由于在INTERNET上危险的“***”很多,确定一个危险区域是很有用的。这个危险区域就是指通过INTERNET可以直接访问的所有具有TCP/IP功能的网络。这里“具有TCP/IP功能”是指一台主机支持TCP/IP协议和它所支持的上层协议。“直接访问”是指在INTERNET和企业网络的主机之间没有设置强有力的安全措施(没有“锁门”)。
从我们自己的角度上看,INTERNET中的地区网、国家网和主干网都代表着一个危险区域,在危险区域内的主机对于外来***的防范是很脆弱的。因此,我们当然希望把自己的网络和主机置于危险区域之外。然而,没有相应的设备去拦截对自己网络的***,则危险区域将会延伸至自己的网络上。筛选路由器就是这样一种设备,它可以用来减小危险区域,从而使其不能***到我们网络的安全防线之内。
在我们的企业网络中,可能不是所有的主机都具有TCP/IP功能。即使这样,这些非TPC/IP主机也可能成为容易***的,尽管从技术上说它们不属于危险区域。如果一台非TCP/IP主机与一台TCP/IP主机相连,就会发生这种情况。***者可以使用一种TCP/IP主机和非TCP/IP主机都支持的协议来通过TCP/IP主机访问非TCP/IP主机,例如:如果这两台主机都连在同一个以太网网段上,***者就可以通过以太网协议去访问非TCP/IP主机。
筛选路由器本身不能够消除危险区域,但它们可以极为有效地减小危险区域。
筛选路由器和cisco防火墙与OSI模型的关系
按照与OSI模型的关系将筛选路由器和 cisco防火墙进行比较。筛选路由器的功能相当于OSI模型的网络层(IP协议)和传输层(TCP协议)。 cisco防火墙常常被描述为网关,而网关应可以在OSI模型的所有七个层次上执行处理功能。通常,网关在OSI模型的第七层(应用层)执行处理功能。对于大多数 cisco防火墙网关来说,也确实如此。
cisco防火墙可以执行分组过滤功能,因为 cisco防火墙覆盖了网络层和传输层。某些厂商,可能是由于市场营销策略,模糊了筛选路由器和 cisco防火墙之间的区别,将他们的筛选路由器产品称为 cisco防火墙产品。为了清晰起见,我们根据OSI模型对筛选路由器和 cisco防火墙加以区别。
有些时候,筛选路由器也被称为分组过滤网关。使用“网关”这一术语来称呼分组过滤设备可能有以下理由,即在传输层根据TCP标志执行的过滤功能不属于路由器的功能,因为路由器运行在OSI模型的网络层。在网络层以上运行的设备也被称为网关。
2.2分组过滤 (Packet Filtering) 技术
筛选路由器可以采用分组过滤功能以增强网络的安全性。筛选功能也可以由许多商业 cisco防火墙产品和一些类似于Karlbridge的基于纯软件的产品来实现。但是,许多商业路由器产品都可以被编程以用来执行分组过滤功能。许多路由器厂商,象Cisco、Bay Networks、3COM、DEC、IBM等,他们的路由器产品都可以用来通过编程实现分组过滤功能。
分组过滤和网络安全策略
分组过滤可以用来实现许多种网络安全策略。网络安全策略必须明确描述被保护的资源和服务的类型、重要程度和防范对象。
通常,网络安全策略主要用于防止外来的***,而不是监控内部用户。例如,阻止外来者***内部网络,对一些敏感数据进行存取和破坏网络服务是更为重要的。这种类型的网络安全策略决定了筛选路由器将被置于何处,以及如何进行编程用来执行分组过滤。良好的网络安全的实现同时也应该使内部用户难以妨害网络安全,但这通常不是网络安全工作的重点。
网络安全策略的一个主要目标是向用户提供透明的网络服务机制。由于分组过滤执行在OSI模型的网络层和传输层,而不是在应用层,所以这种途径通常比 cisco防火墙产品提供更强的透明性。我们曾经提到 cisco防火墙在OSI模型应用层上运行,在这个层次实现的安全措施通常都不够透明。
一个分组过滤的简单模型
一个分组过滤装置常被置于一个或几个网段与其他网段之间。网段通常被分为内部网段和外部网段,外部网段将你的网络连向外部网络,例如INTERNET;内部网段用来连接一个单位或组织内部的主机和其它网络资源。
在分组过滤装置的每一个端口都可以实施网络安全策略,这种策略描述通过该端口可存取的网络服务的类型。如果同时有许多网段同该过滤装置相连,则分组过滤装置所实施的策略将变得很复杂。一般来说,在解决网络安全问题时应该避免过于复杂的方案,其原因如下:
*难于维护,
*在配置过滤规则时容易发生错误,
*执行复杂的方案将对设备的性能产生负作用。
在许多实际情况下,一般都只采用简单模型来实现网络安全策略。在这个模型中只有两个网段与过滤装置相连,典型的情况是一个网段连向外部网络,另一个连向内部网络。通过分组过滤来限制请求被拒绝服务的网络通信流。由于分组过滤规则的设计原则是有利于内部网络连向外部网络,所以在筛选路由器两侧所执行的过滤规则是不同的。换句话说,分组过滤器是不对称的。
分组过滤器的操作
当前,几乎所有的分组过滤装置(筛选路由器或分组过滤网关)都按如下方式操作:
(1) 对于分组过滤装置的有关端口必须设置分组过滤准则,也称为分组过滤规则。
(2) 当一个分组到达过滤端口时,将对该分组的头部进行分析。大多数分组过滤装置只检查IP、TCP或UDP头部内的字段。
(3) 分组过滤规则按一定的顺序存贮。当一个分组到达时,将按分组规则的存贮顺序依次运用每条规则对分组进行检查。
(4) 如果一条规则阻塞传递或接收一个分组,则不允许该分组通过。
(5) 如果一条规则允许传递或接收一个分组,则允许该分组通过。
(6) 如果一个分组不满足任何规则,则该分组被阻塞。
从规则4和5,我们可以看到到将规则按适当的顺序排列是非常重要的。在配置分组过滤规则时一个常犯的错误就是将分组过滤规则按错误的顺序排列。如果一个分组过滤规则排序有错,我们就有可能拒绝进行某些合法的访问,而又允许访 问本想拒绝的服务。
规则6遵循守以下原则:未被明确允许的就将被禁止。
这是一个在设计安全可靠的网络时应该遵循的失效安全原则。与之相对的是一种宽容的原则,即:没有被明确禁止的就是允许的。
如果采用后一种思想来设计分组过滤规则,就必须仔细考虑分组过滤规则没有包括的每一种可能的情况来确保网络的安全。当一个新的服务被加入到网络中时,我们可以很容易地遇到没有规则与之相匹配的情况。在这种情况下,不是先阻塞该服务,从而听取用户因为合法的服务被阻塞而抱怨,然后再允许该服务,我们也可以以网络安全风险为代价来允许用户自由地访问该服务,直到制定了相应的安全规则为止。
2.3 双宿主机 (Dual-Homed Host)
在TCP/IP网络中,术语多宿主机被用来描述一台配有多个网络接口的主机。通常,每一个网络接口与一个网络相连。在以前,这种多宿主机也可以用来在几个不同的网段间进行寻径,术语网关用来描述由多宿主机执行的寻径功能。但近年来人们一般用术语路由器来描述这种寻径功能,而网关则用于描述相当于OSI模型上几层中所进行的寻径功能。
如果在一台多宿主机中寻径功能被禁止了,则这个主机可以隔离与它相连的网络之间的通信流量;然而与它相连的每一个网络都可以执行由它所提供的网络应用,如果这个应用允许的话,它们还可以共享数据.
在双宿主机 cisco防火墙中禁止寻径。
大多数 cisco防火墙建立在运行UNIX的机器上。证实在双宿主机 cisco防火墙中的寻径功能是否被禁止是非常重要的;如果该功能没有被禁止,你必须知道如何去禁止它.
为了在基于UNIX的双宿主机中禁止进行寻径,需要重新配置和编译内核。在BSD UNIX系统中该过程如下所述。
使用MAKE命令编译UNIX系统内核。使用一个叫做CONFIG的命令来读取内核配置文件并生成重建内核所需的文件。内核配置文件在/usr/sys/conf或 /usr/src/sys目录下。在使用Intel硬件的BSDI UNIX平台上,配置文件在/usr/src/sys/i386/conf目录下。
为检查你所使用的是哪一个内核配置文件,你可以对内核映像文件使用strings命令并查找操作系统的名字。例如:
% strings /bsd | grep BSD
BSDI $Id: if_pe.c, v 1.4 1993/02/21 20:35:01 karels Exp $
BSDI $Id: if_petbl.c, v 1.2 1993/02/21 20:36:09 karels Exp $
BSD/386
@(#)BSDI BSD/386 1.0 kernel #0: Wed Mar 24 17:23:44 MST 1993
[email]polk@hilltop.BSDI.COM[/email]:/home/hilltop/polk/sys.clean/compile/GENERIC
最后一行说明当前的配置文件是GENERIC.
进入配置文件目录(/usr/src/sys/i386/conf),将文件GENERIC复制到一个新的配置文件中,其名字应对新的配置有所启发。例如,你可以将这个文件称为FIREWALL或LOCAL。
cd /usr/src/sys/i386/conf
cp GENERIC FIREWALL
下一步,编辑文件FIREWALL中的选项参数IPFORWARDING,将其值改为- 1,代表“不转发任何IP数据报”。这个变量的作用是设置内核变量ipforwarding的值,从而禁止IP转发。
options IPFORWARDING=-1
在某些其它的系统上,你看到的可能不是IPFORWARDING参数,而是:
options GATEWAY
为禁止IP分组的转发,可以将一个#号放在这一行的起始处,将这句话注释掉。
#options GATEWAY
同时,检验下列TCP/IP内核配置语句是否存在:
options INET # Internet Protocol support is to be included
pseudo-device loop # The loop back device is to be defined (127.0.0.1)
pseudo-device ehter # Generic Ethernet support such as ARP functions
pseudo-device pty # pseudo teletypes for telnet /rlogin access
device we0 at isa? port 0x280 # Could be different for your Ethernet interface
运行CONFIG命令来建立LOCAL目录,然后进入该目录:
config LOCAL
cd ../../compile/LOCAL
然后,运行MAKE命令来建立必要的相关部件和内核:
make depend
make
将内核映像复制到根目录下,然后重新启动(reboot):
cp /bsd /bsd.old
cp bsd /bsd
reboot
现在,这台主机可以用来作为双宿主机 cisco防火墙了。
怎样破坏双宿主机cisco防火墙的安全
了解双宿主机 cisco防火墙的安全性是如何被破坏的是很有用的,因为这样一来你就可以采取相应的措施来防止发生这种破坏。
对安全最大的危胁是一个***者掌握了直接登录到双宿主机的权限。登录到一个双宿主机上总是应该通过双宿主机上的一个应用层代理进行。对从外部不可信任网络进行登录应该进行严格的身份验证。
如果外部用户获得了在双宿主机上进行登录的权利,那么内部网络就容易遭到***。这种***可以通过以下任何一种方式来进行:
1)通过文件系统上宽松的许可权限制。
2)通过内部网络上由NFS安装的卷。
3)利用已经被破坏了的用户帐号,通过在这类用户的主目录下的主机等价文件,如.rhosts,来访问由Berkeley r*工具授权的服务。
4)利用可能恢复的过分访问权的网络备份程序。
5)通过使用没有适当安全防范的用于管理的SHELL脚本。
6)通过从没有适当安全防范的过时软件的修订版和发行文档来掌握系统的漏洞。
7)通过安装允许IP传递的老版本操作系统内核,或者安装存在安全问题的老版本操作系统内核。
如果一台双宿主机失效了,则内部网络将被置于外部***之下,除非这个问题很快被查出并解决。
在前面,我们已经了解到UNIX内核变量ifrorwarding控制着是否允许进行IP路由选择。如果一个***者获得了足够的系统权限,则这个***者就可以改变这个内核变量的值,从而允许IP转发。在允许IP转发后, cisco防火墙机制就会被旁路掉了.
双宿主机cisco防火墙上的服务
除了禁止IP转发,你还应该从双宿主机 cisco防火墙中移走所有的影响到安全的程序、工具和服务,以免落入***者的手中。下面是UNIX双宿主机 cisco防火墙的一部分有用的检查点:
1)移走程序开发工具:编译器、链接器等。
2)移走你不需要或不了解的具有 SUID和SGID权限的程序。如果系统不工作,你可以移回一些必要的基本程序。
3)使用磁盘分区,从而使在一个磁盘分区上发动的填满所有磁盘空间的***被限制在那个磁盘分区当中。
4)删去不需要的系统和专门帐号。
5)删去不需要的网络服务,使用netstat -a来检验。编辑/etc/inetd.conf和/etc/services文件,删除不需要的网络服务定义。
2.4代理服务和应用层网关
代理服务 (Proxy Service)
代理服务使用的的方法与分组过滤器不同,代理(Proxy)使用一个客户程序(或许经过修改),与特定的中间结点连接,然后中间结点与期望的服务器进行实际连接。与分组过滤器所不同的是, 使用这类 cisco防火墙时外部网络与内部网络之间不存在直接连接。因此,即使 cisco防火墙发生了问题,外部网络也无法与被保护的网络连接。中间结点通常为双宿主机。
代理服务可提供详细的日志记录(log)及审计(audit)功能, 这大大提高了网络的安全性,也为改进现有软件的安全性能提供了可能性。代理服务器可运行在双宿主机上,它是基于特定应用程序的。为了通过代理支持一个新的协议,必须修改代理以适应新协议。在一个称为SOCKS的免费程序库中包括了与许多标准系统调用基本兼容的代理版本,如SOCKS()、BIND()、CONNECT()等。在URL统一资源定位地址[url]ftp://ftp.inoc.dl.nec.com/pub/security/sock.cstc[/url]中可以得到该程序.
代理服务通常由两个部分构成: 代理服务器程序和客户程序。相当多的代理服务器要求使用固定的客户程序。例如SOCKS要求适应SICKS的客户程序。如果网络管理员不能改变所有的代理服务器和客户程序, 系统就不能正常工作。代理使网络管理员有了更大的能力改善网络的安全特性。然而,它也给软件开发者、网络系统员和最终用户带来了很大的不便,这就是使用代理的代价。也有一些标准的客户程序可以利用代理服务器通过 cisco防火墙运行,如mail、FTP和telnet等。即便如此,最终用户也许还需要学习特定的步骤通过 cisco防火墙进行通信。
透明性对基于代理服务企的 cisco防火墙显然是一个大问题。即使是那些声称是透明性 cisco防火墙的代理也期望应用程序使用特定的TCP或UDP端口。假如一个节点在非标准端口上运行一个标准应用程序, 代理将不支持这个应用程序。许多 cisco防火墙允许系统管理员运行两个代理拷贝, 一个在标准端口运行,另一个在非标准端口运行,常用服务的最大数目取决于不同的 cisco防火墙产品。
基于代理服务的 cisco防火墙厂商正在开始解决这个问题。基于代理的产品开始改进成能够设置常用服务和非标准端口。然而,只要应用程序需要升级,基于代理的用户会发现他们必须发展新的代理。一个明显的例子是许多的Web浏览器中加入了大量的安全措施。 cisco防火墙的购买者应留心询问 cisco防火墙厂商他们的产品到底能处理哪些应用程序。另外, 基于代理服务器的 cisco防火墙常常会使网络性能明显下降。相当多的 cisco防火墙不能处理高负载的网络通信。
应用层网关
应用层网关可以处理存储转发通信业务,也可以处理交互式通信业务。通过适当的程序设计,应用层网关可以理解在用户应用层(OSI模型第七层)的通信业务。这样便可以在用户层或应用层提供访问控制,并且可以用来对各种应用程序的使用情况维持一个智能性的日志文件。能够记录和控制所有进出通信业务,是采用应用层网关的主要优点。在需要时,在网关本身中还可以增加额外的安全措施。
对于所中转的每种应用,应用层网关需要使用专用的程序代码。由于有这种专用的程序代码,应用层网关可以提供高可靠性的安全机制。每当一个新的需保护的应用加入网络中时,必须为其编制专门的程序代码。正是如此,许多应用层网关只能提供有限的应用和服务功能.
为了使用应用层网关,用户或者在应用层网关上登录请求,或者在本地机器上使用一个为该服务特别编制的程序代码。每个针对特定应用的网关模块都有自己的一套管理工具和命令语言.
采用应用层网关的一个缺陷是必须为每一项应用编制专用程序。但从安全角度上看,这也是一个优点,因为除非明确地提供了应用层网关,就不可能通过 cisco防火墙。这也是在实践“未被明确允许的就将被禁止”的原则。
专用应用程序的作用是作为“代理”接收进入的请求,并按照一个访问规则检查表进行核查,检查表中给出所允许的请求类型。在这种情况下,这个代理程序被称为一个应用层服务程序代理。当收到一个请求并证实该请求是允许的之后,代理程序将把该请求转发给所要求的服务程序。因此,代理程序担当着客户机和服务器的双重角色。它作为服务器接收外来请求,而在转发请求时它又担当客户机。一旦会话已经建立起来,应用代理程序便作为中转站在起动该应用的客户机和服务器之间转抄数据。因为在客户机和服务器之间传递的所有数据均由应用层代理程序转发,因此它完全控制着会话过程,并可按照需要进行详细的记录。在许多应用层网关中,代理程序是由一个单一的应用层模块实现的。
为了连接到一个应用层代理程序,许多应用层网关要求用户在内部网络的主机上运行一个专用的客户方应用程序。另一种方法是使用TELNET命令并给出 可提供代理的应用服务的端口号。例如:如果应用代理程序运行在主机gatekeeper.kinetics.com上,其端口号为63,则可以使用下列命令:
telnet gatekeeper.kinetics.com 63
在连接到代理服务所在的端口之后,你将会看到标识该应用代理的特定的提示符。这时,需要执行专门配制命令来指定目的服务器。不管采用的是哪种途径,用户与标准服务之间的接口将会被改变。如果使用的是一个专用的客户程序,则必须对该程序进行修改,使它总是连向代理程序所在的主机(即代理机)上,并告诉代理机你所要连接的目的地址。此后,代理机将与最终的目标地址相连并传递数据。一些代理服务程序模拟标准应用服务的工作方式,当用户指定一个在不同网络中的连接目标时,代理应用程序就将被调用.
对于某一应用代理程序,如果需使用专用的客户机程序时,那么就必须在所有的要使用INTERNET的内部网络主机上安装一该专用客户程序。当网络的规模较大时,这将是一件困难的工作。如果你的一些用户在使用DOS/WINDOWS或MACINTOSH客户机,则通常没有与这种客户机应用程序相对应的代理程序。这时,如果你没有相应客户机应用程序的源码(通常为在PC或MAC机上用的),你将无法修改这些程序。
如果代理程序客户机只能使用某一个应用层网关服务器,则当这个服务器关闭时,这个系统就很容易发生单点失效。如果一个客户端代理可以由管理员指定连向另一个应用层网关,就可以避免单点失效错误.
由于在配置代理程序的客户机方面存在的诸多问题,一些站点倾向于使用分组过滤技术来处理象FTP或TELNET等可由适当的过滤规则来保证安全的应用;而使用代理程序客户机方式处理比较复杂的应用,如DNS、SMTP、NFS、HTTP和GOPHER等。
当需要通过专用客户机应用程序与代理服务器通信时,象CONNECT()这样的一些标准系统调用必须被替换为相应的代理版本。这时,你必须将客户机应用程序和这些代理版本的系统调用一起进行编译和链接.
代理服务程序应该设计为在未使用适当修改了的客户机程序的情况下能够提供“失效安全”(fail safe) 的运行模式。例如:当一个标准的客户机应用程序被用来与代理服务器相连,那么这种通信应该被禁止,并且不能对 cisco防火墙或筛选路由器引起不希望的或不可预料的行为。
另一种类型的应用层网关被称为“线路网关”(circuit gateway)。在线路层网关中,分组的地址是一个应用层的用户进程。线路网关用于在两个通信端点之间中转分组。线路网关只是在两个端点之间复制字节。
线路网关是建立应用层 cisco防火墙的一种更灵活、更通用的途径。线路网关中可能包括支持某些特定TCP/IP应用的程序代码,但这通常是有限的。如果它能支持某些应用,则这些应用通常是一些TCP/IP的应用。
在线路-线路网关(circuit-circuit gateway)中,可能需要安装专门的客户机软件,而用户可能需要与改变了的用户界面打交道,或者改变他们的工作习惯。在每一台内部主机上安装和配置专门的应用程序将是一件费时的工作,而对大型异构网络来说很容易出错,因为硬件平台和操作系统不同。
由于每个报文分组都将由在应用层运行的软件进行处理,主机的性能将会受到影响。每个分组都将被所有的通信层次处理两遍,并需要在用户层上进行处理以及转换工作环境。应用层网关(不论是堡垒主机还是双宿主机)都暴露在网络面前,因此可能需要采用其它手段来保护应用层网关主机,例如分组过滤技术。
堡垒主机 (Bastion Host)及其应用。
堡垒主机指的是任何对网络安全至关重要的 cisco防火墙主机。堡垒主机是一个组织机构网络安全的中心主机。因为堡垒主机对网络安全至关重要,对它必须进行完善的防御。这就是说,堡垒主机是由网络管理员严密监视的。堡垒主机软件和系统的安全情况应该定期地进行审查。对访问记录应进行查看,以发现潜在的安全漏洞和对堡垒主机的试探性***。双宿主机是堡垒主机的一个实例,因为它们对网络的安全至关重要。
为了达到更高程度的安全性要求,有的厂商把基于分组过滤技术的方法和基于代理服务的方法结合起来,形成了新型的 cisco防火墙产品。这种结合通常是以下面两种方案之一实现的:有屏蔽主机(Screened Host)或有屏蔽子网(Screened Subnet)。在第一种方案中,一个分组过滤路由器与Internet相连,同时,一个堡垒主机安装在内部网络上。通常,在路由器上设立过滤规则,使这个堡垒主机成为Internet上其他节点所能达到的唯一节点。这确保了内部网络不受未被授权的外部用户的***。有屏蔽子网的方法是建立一个被隔离的子网,位于Internet和内部网络之间,用两台分组过滤路由器将这一子网分别与Internet和内部网络分开。在许多有屏蔽子网的实现中,两个分组过滤路由器放在子网的两端,在子网内构成一个禁止穿行区。即Internet和内部网络均可访问有屏蔽子网,但禁止它们穿过有屏蔽子网进行通信。象WWW和FTP这样的Internet服务器一般就放在这种禁止穿行区中。
堡垒主机的最简单的设置方法
因为堡垒主机是与外部不可信赖网络的接口点,它们常常容易受到***。堡垒主机最简单的设置,是作为外部网络通信业务的第一个也是唯一的一个入口点。
有屏蔽主机网关
因为堡垒主机对内部网络的安全是至关重要的,人们常常在外部不可信赖网络和内部网络之间增加另外一条防线。第一条防线通常由筛选路由器充当。图9说明了以筛选路由器作为第一条防线的堡垒主机的一种应用方法。在这个例子中,只配置了堡垒主机的网络接口,该接口与内部网络相连。筛选路由器的一个端口与内部网络相连,另一个端口与INTERNET相连。这种配置方式被称为有屏蔽主机网关.
对筛选路由器必须做如下配置,它应将从外部网络收到的目的地为内部网络的所有通信业务首先送到堡垒主机。在将信息转发到堡垒主机之前,筛选路由器对收到的分组运行自己的过滤规则。只有通过了过滤规则的网络信息才被送到堡垒主机,所有其它网络信息将被拒绝进入。这种体系结构给予网络安全更高的信心,进攻者必须首先穿过筛选路由器,如果设法穿过了筛选路由器,还必须对付堡垒主机.
堡垒主机使用应用层功能来确定允许或拒绝来自或发向外部网络的请求。如该请求通过了堡垒主机的严格审查,它将被作为进来的信息转发到内部网络上。对于通向外部的网络的信息,该请求被转发到筛选路由器。
三 结束语
从对分组过滤技术和代理访问的分析可以看出,这两种模式都有一定的缺陷,因此人们正在寻找其他模式的 cisco防火墙,例如网络地址转换器 (Network Address Transtlater)、加密路由器 (Encrypting Router)、“×××”(Authentication Token)、 安全内核(Secured Kernel)、 最少特权(The Least Privilege)等。总之,一个好的 cisco防火墙应该具有高度安全性、高透明性和高网络性能。此外,人们也在开展其他计算机网络安全技术的研究,如加密技术(cryptography)、增强的Internet服务程序Xinetd (Extented Internet Service Daemon)和以太网 Sniffer等。在Internet上有许多免费的 cisco防火墙产品或工具,如TIS公司(Trusted Information Systems, Inc.)开发的TIS Internet Firewll Toolkit (FWTK),通用的代理服务系统是SOCKS,TAMU的网络安全体系以及Karlbridge等.
随着Internet在我国的迅速发展, cisco防火墙技术引起了各方面的广泛关注。一方面在对国外信息安全和 cisco防火墙技术的发展进行跟踪,另一方面也已经自行开展了一些研究工作。目前使用较多的,是在路由器上采用分组过滤技术提供安全保证,对其它方面的技术尚缺乏深入了解。 cisco防火墙技术还处在一个发展阶段,仍有许多问题有待解决。因此,密切关注 cisco防火墙的最新发展,对推动Internet在我国的健康发展有着重要的意义。
从对分组过滤技术和代理访问的分析可以看出,这两种模式都有一定的缺陷,因此人们正在寻找其他模式的 cisco防火墙,例如网络地址转换器 (Network Address Transtlater)、加密路由器 (Encrypting Router)、“×××”(Authentication Token)、 安全内核(Secured Kernel)、 最少特权(The Least Privilege)等。总之,一个好的 cisco防火墙应该具有高度安全性、高透明性和高网络性能。此外,人们也在开展其他计算机网络安全技术的研究,如加密技术(cryptography)、增强的Internet服务程序Xinetd (Extented Internet Service Daemon)和以太网 Sniffer等。在Internet上有许多免费的 cisco防火墙产品或工具,如TIS公司(Trusted Information Systems, Inc.)开发的TIS Internet Firewll Toolkit (FWTK),通用的代理服务系统是SOCKS,TAMU的网络安全体系以及Karlbridge等.
随着Internet在我国的迅速发展, cisco防火墙技术引起了各方面的广泛关注。一方面在对国外信息安全和 cisco防火墙技术的发展进行跟踪,另一方面也已经自行开展了一些研究工作。目前使用较多的,是在路由器上采用分组过滤技术提供安全保证,对其它方面的技术尚缺乏深入了解。 cisco防火墙技术还处在一个发展阶段,仍有许多问题有待解决。因此,密切关注 cisco防火墙的最新发展,对推动Internet在我国的健康发展有着重要的意义。
参考文献
Frederic J.Cooper, et al。Implementing Internet Security.New Riders Publishing。1995.
Craig Hunt。 TCP/IP Network Administration。O’Reilly & Associates。Inc。1992.
梅杰, 许榕生。Internet cisco防火墙技术最新发展。微电脑世界。1996, 6:27-30
Marcus J.Ranum. Thinking about Firewalls。Proceedings of Second International Conference on Systems and Network Security and Management(SANS-II)。1993.
Frederic J.Cooper, et al。Implementing Internet Security.New Riders Publishing。1995.
Craig Hunt。 TCP/IP Network Administration。O’Reilly & Associates。Inc。1992.
梅杰, 许榕生。Internet cisco防火墙技术最新发展。微电脑世界。1996, 6:27-30
Marcus J.Ranum. Thinking about Firewalls。Proceedings of Second International Conference on Systems and Network Security and Management(SANS-II)。1993.
0
收藏
转载于:https://blog.51cto.com/rainsnow/32377
Ctrl+Enter 发布
发布
取消