zoukankan      html  css  js  c++  java
  • 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!!!!

  • 相关阅读:
    Junit 测试 简明教程
    Set接口
    mysql中模糊查询中的转译
    SSH乱码的解决方法
    const in c++
    inline in c++
    SQLite临时文件及其编译参数
    extern “c”
    常见姓名粤语拼法
    SQLite编译指令PRAGMA
  • 原文地址:https://www.cnblogs.com/wloveh/p/4434919.html
Copyright © 2011-2022 走看看