网站服务器发现大量TIME_WAIT连接

回复 收藏
网站运行缓慢,netstat -an发现TIME_WAIT数量高达2万左右,
net.ipv4.tcp_syncookies = 1,
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
这些参数是我加到sysctl.confl里面的,可是还是不管用,谁知道是怎么回事吗有没有好的方法?
2016-08-22 16:39 举报
已邀请:
0

乐橙306

赞同来自:

1.介绍
SYN Flood是一种广为人知的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。

2.攻击现象
大量的 半连接状态 SYN RCVD  (上万)
ss  -a | awk '{print $1}'  | sort  | uniq  -c


3.应急处理
封IP
[root@aliyun-63 ~]# ss  -an  | grep SYN
SYN-RECV   0      0             112.74.108.63:80         116.231.156.251:56948
[root@aliyun-63 ~]# ss  -an  | grep SYN  |  awk  '{print $5}'  |  awk  -F  :  '{print $1}'  | sort |  uniq  -c  |  sort  -nr
iptables -A INPUT -s  源ip  -p tcp  –dport 80 -j DROP

调整系统参数
#最关键参数,默认为5,修改为0 表示不要重发
net.ipv4.tcp_synack_retries = 0
#半连接队列长度
net.ipv4.tcp_max_syn_backlog = 1024
#当出现 半连接 队列溢出时向对方发送syncookies
net.ipv4.tcp_syncookies = 0
#因为经过试验,大量TIME_WAIT状态的连接对系统没太大影响


4.防御
syn flood攻击暂时没有完美的解决方案,把应急的做好之后 ,解决不了,可以考虑用CDN,隐藏自己服务器的真实IP,让CDN厂商去抗(如果不差钱的话)。


2016.4.14   syn flood 防范
http://note.youdao.com/yws/pub ... false
0

善思致用

赞同来自:

乐橙306 发表于 2016-8-22 17:17
1.介绍
SYN Flood是一种广为人知的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种 ...

关键是我监测到SYN数量很小,time_wait数量很高2万以上
0

乐橙306

赞同来自:

善思致用 发表于 2016-8-23 09:08
关键是我监测到SYN数量很小,time_wait数量很高2万以上

对/etc/sysctl.conf 做好备份,然后编辑它,加入以下内容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
然后执行 /sbin/sysctl -p 让参数生效。
然后观察time_wait数量

链接
http://kerry.blog.51cto.com/172631/105233/
0

善思致用

赞同来自:

乐橙306 发表于 2016-8-23 09:25
对/etc/sysctl.conf 做好备份,然后编辑它,加入以下内容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp ...

你仔细看我的问题,我已经加了这些参数
0

阿铭 管理员

赞同来自:

如果你不加这个内核参数,估计数量还要更多。 这个大是因为连接的客户端多。这个是正常的,并不会影响什么。另外,你增加这几个内核参数后,有没有执行sysctl  -p
0

善思致用

赞同来自:

阿铭 发表于 2016-8-24 11:41
如果你不加这个内核参数,估计数量还要更多。 这个大是因为连接的客户端多。这个是正常的,并不会影响什么 ...

执行了sysctl -p命令,这个算是正常的,那这个正常吗?32G内存free只有1.5G,cached占了27G,虽然cached也是可用内存但是这个现象正常吗?

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: