博威---云架构决胜云计算

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1949|回复: 1

如何弄死防火墙

[复制链接]
发表于 2010-12-10 15:48:43 | 显示全部楼层 |阅读模式
当今的防火墙基本都是状态检测的,通过状态检测带来了很多好处,以前也讲过,但也带来了新的弱点,就是连接型DOS攻击。
为了实现状态检测,防火墙必须实现对连接跟踪的能力,但连接的建立、保持和删除都要消耗系统资源,随着连接数在增加,查找连接所消耗的时间也会增加,因此其实连接数达到一定数量后防火墙基本就不可用了。
如何大量制造防火墙的连接数,当然肯定是需要标志新连接的数据包,对TCP来说就是SYN包,对UDP来说只要是防火墙允许通过的包就会建立新连接,为了标志不同连接,地址、端口就要有所不同,否则就会被归入一条连接了,相对来说,构造UDP数据包更为简单,因为UDP头中的校验和是不用算的。
连接耗尽型攻击最合适的地方是在内网,因为有可能不需要外部访问内部,但肯定是需要内部访问外部的,因此就需要开放UDP53端口进行UDP查询,所以只要伪造UDP53端口的数据包大都能通过防火墙,这时基本上只要一台普通PC就能轻松搞定当前市场上绝大多数的高端千兆防火墙。
还有一个状态连接防火墙最怵的场合,就是高校出口,现在的高校出口带宽都不小,流量巨大,内部机器数量众多,特别是高校几乎是P2P通信最活跃的地方,基本没什么限制而大量使用,更要命的是这地方的防火墙基本是不作什么限制的,几乎各种数据都能通过防火墙,使用防火墙的目的或者是作个NAT,或者是要允许内部任意访问外部,这种情况下状态连接防火墙基本上是一放上去就死了。
这种情况下防火墙有啥招呢?其实没多少招,一是限制通信,不能使用数据都能通过;二是在不影响合法通信的情况尽可能缩小超时;三就是流量、连接数限制了。
 楼主| 发表于 2010-12-10 15:49:23 | 显示全部楼层
Linux内核的ip_conntrack中有early_drop的机制,只要conntrack数量的最大值设定合理,不出现OOM就没啥大问题。至于包的数量超过系统负载就另当别论了。NAT也并不是所有的都是有状态的,近日还有人向内核提交无状态NAT的补丁,只是在无状态的NAT下一些有父子连接的应用可能要吃闭门羹了。




网友: yfydz  时间:2007-11-10 21:45:59 IP地址:123.116.100.★


问题就是现在一台普通PC发的包就能让防火墙超载了




网友: xiaosuo  时间:2007-11-11 12:01:58 IP地址:60.29.106.★


限制包的速率,你也提到过的。




网友: 本站网友  时间:2007-11-12 09:26:59 IP地址:202.99.27.★


速率问题可以通过抗攻击来限制(个人觉得抗攻击和连接处理应该放在一块,因为两者都要存储比较多的状态信息,并且查找要比较迅速)。
至于总数问题,可以设定连接数上限,或者采取更精确的控制,将IP和在其上允许的连接数做限制。
但到达墙设定的连接上限后,墙如果拒绝新连接,这和墙死了有什么区别?
所以要有比较好的老化算法。




网友: platinum  时间:2007-11-21 21:00:28 IP地址:222.131.41.★


请教 yfydz 兄:
我用 DoS 攻击软件分别对同硬件平台的 FreeBSD 和 Linux 做过测试
FreeBSD 在 10Wpps 情况下 CPU 才消耗 2%
Linux 系统启用 conntrack 后即使不添加任何策略及 ALG 的情况下,3Wpps 足以让 CPU 达到 100%
是不是主要是由于 conntrack 效率低下造成的问题?
市面上基于 Linux 的防火墙又是如何做到的呢?
很多抗攻击系统都选用 FreeBSD 作为平台,也是出于这个原因吗?
从技术角度讲,Linux 有没有什么好办法可以杜绝此问题呢?




网友: yfydz  时间:2007-11-23 11:04:30 IP地址:218.247.216.★


10Wpps才2%?多长的包?那也太orz了
conntrack效率的确很低,换来的是功能和扩展的容易
市面的linux防火墙性能也很低
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|boway Inc. ( 冀ICP备10011147号 )

GMT+8, 2024-4-20 20:30 , Processed in 0.095402 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表