道高一尺、魔高一丈。随着网络的发展,黑客的攻击方法越来越多。不过很多的攻击手段,可能都需要借助与DoS拒绝服务攻击。或者说,拒绝服务攻击是发起其他攻击的一个先决条件。如先通过拒绝服务攻击导致DNS服务器瘫痪,然后再进行DNS欺骗等等。前几天出现的Baidu网站被黑,也可以见到拒绝服务攻击的影子。所以如何来有效防止Dos攻击对于企业网络安全来说,至关重要。
那么该如何有效防止Dos攻击呢?有很多种方法可以实现这个目的。笔者今天要谈的是,如何通过防火墙来抵挡Dos攻击。希望借助这篇文章,能够帮助大家有效的抵御Dos拒绝服务攻击,提高服务器的安全。
一、阻止分段数据包通过防火墙
如上图所示,如果攻击者想要对防火墙后面的Web服务器发起Dos攻击,要如何进行呢?通常情况下,Sos攻击使用分段的IP数据包来攻击主机服务器。将一个IP数据包分隔成多个IP数据包叫做IP分段。通过这种分段的方式,可以提高Dos攻击的效率。如果防火墙能够阻止分段数据包通过防火墙,那么就可以有效的防治Dos攻击。
在PIX防火墙上,是可以使用Fragment命令,来阻止分段数据包通过防火墙。如可以使用如下的命令:fragment chain 1 outside。这个命令是什么意思呢?参数1表示所有的分组必须是完整的,也就是没有经过IP分段的。这个命令的含义就是阻止分段分组进出交换机。通过交换机的过滤,就可以有效的阻止分段数据包通过防火墙,对防火墙后面的Web等服务器发起攻击。
不过在有些场合下,确实需要对数据包进行IP分段。此时就需要在防火墙上启用分段防护功能。即根据一定的规则,对进入防火墙的分段数据包进行检测,判断其是否符合即定的规则。如果符合的话,就允许其通过。不符合的话,则会被丢弃。如防火墙会检查每个非初始的IP段都有一个相关联的合法初始的IP段。如对分段的数量进行限制,当分段超过一定数量(默认情况下可能最多为24个分段)时这个分段数据包就不能够通过防火墙。具体的数量安全人员可以根据实际需要来设置。这些安全检查措施,也可以帮助企业来有效防止Dos攻击。
笔者建议,在没有特殊的情况下,还是使用fragment命令阻止分段数据包进入防火墙为好。这可以从根本上杜绝DoS攻击。
二、阻止DoS攻击对DNS服务器的破坏
在平时我们经常会听到由于Dos攻击导致DNS服务器被瘫痪。那么这到底是怎么造成的呢?其实攻击的原理是比较简单的。攻击者会向每个DNS服务器发送DNS查询。查询中会包含到达目的地的伪地址。这是一个小的不能够再小的查询。但是DNS服务器会产生数以万计的应答信息。这些应答信息就会被路由到攻击者伪装的目的地址。从而会导致链路拥塞。严重的话,还可能导致网络故障,无法正常连接。
现在如果在DNS服务器前面放上一个防火墙,能否有效抵御Dos攻击呢?答案是肯定的。如以PIX防火墙为例。默认情况下,防火墙上是不能够对DNS的端口进行再分配的。也就是说,DNS需要进行相关的检查,以确保DNS查询不会受到基于活动超时处理的普通UDP的影响。在这种情况下,当攻击者发送一个DNS查询请求给DNS服务器,可以顺利进入到DNS服务器。但是防火墙却只允许单独的一个DNS应答。而不是发送许多应答信息。这是怎么实现的呢?因为防火墙只要接收到一个DNS查询结果,与DNS查询、应答等相关联的UDP连接就会关闭。如此的话,防火墙就会自动丢弃其他的应答,从而有效避免了Dos攻击。这种特性是防火墙专门为DNS服务器设计的DNS防护功能。如果大家在选购防火墙的时候,考虑到有部署DNS需求的话,那么在选购时要考虑防火墙是否有DNS防护功能。
另外需要注意的是,可能在网络中还采用NAT等网络地址转换技术。此时如果开启了DNS防护功能,是否对这些技术的应用有不利的影响呢?通常情况下,确实可能会影响到NAT等技术的正常使用。不过这主要看防火墙厂商是否采用了相关的技术来防止这种情况的出现。如据笔者的了解,思科的PIX防火墙6.2以上的版本对DNS消息的NAT等技术完全支持。也就是说,不管这些消息来自内部接口还是外部接口,都能够让DNS防护功能与NAT等网络地址转换技术友好共存。如果企业有自己的DNS服务器,那么这个特性就可能非常的有用。此时如果一个内部网络中的用户向外部接口上的DNS服务器发出查询请求,请求一个内部FTP服务器的DNS解析,则DNS A记录就可以被正确的转换。从而不需要额外的使用allias命令。allias命令其不但工作效率比较低,而且也存在着一定的安全隐患。在实际工作中,能够不用这个命令还是最好不用。课件,NAT等网络地址转换技术与防火墙的DNS防护功能也可以共存。在选购防火墙的时候,如果企业有这方面的需求,那么就需要注意防火墙是否支持这个特性。这个技术虽然并不难,但是如果没有的话,则需要时就会变得很麻烦。
对于PIX防火墙来说,默认情况下DNS防护功能是开启的。在有DNS服务器的情况下,请安全管理人员保持这个功能的开启状态。因为这个功能确实可以在很大程度上使得DNS服务器免受Dos拒绝服务攻击。效果非常的明显。
三、通过限制初期连接的最大数据来防止泛洪攻击
Dos攻击除了以上几种形式之外,还有一种典型的攻击行为,即泛洪攻击。这种Dos攻击方式主要是使用半开的TCP初期连接来防洪攻击某一个特定的借口。泛洪攻击的名字也由此而来。其实泛洪攻击本质上仍然属于Dos攻击。了解这个攻击的原理之后,要预防起来也相对简单许多。通常情况下,只要能够限制初期连接的数量或者限制主机服务器的连接数据就可以预防这种攻击。在实际工作中,可以使用static命令来限制初期连接的最大数目。如根据需要,可以将这个数值设置为200或者500等等。
这里需要注意的是,这个最大的初期连接数不能够设置的太低。如果设置的比较低的话,则等到达到最大值之后,就会拒绝合法用户的访问,从而正中攻击者的下怀,导致了拒绝服务攻击。那么这个数值到底多少为合适呢?任何网络专家都无法给出一个肯定的答案。这主要是因为企业的网络环境不同、客户端的数量不同、用户并发访问的数量不同、所采取的应用不同,这个值的合理取值范围也是不同的。其他企业比较合适的初期连接最大数据,换一个企业可能就不合适了。那么该如何确定呢?笔者认为,安全管理人员可以先设置一个比较大的值。然后再通过命令“show local-host ip地址”来观察到主机的连接数据与初期连接数据的情况。在实际工作中,可能需要持续一段时间的跟踪与调整,最后才能够得到一个比较适合企业的参数值。
从以上三个DoS攻击的典型案例中大家可以看出,只要选择了合适的防火墙,并且对其进行了合适的配置,还是可以有效的预防DoS攻击的。