免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: platinum
打印 上一主题 下一主题

[网络管理] 讨论一下如何防范SYN-FLOOD攻击的问题 [复制链接]

论坛徽章:
0
71 [报告]
发表于 2005-12-01 09:26 |只看该作者
/sbin/sysctl -w net.ipv4.conf.all.accept_source_route=0
/sbin/sysctl -w net.ipv4.conf.all.forwarding=0
/sbin/sysctl -w net.ipv4.conf.all.mc_forwarding=0


不知道这样有没有效果?

论坛徽章:
0
72 [报告]
发表于 2005-12-02 13:28 |只看该作者
占带宽是没有办法的,可是如果是半连接的syn flooding,虽然是协议的弱点,也是可以防范的:
A(攻击者)->B(中间件)->C(服务器)

第一步:a->c :syn
第二步:b代替c回一个:ack/syn(这个时候,虽然是攻击包,可是服务器没有收到,所以并没有被攻击)
第三步:若收不到A的ack,则是一个攻击,不管它。若回来ack,则是一个非syn flooking,这个时候:
1、对A来讲,三次握手已完成了;
2、对C来讲,还没有进行过连接呢;
所以:
1、B将ack改为syn给服务器C;服务器回一个syn/ack,B再回一个ack;OK,这样,A与C的三次握手完成了;
2、A的数据过来了,B将其直接交给C……

我没有代码,不知B如何来维护这个连接状态而使得B不会因此而被DoS……不过原理肯定是没有问题的

论坛徽章:
0
73 [报告]
发表于 2005-12-02 13:41 |只看该作者
第二步:b代替c回一个:ack/syn(这个时候,虽然是攻击包,可是服务器没有收到,所以并没有被攻击)
这样的话,a 还是收不到 b 的 syn/ack,b 自己会不会也 down 掉?

论坛徽章:
0
74 [报告]
发表于 2005-12-02 14:02 |只看该作者
原帖由 platinum 于 2005-12-2 13:41 发表
第二步:b代替c回一个:ack/syn(这个时候,虽然是攻击包,可是服务器没有收到,所以并没有被攻击)
这样的话,a 还是收不到 b 的 syn/ack,b 自己会不会也 down 掉?


应该是,“这样的话,B代替C回给A一个ack/syn,如果a没有第三次ack,B收不到,B自己会不会down掉吧?”
我最先想写这样程序,也是遇到这样的问题,也就是说,“B如何来维护一个连接状态”,就去问偶老大(因为他做出来了一个,原理也是他告诉偶的,而且在许许多多的实际环境中测试效果非常好),可惜他告诉我“还是先去看看linux 下syn cookie的实现吧”……于是我这两天正在啃当中,希望元旦节之前能搞定它。

论坛徽章:
0
75 [报告]
发表于 2005-12-02 14:08 |只看该作者
恩,我就是想问这个 ^_^

syncookie 的简单介绍我看过,不过还没看过代码
不知道上面这个思路和 syncookie 有什么根源上的区别没有?syncookie 其实也是这个原理(至少是类似)

论坛徽章:
0
76 [报告]
发表于 2005-12-02 14:15 |只看该作者
原帖由 platinum 于 2005-12-2 14:08 发表
恩,我就是想问这个 ^_^

syncookie 的简单介绍我看过,不过还没看过代码
不知道上面这个思路和 syncookie 有什么根源上的区别没有?syncookie 其实也是这个原理(至少是类似)


现在对syncookie了解还比较少,也只看过些简介,不过和这个原理还是有点区别的。而且syncookie防御syn flooding效果不太好。

我说的这种原理,市面上已经有很多成型的产品的,不过效果有好有坏,不知道性能是否就是取决于我的那个疑问,可恨没有代码呀……

ps:现在的CC攻击,是要完成三次握手的,这种方法是防御不了的。可以用同IP并发限制,只是这种方法,某些游戏网站,同一网吧或单位出来的连接太多,也是不太现实,于是只有拆应用层包,分析特征码了。哎,上帝要是赐给我一块超性能的板子就好了……

论坛徽章:
0
77 [报告]
发表于 2005-12-02 15:26 |只看该作者
对于 syn-proxy 的原理,确实需要多看一些资料,找一些代码看才知道

对于 CC 那样的合理性应用层攻击,恐怕只能深度拆包了,据说 NP 芯片有支持七层的,具体能支持到什么地步还不清楚

论坛徽章:
0
78 [报告]
发表于 2005-12-02 18:11 |只看该作者

回复 77楼 platinum 的帖子

试了X86,小规模应用还可以,可是流量一起来就……哎……

论坛徽章:
0
79 [报告]
发表于 2005-12-02 18:12 |只看该作者
能说说怎么实现的吗?

论坛徽章:
0
80 [报告]
发表于 2005-12-03 07:32 |只看该作者
昨天研究了一下(为此还装了一台openbsd-3.8)pf防火墙是怎样对付syn flooding的,实现语句如下:


pass in proto tcp from any to port 80 flags S/SA synproxy state


我在100M局域网试验了一下,发现效果很不错,apache没有受到直接攻击,pf把syn 包截住了。


原理就像“独孤九贱”所说的,看来PF是个不错的防火墙。顺便说一句,单纯靠限制IP并发连接数对付SYN攻击没有任何效果,因为SYN包不能建立一个完整的连接状态(3次握手),而通常意义上IP并发连接是指完整的连接状态

[ 本帖最后由 llzqq 于 2005-12-3 07:37 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP