zl程序教程

您现在的位置是:首页 >  前端

当前栏目

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

WebNginxIP 访问 页面 ddos 屏蔽 频繁
2023-06-13 09:14:25 时间
脚本如下:
复制代码代码如下:

#!/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-IINPUT-s124.115.0.199-jDROP

封IP段的命令是
iptables-IINPUT-s124.115.0.0/16-jDROP

封整个段的命令是
iptables-IINPUT-s194.42.0.0/8-jDROP

封几个段的命令是
iptables-IINPUT-s61.37.80.0/24-jDROP
iptables-IINPUT-s61.37.81.0/24-jDROP

刚才不小心搞的自己都连不上了-_-!!!
iptables-IINPUT-ptcp?dport80-s124.115.0.0/24-jDROP
以后用这种只封80端口就行了,不会出问题!

iptables-IINPUT-ptcp?dport80-s124.115.0.0/24-jDROP

iptables-IINPUT-s61.37.81.0/24-jDROP

解封
iptables-F
清空
iptables-DINPUT数字