linux服务器cc防御,Linux下简单的防止CC攻击

linux服务器cc防御,Linux下简单的防止CC攻击Nginx0 7 开始提供了 2 个限制用户连接的模块 NginxHttpLim 和 NginxHttpLim NginxHttpLim 可以根据条件进行并发连接数控制 NginxHttpLim 可以根据条件进行请求频率的控制 http limit zonemy zone binary remote add

Nginx 0.7开始提供了2个限制用户连接的模块:NginxHttpLimitZoneModule和NginxHttpLimitReqModule。

NginxHttpLimitZoneModule可以根据条件进行并发连接数控制。

NginxHttpLimitReqModule可以根据条件进行请求频率的控制。http {

limit_zone my_zone $binary_remote_addr 10m;

limit_req_zone $binary_remote_addr zone=my_req_zone:10m rate=1r/s;

}

server {

location ~ ^/bbs/(index|forumdisplay|viewthread).php$ {

limit_conn myzone_bbs 3;

limit_req zone=bbs burst=2 nodelay;

}

应用这条规则后,bbs目录下的index.PHP、forumdisplay.php和viewthread.php这些页面同一个IP只许建立3个连接,并且每秒只能有1个请求(突发请求可以达到2个)。

另外我们可以找个脚本来封攻击者的IP.访问者通过浏览器正常访问网站,与服务器建立的连接一般不会超过20个,我们可以通过脚本禁止连接数过大的IP访问。以下脚本通过netstat命令列举所有连接,将连接数最高的一个IP如果连接数超过150,则通过 iptables阻止访问:#!/bin/sh

status=`netstat -na|awk ‘$5 ~ /[0-9]+:[0-9]+/ {print $5}’ |awk -F “:” — ‘{print $1}’ |sort -n|uniq -c |sort -n|tail -n 1`

NUM=`echo $status|awk ‘{print $1}’`

IP=`echo $status|awk ‘{print $2}’`

result=`echo “$NUM > 150” | bc`

if [ $result = 1 ]

then

echo IP:$IP is over $NUM, BAN IT!

/sbin/iptables -I INPUT -s $IP -j DROP

fi

运行crontab -e,将上述脚本添加到crontab每分钟自动运行:* * * * * /root/xxxx.sh

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213118.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午6:30
下一篇 2026年3月18日 下午6:31


相关推荐

  • BNF 介绍

    BNF 介绍转 来自维基百科 BNF 规定是推导规则 产生式 的集合 写为 这里的符号是非终结符 而表达式由一个符号序列 或用指示选择的竖杠 分隔的多个符号序列构成 每个符号序列整体都是左端的符号的一种可能的替代 从未在左端出现的符号叫做终结符 基本原理 nbsp nbsp nbsp nbsp nbsp BNF 类似一种数学游戏 从一个符号开始 叫做起始标志 实例中常用 S 表示 然后给出替换

    2026年3月17日
    2
  • 算法导论答案网站_算法导论附录C答案

    算法导论答案网站_算法导论附录C答案//16.2-4#includeusingnamespacestd;#defineN6intx[N+1]={0,10,40,60,90,120,140},f[N+1]={0};//f用于标记某一站是否加油,x[i]表示第i个加油站距离起始点的距离voidGreedy_Select(intx[],intf[])//选择在哪一个加油站停车{ intn=30;//邮箱

    2025年5月27日
    4
  • java 关键字 volatile_java volatile关键字作用及使用场景

    java 关键字 volatile_java volatile关键字作用及使用场景1 volatile 关键字的作用 保证了变量的可见性 visibility 被 volatile 关键字修饰的变量 如果值发生了变更 其他线程立马可见 避免出现脏读的现象 如以下代码片段 isShutDown 被置为 true 后 doWork 方法仍有执行 如用 volatile 修饰 isShutDown 变量 可避免此问题 1publicclass 2static

    2026年3月17日
    1
  • redis 常用命令总结

    redis 常用命令总结http doc redisfans com redis 命令参考 一 keypattern 查询相应的 key 1 redis 允许模糊查询 key 有 3 个通配符 2 randomkey 返回随机 key 3 typekey 返回 key 存储的类型 4 existskey 判断某个 key 是否存在 5 delkey 删除 ke

    2026年3月17日
    1
  • setInterval与clearInterval

    setInterval与clearIntervalsetInterval 与 clearInterva 定义和用法语法返回值实例 setInterval 定义和用法 setInterval 方法可按照指定的周期 以毫秒计 来调用函数或计算表达式 setInterval 方法会不停地调用函数 直到 clearInterva 被调用或窗口被关闭 由 setInterval 返回的 ID 值可用作 clearInterva 方法的参数 语法 setInterval code millisec lang 参数描述

    2025年6月7日
    4
  • request.setAttribute和session.setAttribute的区别「建议收藏」

    request.setAttribute和session.setAttribute的区别「建议收藏」1.request.setAttributerequest.setAttribute作用域是请求和被请求页面之间,只在此action的下一个forward需要使用时候调用;request.setAttribute()可存放的参数是String和Object。req.setAttribute(“maps”,maps);//请求转发,携带数据,req存储数据req.getRequestDispatcher(“/user.jsp”).forward(req,resp);2、session.setA

    2022年10月17日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号