小知识:Nginx+iptables屏蔽访问Web页面过于频繁的IP(防DDOS,恶意访问,采集器)

脚本如下: 

复制代码代码如下:

#!/bin/sh 

nginx_home = /Data/app_1/nginx 

log_path = /Data/log

/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 数字

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Linux 网站项目发布要做哪些配置

2023-5-18 3:12:36

建站知识

小知识:linux SSH配合SecureCRT的密匙完美使用方法

2023-5-18 3:20:52

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索