防火墙二
表 二Packet 源 地 址 目 的 地 址 希望的动作 执行ABC后 执行BAC后
1 135.79.99.1 123.45.1.1 deny deny(B) deny(B)
* 2 135.79.99.1 123.45.6.1 permit permit(A) deny(B)
3 135.79.1.1 123.45.6.1 permit permit(A) permit(A)
4 135.79.1.1 123.45.1.1 deny deny(C) deny(c)
从表二可以看出,以ABC的顺序来应用规则的Router能达到预想的结果:
从135.79.99.0子网到公司网的包(如包1)都被拒绝(根据规则B),从135.79.99.0子网到
123.45.6.0子网的包(如包2)将被转发(根据规则A),从大学中的其它子网到123.45.6.0
的子网包(如包3)也将被转发(根据规则A), 从大学中的其它子网到公司中的其它字网
的包(如包4)都被拒绝(根据规则C)。若以BAC的顺序来应用规则,则不能达到预计的目
的。
实际上,在上面的规则外集中存在着一个小错误,正是由于这个错误,导致了以 ABC
的顺序和以BAC的顺序来应用规则而出现了不同的结果。该错误就是:规则B似乎用于限
制135.79.99.0子网访问公司网,但实际上这是多余的。如果将这条规则去掉,那么顺
序ABC和BAC都将归结为AC顺序。以AC的顺序进行过滤后的结果如表三所示。
表 三
Packet 源 地 址 目 的 地 址 希望的动作 AC 动作
1 135.79.99.1 123.45.1.1 deny deny(C)
2 135.79.99.1 123.45.6.1 permit permit(A)
3 135.79.1.1 123.45.6.1 permit permit(A)
4 135.79.1.1 123.45.1.1 deny deny(C)
* 例 二
________
| | Network 199.245.180.0 ______________
|______| _________ | |
_________|_______________________________|Packet |______| Internet |
___|____ ___|___ |Filter | |____________|
| | | | |router |
|______| |_____| |_______|
图 一
如图一所示的网络,由包过滤的Router作为在内部被保护的网络与外部不安全的
网络之间的第一道防线。假设网络的安全策略为:从外部主机来的Internet Mail在一
个指定的网关上接收,同时你不信任外部网络上一个名叫HPVC的主机,准备拒绝任何
由它发起的网络通信。
本例中,关于使用SMTP的网络安全策略必须转移为包过滤规则。可以将网络安全
规则转换成下述用语言表示的规则:
规则1: 拒绝从主机HPVC发起的连接。
规则2:允许连接到我们的E-Mail网关。
这些规则可以用下面的表四来表示。星号(*)表示可以匹配该列的任何值。
表 四
规则 动作 本地 本地 远地主机 远地 说明
序号 主机 端口号 端口号
1 Block * * HPVC * Block traffic from HPVC
2 Allow Mail-GW 25 * * Allow Connection to Our Mail gateway
对于表四所示的规则1而言,在远地主机栏中填入了HPVC,而其它所有栏的内容都
是星号;在动作栏填入阻塞。这条规则的意义可以理解为:阻塞所有从远地主机 HPVC
发起的从它的任意端口到我们本地任意主机的任意端口的连接。
对于表四所示的规则2而言,在本地主机和本地端口号两栏中都有内容,而其它栏
都是星号;在动作栏填入允许。这个规则的意义可以理解为:允许从任意远地主机的任
意端口发起的到本地主机Mail-GW的25号端口连接(端口25是为SMTP保留的)
规则是按照它们在表中的顺序来执行的。 如果一个分组不符合任何规则,则它将
被拒绝。
在表四中对规则的描述有一个严重的问题, 它允许任意外部主机从端口25发起一
个呼叫。端口25是为SMTP保留的, 但是一个外部主机有可能利用这个权利从事其它活
动。 这条规则的一个更好的描述方案是允许本地主机发起呼叫,同远地主机的端口25
进行通信。这使得本地主机可以向远地站点发送电子邮件。 如果远地主机不是用端口
25执行SMTP,则SMTP的发送进程将不能发送电子邮件。 这等价与远地主机不支持电子
邮件。
一个TCP连接是一个全双工连接,信息双向流动。在表四所示的包过滤规则中没有
明确指定被发送报文分组中信息的传递方向,即是从本地主机发送远地站点, 还是从
远地站点发送到本地主机。
当一个TCP包在某一个方向上传递时,它必须被接收方确认.接收方通过设置TCP ACK
标志来发送应答帧。TCP ACK标志也被用来确认TCP建立连接请求,ACK包将在所有 TCP
连接上发送。当一个ACK包被发送后,发送方向就逆转过来,包过滤规则应该考虑为响
应控制或数据包而发回的ACK包。
对于下面的表五中的规则1,在源主机栏中填入199.245.180.0, 在目标主机端口号
栏中填入25,其它栏中都填入星号,在动作栏中填入允许.整个规则的意义为: 允许所有
从网络199.245.180.0任意端口发起的任意目标主机端口号为25的连接
(其中199.245.180.0是一个C类网络地址,主机号字段为0表示网络上任意一台主机).
基于以上的讨论,修改后的包过滤规则如表五中所示.
表 五
SMTP的包过滤规则
规则 动作 源主机 源端 目标主机 远地 TCP标识 说明
序号 口号 端口号 /IP选项
1 Allow 199.245.180.0 * * 25 Allow packet from Network 199.245.180.0
2 Allow * 25 199.245.180.0 * TCP ACK Allow return acknowledgement
对于表五中的规则2,在源端口号栏中填入25,在目标主机栏中填入199.245.180.0,
在TCP标志和IP选项栏中填入TCP ACK,其它栏中都填入星号,在动作栏中填入允许.整个
规则的意义为: 允许所有从任何外部网络主机上源端口号25发起的到任意本地主机(在
网络199.245.180.0上)任意端口号的TCP ACK标志置位的连接.
表五中的两条过滤规则合并起来的效果是:允许网络199.245.180上的任意主机同任
何外部网络主机的SMTP端口建立连接.
由于包过滤器只工作在OSI模型的第二和第三层(数据层和网络层).它无法绝对保证
返回的TCP确认帧中是否属于同一个连接.在实际应用中,这个策略运行得很好,因为TCP
维护连接两侧的状态信息,它们知道将要发送或接收的序号和确认信息.同时,一些上层
应用服务,例如TELNET ,SMTP 和FTP等,只能接受遵循应用层协议规则的包,想要伪造包
含正确应答信息的包是非常困难的.如想要使安全程度更高, 可考虑和应用层网关一起
使用(下节将会讨论).
罗罗嗦嗦说了一大通,可以综述为下面两点:
包过滤路由器的优点:
绝大多数Internet防火墙系统只用一个包过滤路由器.与设计过滤器和匹配Router
不同的是,执行PACKET FILTER 所用的时间很少或几乎不需要什么时间. 因为Internet
访问一般被提供给一个WAN接口.如果通信负载适中且定义的过滤很少的话,则对Router
性能没有多大影响.最后一点,包过滤路由器对终端用户和应用程序是透明的,因此不需
要专门的用户培训或在每主机上设置特别的软件.
包过滤路由器的局限性:
定义包过滤器可能是一项复杂的工作,因为网管员需要详细地了解Internet各种服
务、包头格式和他们在希望每个域查找的特定的值。如果必须支持复杂的过滤要求的,
则过滤规则集可能会变得很长和很复杂,从而很难管理。 存在几种自动测试软件,被
配置到Router上后即可校验过滤规则。这可能对未检测到的易损部件开放了一个地点。
一般来说,一个路由器和信息包吞吐量随过滤器数量的增加而减少。Router 被优
化用来从每个包中提取目的IP地址、查找一个相对简单的路由表, 而后将信息包顺向
运行到适当转发接口。 如果过滤可执行,Router 还必须对每个包执行所有过滤规则。
这可能消耗CPU的资源,并影响一个完全饱和的系统性能。
(三)防火墙的构成(续3)
3.4 应用网关
为了克服与包过滤路由器相关联的某些弱点,防火墙需要使用应用软件来转发和过
滤Telnet和Ftp等服务的连接。这样一种应用叫做代理服务,而运行代理服务软件的主
系统叫做应用网关。应用网关和包过滤路由器可以组合在一起使用, 以获得高于单独
使用的安全性和灵活性。
作为一个例子,请考虑一个用包过滤路由器封锁所有输入Telnet和Ftp连接的。路
由器允许Telnet和Ftp包只通过一个主系统,即Telnet/Ftp应用网关,然后再连接到目
的主系统,过程如下:
1. 用户首先把Telnet连接到应用网关,并输入内部主系统的名字;
2. 网关检验用户的源IP地址,并根据任何合适的访问准则接受或拒绝;
3. 用户可能需要证明自己的身份(可使用一次性口令装置);
4. 代理服务软件在网关和内部主系统之间建立Telnet连接;
5. 于是,代理服务软件在两个连接之间传送数据;
6. 应用网关记录连接情况。
这一例子指出了使用代理服务软件的几个好处。第一, 代理服务软件只允许有代
理的服务通过。换句话说,如果应用网关包含Telnet和Ftp的代理软件,则只有Ftp 和
Telnet被允许进入受保护的子网,而其它所有服务都完全被封锁住。对有些网点来说,
这种程度的安全性是很重要的, 因为它保证,只有那些被认为“可信赖的”服务才被
允许通过防火墙。它还防止其他不可靠的服务不会背着防火墙管理人员实施。
使用代理服务的另一好处是可以过滤协议。例如,有些防火墙可以过滤 FTP连接,
并拒绝使用FTP 协议中的 put 命令。如果人们要保证用户不能写到匿名 FTP服务器软
件,则这一点是很有用的。
___________
__________ 1 |应 | 2 __________
| 目的 |------------->| 用 |------------->| 源 |
| 主系统 |<-------------| 网 |<-------------| 主系统 |
|________| 4 | 关 | 3 |________|
|_________|
应用网关和代理服务软件实施的虚拟连接
应用网关有三种基本的原型,分别适用于不同的网络规模。
* 双穴主机网关(Dual-Homed Gateway)
* 屏蔽主机网关(Screened Host Gateway)
* 屏蔽子网网关(Screened Subnet Gateway)
这三种原型有一个共同的特点,就是都需要一台主机(如上面所述一样),通常称
为桥头堡主机(Bastion Host) 。该主机充当应用程序转发者、通信登记者以及服务提
供者的角色。 因此,保护该主机的安全性是至关重要的,建立防火墙时,应将较多的
注意力放在该主机上。
* 双穴主机网关
该原型的结构如图一所示。
__________
__________ | | ___________
|Internet |___________|Bastion | |Protected |
|_________| | Host |___________|Network |
|________| |__________|
Running Firewall Software
& Routing disable
图一 双穴主机网关
其中,桥头堡主机充当网关,因此,需要在此主机中装两块网卡,并在其上运行
防火墙软件。受保护网与Internet之间不能直接进行通信,必须经过桥头堡主机,因
此,不必显示地列出受保护网与不受保护网之间的路由,从而达到受保护网除了看到
桥头堡主机之外,不能看到其他任何系统的效果。同时,桥头堡主机不转发TCP/IP包,
网络中的所有服务都必须由此主机的相应代理程序支持。
由于双穴主机网关容易安装,所需的硬件设备也较少,且容易验证其正确性,因
此,这是一种使用较多的纺火墙。
双穴主机网关最致命的弱点是: 一旦防火墙被破坏,桥头堡主机实际上就变成了
一台没有寻径功能的路由器,一个有经验的攻击者就能使它寻径,从而使受保护网完
全开放并受到攻击。例如,在基于 Unix 的双穴主机网关中,通常是先修改一个名叫
IPforwarding的内核变量,来禁止桥头堡主机的寻径能力,非法攻击者只要能获得网
关上的系统特权,就能修改此变量,使桥头堡主机恢复寻径能力,以进行攻击。
* 屏蔽主机网关
该原型的结构如图二所示。
___________________
____________ 1 Permitted | __________ |
| |—————————————|——|Bastion | |
| | 2 Blocked | | Host | |
| Internet |———————×—————| |________| |
| |3 router packet screening | |
|__________|———□—————————| Protected |
| Network |
|_________________|
图 二
屏蔽主机网关
( Bastion Host Running Firewall software )
其中,桥头堡主机在受保护网中,将带有包屏蔽功能的路由器置于保护网和Internet
之间,它不允许 Internet对保护网的直接访问,只允许对受保护网中桥头堡主机的访
问。与双穴网关类似,桥头堡主机运行防火墙软件。
屏蔽主机网关是一种很灵活的防火墙, 它可以有选择地允许那些值得信任的应用
程序通过路由器。 但它不像双穴网关,只需注意桥头堡主机的安全性即可,它必须考
虑两方面的安全性,即桥头堡主机和路由器。 如果路由器中的访问控制列表允许某些
服务能够通过路由器, 则防火墙管理员不仅要管理桥头堡主机中的访问控制表,还要
管理路由器中的访问控制列表,并使它们互相协调。 当路由器允许通过的服务数量逐
渐增多时,验证防火墙的正确性就会变得越来越困难。
* 屏蔽子网网关
该原型的结构如图三所示。
__________
_____|Bastion | Running
| | Host | Firewall Software
| |________|
|
____________ ________ |
| Internet |____|Router|____|
| | |______| | ________ ___________
|__________| |________|Router|_______|Protected|
Packet |______| | Network |
Screening |_________|
图 三 屏蔽子网网关
其中,一个小型的独立网络放在受保护网与Internet之间,对这个网络的访问受
到路由器中屏蔽规则的保护。因此,屏蔽子网中的主机是唯一一个受保护网和Internet
都能访问到的系统。
从理论上来说,这也是一种双穴网关的方法,只是将其应用到了网络上。防火墙
被破坏后,它会出现与双穴主机网关同样的问题。不同的是,在双穴主机网关中只需
配置桥头堡主机的寻径功能,而在屏蔽子网网关中则需配置三个网络(受保护网、屏
蔽子网和Internet)之间的寻径功能,即先要闯入桥头堡主机,再进入受保护网中的
某台主机,然后返回包屏蔽路由器,分别进行配置。这对攻击者来说显然是极其困难
的。另外,由于Internet很难直接与受保护网进行通信,因此,防火墙管理员不需指
出受保护网到Internet之间的路由。这对于保护大型网络来说是一种很好的方法。
应用网关的一个缺点是,就Telnet等客户机--服务器协议来说,需要采取两个步
骤来连接输入信息或输出信息。有些应用网关需要经过修改的客户机,这一点既可看
作是缺点,也可看作是优点,视修改的客户机是否更加容易使用防火墙而定。Telnet
应用网关不一定需要经过修改的Telnet客户机,但是,它需要修改用户行为:用户必
须连接到防火墙(但不记录),而不是直接连接到主系统。但是,经过修改的Telnet客
户机可以使防火墙透明, 因为它允许用户用Telnet命令规定目的系统(不是防火墙)。
防火墙起着通向目的系统通道的作用,从而拦截连接,再按需完成其他步骤,如查询
一次性口令。用户行为仍然是相同的,但其代价是每个系统需要一个经过修改的客户
机。
除了Telnet 外,应用网关一般用于Ftp 和电子邮件,同时也用于 XWindows和其
他某些服务。有些Ftp应用网关包括拒绝特定主系统的put 和get 命令的能力。例如,
一个已同内部系统 (如匿名Ftp服务器)建立Ftp对话 (通过Ftp应用网关)的外部用户,
可能试图把文件上装到服务器。应用网关可以过滤Ftp协议,并拒绝把所有puts命令发
送给匿名Ftp 服务器;这将保证没有文件能上装到服务器,而且所提供的确信程度要
高于只依赖由设置正确的匿名Ftp服务器进行的文件许可。
电子邮件应用网关可集中收集电子邮件,并把它分发给内部主系统和用户。对外
部用户来说,所有内部用户都拥有电子邮件地址,其格式为:user@emailhost 其中,
emailhost是电子邮件网关的名字。网关会接受外部用户的邮件, 然后按需把邮件转
发到其他内部系统。从内部系统发送电子邮件的用户可以从其主系统直接发送电子邮
件,否则在内部系统名字只有受保护的子网知道的情况下,邮件会发送给应用网关,
然后应用网关着把邮件转发给目的主系统。有些电子邮件网关使用更加安全的sendmail
程序版本来接收电子邮件
页:
[1]