大错社区

 找回密码
 免费注册

QQ登录

只需一步,快速开始

[Nginx] Nginx简易防御CC攻击脚本 -- 封IP

[复制链接]
admin 发表于 2018-4-27 17:10:58 | 显示全部楼层 |阅读模式
  1. #!/bin/sh
  2. #########################################################
  3. ####功能介绍:读取nginx日志最后N行数,获取IP和访问数######
  4. ####超过一定数目就将此ip在防火墙中过滤                           ######
  5. ####每天凌晨重启防火墙,清除规则                                      ######
  6. #########################################################
  7. #根据:https://bbs.aliyun.com/read/50817.html  思路改编


  8. #vi /data/shell/iptables_fangshua.sh
  9. #chmod +x /data/shell/iptables_fangshua.sh
  10. #echo "* * * * * root /data/shell/iptables_fangshua.sh" >> /etc/crontab
  11. #service crond restart


  12. #每天凌晨重启防火墙
  13. #echo "01 1 * * * root /etc/init.d/iptables restart" >> /etc/crontab
  14. #service crond restart


  15. status=`tail -n1000 /data/log/www.funet8.com-access.log |awk '{print $3}'| awk -F":" '{print $NF}' |sort|uniq -c|sort -nr|head -1`
  16. NUM=`echo $status|awk '{print $1}'`         #最多IP次数
  17. IP=`echo $status|awk '{print $2}'`                 #最多IP地址
  18. result=`echo "$NUM > 200" | bc`
  19. if [ $result = 1 ]
  20. then
  21. echo IP:$IP is over $NUM, NoAccess IT! >> /data/log/Iptables_NoAccess_IP.log
  22. /sbin/iptables -I INPUT -s $IP -j DROP
  23. mv /data/log/www.funet8.com-access.log /data/log/www.funet8.com-access_$(date "+%Y-%m-%d-%H-%M-%S").log
  24. /etc/init.d/nginx reload
  25. fi
复制代码

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

QQ|Archiver|手机版|小黑屋|大错网络

GMT+8, 2019-5-20 21:04 , Processed in 0.052585 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表