欢迎来到361模板(www.ke361.com),原创精品织梦模板提供商。QQ快速注册登录 网站托管 VIP 网站定制

361模板网

当前位置:361模板网 > 技术文档 > 服务器技术 > 宝塔面板Nginx配合shell脚本实现自动封禁IP 防御CC DDOS攻击方法(转)
这篇文章主要为大家详细介绍了宝塔面板Nginx配合shell脚本实现自动封禁IP 防御CC DDOS攻击方法(转),具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。

除了前面361源码介绍的WDPC面板外,宝塔面板现在很多小白用户使用的非常多,功能比较简单易用,但是其中防御功能较弱,内置的WAF并不能实现服务器级别的防火墙封IP,所以我们只能借用一下其中的功能,加上LINUX系统天然自带的SHELL+IPTABLES防火墙来封禁IP

宝塔安装的NGINX按下面配置

宝塔面板

软件管理-Nginx管理-配置修改

error_log  /www/wwwlogs/nginx_error.log  crit;

改成

error_log  /www/wwwlogs/nginx_error.log  error;

然后到需要开启防御的网站管理 点 设置-流量限制

这里启用流量限制,并将单IP并发数进行限制,一般如果网站页面不复杂设置为10就行。如果网页有很多调用CSS,JS之类的,自行计算一下

这样重启 NGINX 后当有客户端频繁刷新你的网页,发起的请求将在超过设置的每秒钟允许数量后被禁止访问,同时将在 NGINX error.log(默认在 /www/wwwroot/nginx_error.log) 中看到类似记录:

2018/04/27 14:25:27 [error] 6307#0: *1472746 limiting connections by zone "perip", 
client: 182.161.35.139, server: 104.153.102.68, request: "GET /index.php?10=8 HTTP/1.1"

此时请求已经被 NGINX 限流,但是客户端仍然能够继续发送请求到NGINX,还是会占用一定的服务器资源。

因此接下来进行shell脚本设置,将这个client的IP直接通过防火墙封杀

进CENTOS

vi /www/wwwlogs/iptables.sh

shell脚本如下

#!/bin/bash
tail /www/wwwlogs/nginx_error.log -n 200 | grep "perip"| awk -F'[ ,]' '{print $13}' | sort | uniq | sort -n > drop_ip.txt 
for i in $(cat /www/wwwlogs/drop_ip.txt)
do 
FLAG=0  
  for j in $(cat /www/wwwlogs/drop_ip_all.txt)
do
      if [ $i = $j ]; then  
        FLAG=1  
        break  
      fi  
  done  
  if [ $FLAG -eq 0 ]; then  
    echo --new drop ip:$i 
    #add to iptables  
    /sbin/iptables -C INPUT -s $i -j DROP  
  fi  
done  
  
#select drop_ip.txt append to drop_ip_all.txt  
cat drop_ip.txt >> drop_ip_all.txt  
  
#drop_ip_all remove repeat ip  
#cat drop_ip_all.txt | sort | uniq > drop_ip_all.txt


chmod +x /www/wwwlogs/iptables.sh
echo "* * * * * root /www/wwwlogs/iptables.sh" >> /etc/crontab
service crond restart

还可以设置每天凌晨重启防火墙

echo "01 1 * * * root /etc/init.d/iptables restart" >> /etc/crontab
service crond restart

当然如果你是套了CDN,那也是有解决办法的,但是需要你的CDN提供商支持IP防火墙,也就是IP黑名单功能,比如我们合作的Cloudflare就支持这个功能。

以上就是宝塔面板Nginx配合shell脚本实现自动封禁IP 防御CC DDOS攻击方法(转)的全部内容,希望对大家的学习和解决疑问有所帮助,也希望大家多多支持361模板网。

感谢打赏,我们会为大家提供更多优质资源!

热词标签: DDOS攻击 CC攻击 nginx 宝塔面板 shell脚本

上一篇cmd命令 cmd启动,重启,停止IIS命令

下一篇DOS远程桌面连接命令【值得收藏】

取消

感谢您的支持,我们会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by361模板网,分享从这里开始,精彩与您同在