nginx防护ApacheBench脚本
来自 https://wiki.vpsmm.com/nginx-apachebench/
一、首先观测到对方是使用apachebech来攻击你。
这个查看nginx日志,非常明显。cat ssl.vpsmm.log 一片带有ab的ua
二、使用nginx设置,301掉所有ab过来的访问
if ($http_user_agent ~* ApacheBench ) {
rewrite ^(.*)$ http://www.baidu.com/ permanent;
}
三、设置脚本,每分钟自动执行
因为对方采用的是vultr的自动api,换IP太过频率,用个脚本。每分钟自动执行:
*/1 * * * /root/ab.sh
四、简单脚本,就4行如下:
cd /home/wwwlogs/ #进入nginx日志目录
cat ssl.vpsmm.log | grep 'ApacheBench' | awk '{print "iptables -I INPUT -s ", $1, "-j DROP"}'| sort -n | uniq | sh
#检索当前日志文件,查到有ApacheBench特征码的ip,全部ban掉
rm ssl.vpsmm.log #删除已经封掉ip的日志log
/etc/init.d/nginx reload #重载nginx,重新生成log文件,等待新ip进入