nginx 动态黑名单

原理:

根据nginx 访问日志记录发现可疑的或者不正常的访问记录记录然后自动添加到nginx的黑名单

起到阻止的作用 可以作为防范少量的ddos攻击

1.首先要格式化nginx的日志(相关内容可以在网上搜或者看我的nginx配置)

2.编写脚本blockip.sh

#!/bin/bash

tail -n50000 /usr/local/nginx/logs/access.log \ //查看日志5W条记录

|awk '{print $1,$7,$9}' \ //根据自己的需求截取相应的内容 $1必不可少是IP

|grep -i -v -E "google|yahoo|baidu|msnbot|FeedSky|sogou|360|bing|soso|403|api" \ //过滤掉正常的多访问记录百度蜘蛛。。。。相信大家都知道

|awk '{print $1}'|sort|uniq -c|sort -rn \ //对单个IP访问量进行统计并记数

|awk '{if($1>1000)print "deny "$2";"}' > /usr/local/nginx/conf/vhost/blockip.conf //当访问量达到峰值会向名单中添加次IP

/usr/local/nginx/sbin/nginx -s reload //加载nginx配置

~

3.任务计划:

0,30 0-23 * * * /home/tool/blockip.sh 每隔半个小运行一次

OK!!!!