首页站内杂志技术文摘
文章内容页

linux宝塔面板计划任务shell脚本自动拉黑恶意IP到nginx黑名单以达到防采集的方法

  • 作者:雨祺
  • 来源: 原创
  • 发表于2023-04-15 09:43:14
  • 被阅读0
  • linux宝塔面板计划任务shell脚本自动拉黑恶意IP到nginx黑名单以达到防采集的方法!首先我们需要找到恶意ip,可以利用脚本分析在一分钟单个IP访问的频率,超过一定的频率(一般来正常的访问,一分钟内应该不超过60次,你可以设置为更小),即认定为恶意IP。那么现在开始我们防止恶意IP采集网站的方法了!首先进入宝塔选择左侧栏的计划任务,任务类型选择shell脚本,在填写任务名称“拉黑恶意IP”,执行周期选择每天多久执行一次,把以下代码内容复制粘贴到脚本内容,最后添加任务即可完成!!!
    1. #/bin/bash 
    2. #日志文件,如不是宝塔面板可以根据需要改成你自己的路径! 
    3. logfile=/www/wwwlogs/ 
    4. blockiplogfile=/www/server/nginx/conf/ 
    5. last_minutes=1 
    6. #开始时间1分钟之前(这里可以修改,如果要几分钟之内攻击次数多少次,这里可以自定义) 
    7. start_time= date +"%Y-%m-%d %H:%M:%S" -d '-1 minutes' 
    8. echo $start_time 
    9. #结束时间现在 
    10. stop_time=`date +"%Y-%m-%d %H:%M:%S"
    11. echo $stop_time 
    12. cur_date="`date +%Y-%m-%d`" 
    13. echo $cur_date 
    14. #过滤出单位之间内的日志并统计最高ip数,请替换为你的日志路径 
    15. tac $logfile/www.meiweny.cn.log | awk -v st="$start_time" -v et="$stop_time" '{t=substr($2,RSTART+14,21);if(t>=st && t<=et) {print $0}}' | awk '{print $1}' | sort | uniq -c | sort -nr > $logfile/log_ip_top10 
    16. ip_top=`cat $logfile/log_ip_top10 | head -1 | awk '{print $1}'
    17. ip=`cat $logfile/log_ip_top10 | awk '{if($1>60)print $2}'
    18. # 单位时间[1分钟]内单ip访问次数超过60次的ip记录入black.txt,这里大鸟为了测试设置了2,你需要改成其它的数字 
    19. for line in $ip 
    20. do 
    21. echo "deny "$line";" >> $blockiplogfile/blockip.conf 
    22. echo $line 
    23. # 这里还可以执行CF的API来提交数据到CF防火墙 
    24. done 
    25. # 删除 IPs 文件收拾干净 
    26. #rm -rf www/wwwlogs/log_ip_top10 

    由于是免费分享,没有把高频IP结果集与蜘蛛的IP进行差异化对比后再写入黑名单配置文件!如需要完美的脚本方法请联系站长付费处理!!!
    【审核人:站长】

        标题:linux宝塔面板计划任务shell脚本自动拉黑恶意IP到nginx黑名单以达到防采集的方法

        本文链接:https://www.meiweny.cn/zazhi/zhongwangjiaocheng/156.html

        赞一下

        深度阅读

        • 您也可以注册成为美文苑的作者,发表您的原创作品、分享您的心情!

        阅读记录

          关注美文苑