卡饭网 > linux > 正文

Linux下的vps被ddos攻击的解决办法

来源:本站整理 作者:梦在深巷 时间:2013-10-10 14:42:47

连接vps 输入第一个命令

netstat -anp |awk ‘{print $6}’|sort|uniq -c |sort -rn

这里我们查看SYN_RECV这些,看他的连接数高不高,好几百,就有可能被ddos了

接下来追查是来自哪个ip发出syn的

指令:netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more

接下来继续看下,输入指令

netstat -ntu | grep SYN | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n more

netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more

确认了被syn攻击后,我们来改动下syn

查看默认的syn配置

输入 sysctl -a | grep _syn

可以看到,这个是我已经配置好了的,大家可以参考

net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120

net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60

net.ipv4.tcp_syn_retries = 3

net.ipv4.tcp_synack_retries = 3

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_max_syn_backlog = 10240

tcp_max_syn_backlog是SYN队列的长度,加大SYN队列的长度可以容纳更多等待网络连接数。tcp_syncookies是一个开关,打开SYN Cookie 功能,可以防止部分SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN 的重试连接次数,将默认的参数减小来控制SYN连接次数的尽量少。

修改方法,使配置立即生效,无需重启,可以执行

#sysctl -w net.ipv4.tcp_max_syn_backlog=10240

#sysctl -w net.ipv4.tcp_syncookies=1

#sysctl -w net.ipv4.tcp_synack_retries=3

#sysctl -w net.ipv4.tcp_syn_retries=3

这样就可以了,之后可以再次输入最前面的命令,来查看syn是否降下来了

相关推荐