我本人只是做程序开发的,只会一些基础的linux命令和处理,所以在网上找到了不少方案并且尝试 ,最终限制了本次的流量攻击。现总结起来,供各位参考。
1. 首先,我们需要统计一下ip连接数,找到请求过多的ip,将其进行封禁,查看代码如下:
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20
2. 封禁代码如下(把127.0.0.1换成你要禁封的ip):
iptables -I INPUT -s 127.0.0.1 -j DROP
3. 如果造成误封,可以使用以下代码进行解封:
iptables -D INPUT -s 127.0.0.1 -j DROP
4. 很多教程到了这一步就结束了,需要强调的是:如果你关闭了ssh连接,他会失效,这里我们是需要将其进行保存的,保存代码如下:
service iptables save
5. 保存完后,进行重启(这里我看网上说要多操作几次这个步骤,具体你们自己看)
service iptables restart
6. 除了禁封以外,我们还需要设置控制单个IP的最大并发连接数,代码如下
iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 30 -j REJECT
做到这一步我这边观察起来,网站的访问速度和ip连接数就都下来了,后续再有情况,继续记录!