• Nginx+iptables 防DDOS,恶意访问,采集器


    Nginx+iptables 防DDOS,恶意访问,采集器

    通过分析nginx的日志来过滤出访问过于频繁的IP地址,然后添加到nginx的blockip.conf,并重启nginx

    脚本如下:

    #!/bin/sh
    nginx_home = /Data/app_1/nginx
    log_path = /Data/logs
    /usr/bin/tail -n50000 $log_path/access.log \
    |awk ‘$8 ~/aspx/{print $2,$13}’ \
    |grep -i -v -E “google|yahoo|baidu|msnbot|FeedSky|sogou” \
    |awk ‘{print $1}’|sort|uniq -c |sort -rn \
    |awk ‘{if($1>150)print “deny “$2″;”}’> $nginx_home/conf/vhosts/blockip.conf
    /bin/kill -HUP `cat $nginx_home/nginx.pid`

    也可以通过分析nginx日志过滤出频繁访问IP,直接用iptables屏蔽这个IP,就用不着重启nginx了,并且屏蔽效果更好。

    单个IP的命令是
    iptables -I INPUT -s 124.115.0.199 -j DROP

    封IP段的命令是
    iptables -I INPUT -s 124.115.0.0/16 -j DROP

    封整个段的命令是
    iptables -I INPUT -s 194.42.0.0/8 -j DROP

    封几个段的命令是
    iptables -I INPUT -s 61.37.80.0/24 -j DROP
    iptables -I INPUT -s 61.37.81.0/24 -j DROP

    刚才不小心搞的自己都连不上了-_-!!!

    iptables -I INPUT -p tcp –dport 80 -s 124.115.0.0/24 -j DROP

    以后用这种只封80端口就行了,不会出问题!

    iptables -I INPUT -p tcp –dport 80 -s 124.115.0.0/24 -j DROP
    iptables -I INPUT -s 61.37.81.0/24 -j DROP

    解封
    iptables -F

    清空
    iptables -D INPUT 数字
     
    ___________________________________
     
    #!/bin/sh
    nginx_home = /usr/local/nginx
    log_path = /home/wwwroot/logs
    /usr/bin/tail -n50000 $log_path/access.log \
    |awk ‘$8 ~/aspx/{print $2,$13}’ \
    |grep -i -v -E “google|yahoo|baidu|msnbot|FeedSky|sogou” \
    |awk ‘{print $1}’|sort|uniq -c |sort -rn \
    |awk ‘{if($1>150)print “deny “$2″;”}’> $nginx_home/conf/vhosts/blockip.conf
    /bin/kill -HUP `cat $nginx_home/nginx.pid`
  • 相关阅读:
    HDU4366 Successor 线段树+预处理
    POJ2823 Sliding Window 单调队列
    HDU寻找最大值 递推求连续区间
    UVA846 Steps 二分查找
    HDU3415 Max Sum of MaxKsubsequence 单调队列
    HDU时间挑战 树状数组
    UVA10168 Summation of Four Primes 哥德巴赫猜想
    UESTC我要长高 DP优化
    HDUChess 递推
    HDU4362 Dragon Ball DP+优化
  • 原文地址:https://www.cnblogs.com/wenus/p/1825199.html
Copyright © 2020-2023  润新知