怀疑 VPS 被 DoS 攻击

37 views
Skip to first unread message

AR

unread,
Apr 28, 2014, 11:51:52 AM4/28/14
to sh...@googlegroups.com
Hi, list

这事情自己亲身还是第一次遇到,从星期六晚上 23 点开始(东京当地时间是 0 点)就发现自己的 VPS
网络不通畅。星期六也没想到可能是这个异常,只是单纯被功夫网干扰。

刚刚 23 点又出现这个问题于是干脆了试了几个同网段的 IP 发现都好的,绕到同机房去也 ping 不通畅(现象为偶尔回几个正常的 pong
),于是去后台看到网络流量暴涨( in 600 kb/s out 3.5Mb/s)。 当时主机卡着都登录不了,也没法看是从哪里来的攻击。

重启主机后看 syslog 发现一大堆

Apr 29 00:26:59 localhost kernel: nf_conntrack: table full, dropping packet

于是想到了 DoS 攻击,单位里前阵子主 LB 也经历过这样的攻击,查来源 IP 是非常零散的。

网上去搜了一下[1],发现除了调高连接栈的大小和降低 timeout 外也没啥好办法。

大家遇到这种情况一般是如何处理的?

TIA

[1]: http://security.stackexchange.com/questions/43205/nf-conntrack-table-full-dropping-packet

--
Silence is golden.

Robber Phex

unread,
Apr 28, 2014, 12:01:38 PM4/28/14
to sh...@googlegroups.com
我来抛砖引玉

调高网络栈大小,降低timeout
限制每个IP的流量(不知道能不能直接干预TCP的窗口大小)

也可以分析包的类型来判别,比如如果此TCP连接的前5个包之后仍然没有发送HTTP请求,则加入带timeout的黑名单。
更低级的,将网络质量不好的IP地址屏蔽(比如多次快重传)

嗯,如果VPS能够更换IP地址,以上都不用了。
//我没有遇到这样的情况,所以...



--
Silence is golden.

--
-- You received this message because you are subscribed to the Google Groups Shanghai Linux User Group group. To post to this group, send email to sh...@googlegroups.com. To unsubscribe from this group, send email to shlug+un...@googlegroups.com. For more options, visit this group at https://groups.google.com/d/forum/shlug?hl=zh-CN
---
您收到此邮件是因为您订阅了 Google 网上论坛的“Shanghai Linux User Group”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到shlug+un...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/d/optout



--
Regards,
RobberPhex

About me: http://about.me/RobberPhex

Sherlock

unread,
Apr 28, 2014, 10:02:25 PM4/28/14
to Shanghai Linux User Group
DoS攻击方法很多

首先你要分清楚攻击是基于应用层还是链路层
比如之前某party对于太多VPN和VPS对GFW造成的很大压力,就采用在TCP/IP 包头的RST方式来重置,这种属于链路层。
有的是利用设计上的BUG,做溢出。比如你家庭网关的IP table size 才1024 b 那么当有人故意伪造很多IP来塞满你table的时候会产生溢出。

应用层
还有就是利用你网页上或者服务的漏洞,恶意爬虫,IIS注入(windows) , PHP ,还有之前很火的DNS heartbleed
还有最近某些大网站在某个IP地址池里(经常伪造攻击的IP地址段) 每个新HTTP请求都先RESET, 如果是human的话会重新请求页面,bot一般就不会了。

针对不同的攻击方式,采用不同的措施,写太多要被请去喝咖啡了。 :X


您收到此邮件是因为您订阅了Google网上论坛中的“Shanghai Linux User Group”论坛。

要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到shlug+un...@googlegroups.com
要查看更多选项,请访问https://groups.google.com/d/optout



--
==========
      InitX
==========

none_nobody

unread,
Apr 28, 2014, 10:28:37 PM4/28/14
to sh...@googlegroups.com
有句说句,你以为咖啡那么容易喝到?

就这点小伎俩就想喝免费咖啡还有上门查水表服务,哪有那么简单?



针对不同的攻击方式,采用不同的措施,写太多要被请去喝咖啡了。 :X



Shell Xu

unread,
Apr 28, 2014, 11:28:22 PM4/28/14
to shlug
tcp窗口的打开和关闭干涉不到,但是接收和发送缓冲区的大小可以控制。以下是我的配置,总体来说是把参数调大的。你可能要调小。
net.core.rmem_default = 2621440
net.core.rmem_max = 16777216
net.core.wmem_default = 655360
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 2621440 16777216
net.ipv4.tcp_wmem = 4096 655360 16777216

syn类型的攻击,可以调整以下参数:
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_syncookies = 1
net.core.somaxconn = 65535
同样,我是调大,你要调小。syncookies不要关。

关闭的部分,可以调整这些:
net.ipv4.tcp_max_tw_buckets = 16384
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
tcp_tw_recycle不要随便开,有副作用的(道哥写过这个的文)。buckets可以调整小。

基本来说,首先你要知道攻击的类型和来源。然后才能决定怎么做。


您收到此邮件是因为您订阅了Google网上论坛中的“Shanghai Linux User Group”论坛。

要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到shlug+un...@googlegroups.com
要查看更多选项,请访问https://groups.google.com/d/optout



--
彼節者有間,而刀刃者無厚;以無厚入有間,恢恢乎其於游刃必有餘地矣。
blog: http://shell909090.org/blog/

AR

unread,
Apr 28, 2014, 11:31:44 PM4/28/14
to sh...@googlegroups.com
2014-04-29 11:28 GMT+08:00 Shell Xu <shell...@gmail.com>:
> tcp窗口的打开和关闭干涉不到,但是接收和发送缓冲区的大小可以控制。以下是我的配置,总体来说是把参数调大的。你可能要调小。
> net.core.rmem_default = 2621440
> net.core.rmem_max = 16777216
> net.core.wmem_default = 655360
> net.core.wmem_max = 16777216
> net.ipv4.tcp_rmem = 4096 2621440 16777216
> net.ipv4.tcp_wmem = 4096 655360 16777216
>
> syn类型的攻击,可以调整以下参数:
> net.ipv4.tcp_max_syn_backlog = 65535
> net.ipv4.tcp_syncookies = 1
> net.core.somaxconn = 65535
> 同样,我是调大,你要调小。syncookies不要关。
>
> 关闭的部分,可以调整这些:
> net.ipv4.tcp_max_tw_buckets = 16384
> net.ipv4.tcp_tw_recycle = 0
> net.ipv4.tcp_tw_reuse = 0
> tcp_tw_recycle不要随便开,有副作用的(道哥写过这个的文)。buckets可以调整小。

多谢建议,这方面原来懂的不太多,发现要去补一下知识。

还找到一篇[1],不知可否参考。

另外是否还有类似推荐的文章可以拿来一学。


http://www.pc-freak.net/blog/resolving-nf_conntrack-table-full-dropping-packet-flood-message-in-dmesg-linux-kernel-log/


--
Silence is golden.
Reply all
Reply to author
Forward
0 new messages