原理:
根據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!!!!