我想请教大家怎么判断我的网站是否受到DDOS攻击了?

我想请教大家怎么判断我的网站是否受到DDOS攻击了?

网站访问很慢 , 有时能打开 有时打不开.
同事用 netstat 看后说是受DDOS攻击了. 我是个新手 在网上也 查了 netstat state 的具体意思

但是怎么判断出来的呢?
你还是不知道netstat是干嘛的
netstat -na | grep SYN | wc -l

上面命令查看网络连接状态SYN_RECV的个数.若是这个数非常大.(相对于ESTABLISHED来说的).多数表示为DDOS攻击.

例子

#netstat -na | grep SYN | wc -l
205

#netstat -na | grep ESTAB | wc -l
1025

这种比较正常

#netstat -na | grep SYN | wc -l
1002

#netstat -na | grep ESTAB | wc -l
210

这个就不正常了.受到DDOS攻击.表示1002请求发给了APACHE了.而APACHE却无法处理.因为正常的传输状态很少,所以有问题.
这是表面分析,若是要深入分析,建议使用ngrep netdump etherreal分析吧!

注:
SYN_RECV:一个连接请求已经到达,等待服务器确认
ESTABLISHED:正常数据传输状态



QUOTE:
原帖由 hmglly 于 2008-5-14 10:17 发表
你还是不知道netstat是干嘛的

说实话 我平常只用 netstat -tlnp 来查看一下 我 VM 机器开了哪些端口 因为是VM 所以其中只有 LISTEN 和 ESTABLISHED 状态.

到单位不到一星期,一直在学习中..还请多多帮助.非常感谢,你给我回的所有帖子.谢谢.


QUOTE:
原帖由 todayhero 于 2008-5-14 10:27 发表
netstat -na | grep SYN | wc -l

上面命令查看网络连接状态SYN_RECV的个数.若是这个数非常大.(相对于ESTABLISHED来说的).多数表示为DDOS攻击.

例子

#netstat -na | grep SYN | wc -l
205

#netstat ...

恩 . 知道了 非常感谢.

第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,並進入SYN_SEND狀態,等待服務器確認;
第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;
第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。

按上面说 SYN_RECV 就应该是 服务器等待确认了. 而不是等待服务器确认. 呵呵
GOOD 你的回答解决了我另一个疑问。哈哈。