Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

【讨论】谈一下对待DDoS攻击的一种想法

[复制链接]
platinum 发表于 2004-10-30 22:23:07 | 显示全部楼层 |阅读模式
最近国内很多无聊的黑客,大肆进行SYN-FLOOD、DDoS攻击,致使discuz.net和discuz.com瘫痪了2天

今天突然突发奇想,想了一个抵制DDoS的方法,不知道是否可行

DDoS攻击可以伪造IP源,因此无法用“堵”的方法来制止,因此,我想了很久,想试试“开”的方法

原理是这样的……
分为几步(不知道这个原理的可行性如何,有机会应该实验一下)

1、开一个简单的服务(只要能产生ESTABLISHED就可以),端口定为80,把真正的HTTP服务移动到60000

2、每分钟运行一次脚本,该脚本负责检查80端口的ESTABLISHED状态和IP地址,把产生了ESTABLISHED的IP进行PREROUTING,映射到60000端口

3、同时,80端口做并发数限制,只允许一定量的并发数,这样不会影响已经映射好的IP地址对WEB的访问,因为那些IP地址已经进行PREROUTING了,而不会进入filter表的INPUT链去和80端口进行连接,因此不会占用并发数,只有没登记过的IP才进入filter表的INPUT链

以上方法也未必可行,存在以下几个问题

1、因为浏览器产生的是短连接,未必会ESTABLISHED,有可能是TIME_OUT,但是DDoS绝对是含有“SYN”字样的,如果进行这个的试验,可以先按照ESTABLISHED进行,如果不行再换“非SYN”

2、平时可以不启用这个方案,HTTP端口还开在60000,对所有IP做PREROUTING,当发现有大量SYN状态时,判定收到DDoS攻击,马上清除PREROUTING规则,使所有IP连接到80端口,并启用DDoS策略

3、由于crond的限制,开IP的SHELL只能每分钟运行一次(最高频率),所以有可能会出现问题,ESTABLISHED的存在概率可能太小了,因为用户打开浏览器,没有看到页面的最大等待时间一般是10秒钟,不可能有人等上1分钟,然后再刷新的

可能写成一个程序,在后台运行会好些,但是,只有思想,不会写LINUX下的C……
Lancelo 发表于 2004-10-30 22:31:19 | 显示全部楼层
不愧是高人阿~
回复

使用道具 举报

aryou 发表于 2004-10-30 22:34:38 | 显示全部楼层
超超白金
Administrator
********************************
超超超级管理员
回复

使用道具 举报

Lancelo 发表于 2004-10-30 22:42:09 | 显示全部楼层
赫赫~
回复

使用道具 举报

dczwfcs 发表于 2004-10-30 22:48:25 | 显示全部楼层
lihai a 厉害
回复

使用道具 举报

Crossday 发表于 2004-10-31 00:31:55 | 显示全部楼层
我觉得很有实践意义哦 不过可能也会有问题
1. 放在cron里可能造成访问的不稳定 时断时续
2. 会不会因为半连接数被堆满 而造成这个防火墙服务也无法响应正常的请求
回复

使用道具 举报

 楼主| platinum 发表于 2004-10-31 00:41:29 | 显示全部楼层
对,是有这个问题,上面我也提到过
因为crond服务的最快执行频率是1次/分钟,所以检测的时候,用户未必处于ESTABLISHED状态
但是,如果写成程序就不一定了,可以每5秒检查一次(当然这样会大大提高服务器CPU的占用率),不过相比被DDoS攻击而停止服务,让服务器大功率正常工作我认为也值得了

还有一点,如果SYN过多,阻塞了80端口,而导致不能有新用户进入系统“登记”,那么可以kill掉那个80端口的服务,然后重新开启80端口的服务
kill掉服务的时候,一切ESTABLISHED、TIME_OUT、SYN、FIN等标记均会消失,重新开启以后的一段时间内,DDoS的发起频率如果不是很大,还是可以有正常ESTABLISHED进入的,只不过这个80端口服务重启频率正常连接扫描频率的阀值要准备好,我认为这个最关键。

可惜,不会写LINUX下的程序,否则就可以实践了…………唉~~!!!
回复

使用道具 举报

readme 发表于 2004-10-31 17:06:00 | 显示全部楼层
Originally posted by 超超白金 at 2004-10-30 22:23
最近国内很多无聊的黑客,大肆进行SYN-FLOOD、DDoS攻击,致使discuz.net和discuz.com瘫痪了2天

今天突然突发奇想,想了一个抵制DDoS的方法,不知道是否可行

DDoS攻击可以伪造IP源,因此无法用“堵”的方法来 ...


解决这个问题的最有效的办法是 : 网络运营商都在自己的路由器上加上来路检查。这个在技术上最成熟,可惜协调全世界那么多运营商太困难了。
回复

使用道具 举报

dczwfcs 发表于 2004-10-31 18:30:40 | 显示全部楼层
有道理。。。查到他来。KILL他国
回复

使用道具 举报

 楼主| platinum 发表于 2004-10-31 20:44:12 | 显示全部楼层
Originally posted by dczwfcs at 2004-10-31 18:30
有道理。。。查到他来。KILL他国

开什么玩笑?!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-23 11:42 , Processed in 0.025969 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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