网站受到DDOS的攻击,Inbound最高请求58.85Mb/sec 。尽管一开始解决问题的思路是错误的,但是在这个过程中,我们思考问题的思路对团队的成长有所帮助,我们知道什么方法无法解决问题。解决问题的过程分为3个阶段:

     1:nginx端屏蔽访问

修改nginx配置文件,添加如下记录

location ~ /\/you_url {

    return 404;

}

问题:发现请求堵塞在haproxy上面去了

     2:修改haproxy的配置

acl invalid_req url_sub -i c=220

block if invalid_req 

问题:依然不能解决haproxy堵塞的问题

     3:在haproxy机器上禁止IP访问。

在nginx下找到IP最多的几个IP,到/data/management/logs中去执行

cat www.access.log | awk -F \" '{print $7}' | sort | uniq -c | sort -rn | head -n 300 

得到访问最多的IP列表

通过vim的列编辑功能,限制这些ip的访问。(300个是可以继续加大的,看最后一行的最小值)

iptables -I INPUT -s 218.66.51.197 -j DROP

iptables -I INPUT -s 183.205.228.248 -j DROP

iptables -I INPUT -s 59.39.181.217 -j DROP

iptables -I INPUT -s 218.76.255.3 -j DROP

iptables -I INPUT -s 110.81.116.67 -j DROP

iptables -I INPUT -s 220.178.35.226 -j DROP

iptables -I INPUT -s 218.207.198.17 -j DROP

iptables -I INPUT -s 61.175.231.96 -j DROP

iptables -I INPUT -s 221.193.244.115 -j DROP

iptables -I INPUT -s 171.36.103.115 -j DROP

 

解封1:

iptables -L INPUT

iptables -L -line-numbers 然后 iptable -D INPUT 序号

解封2:

 iptables -F   来清空,(比较危险)

iptables -D INPUT 数字

     4:网上防止DDOS攻击的方法(我们的思路是错误的,这个脚本的思路才是王道)

正确的思路是查找Haproxy机器的所有连接IP数,然后查找IP数大于某个值的IP,在防火墙层面静止这些IP访问。

安装

wget http://www.inetbase.com/scripts/ddos/install.sh

chmod +x install.sh

./install.sh

卸载

wget http://www.inetbase.com/scripts/ddos/uninstall.sh

chmod +x uninstall.sh

./uninstall.sh

具体使用可以去自行研究,可以把里面的脚本挪出来,简单粗暴的防止DDOS!