当前位置: 首页 > java >正文

【教程】给Apache服务器装上轻量级的防DDoS模块

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn]

如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~

背景说明

        最近我的网站在被人疯狂刷流量,导致正常访问都不行,没办法只好找找怎么给他限制一下。

        apache自带有一个防刷模块mod_evasive,它是“轻度防御”,适合防止刷流量/秒刷请求,不是专门防 DDoS 的完整方案。不过也能缓解一下了,毕竟轻量不臃肿。

开启模块

1、安装模块

sudo apt update
sudo apt install libapache2-mod-evasive

2、启用模块

sudo a2enmod evasive
sudo systemctl restart apache2

3、创建日志目录

sudo mkdir /var/log/mod_evasive
sudo chown www-data:www-data /var/log/mod_evasive

4、配置 mod_evasive

sudo vim /etc/apache2/mods-available/evasive.conf

配置示例:

<IfModule mod_evasive20.c>DOSHashTableSize    3097DOSPageCount        5DOSSiteCount        30DOSPageInterval     1DOSSiteInterval     1DOSBlockingPeriod   600DOSEmailNotify      you@example.comDOSSystemCommand    "sudo iptables -A INPUT -s %s -j DROP"DOSLogDir           "/var/log/mod_evasive"
</IfModule>

参数说明:

参数说明
DOSPageCount同一个 IP 在多少秒内访问同一个 URL 超过几次就触发(默认建议 2~5)
DOSSiteCount同一个 IP 在多少秒内访问整个站点总次数限制
DOSPageInterval页面请求间隔时间(秒)
DOSSiteInterval站点请求间隔时间(秒)
DOSBlockingPeriod触发封锁后禁止访问时间(秒)
DOSEmailNotify可选:触发时通知管理员
DOSSystemCommand可选:触发时执行系统命令(比如 iptables 封禁)
DOSLogDir日志目录(必须存在)

我的服务器是2核2G,带宽为4M。我用的配置是:

<IfModule mod_evasive20.c>DOSHashTableSize    3097# 单 IP 每秒访问同一页面超过 3 次就触发(适用于刷图片、下载)DOSPageCount        3DOSPageInterval     1# 单 IP 每秒对整个站点访问总次数限制为 20(足够浏览页面)DOSSiteCount        20DOSSiteInterval     1# 触发封锁后封禁 600 秒(10 分钟)DOSBlockingPeriod   600# 日志目录(需要提前创建)DOSLogDir           "/var/log/mod_evasive"# 可选:邮件通知(改成你自己的邮箱)# DOSEmailNotify      your@email.com# 封禁命令(也可以注释掉,仅限拒绝请求)DOSSystemCommand    "sudo iptables -I INPUT -s %s -j DROP"
</IfModule>

5、重启 Apache 生效

sudo systemctl restart apache2

效果展示

        效果还是有一点的,至少带宽不会被一直占着了,肉眼可见的流量拦截:

http://www.xdnf.cn/news/9147.html

相关文章:

  • 【HarmonyOS Next之旅】DevEco Studio使用指南(二十七) -> 开发云函数
  • 基于 SpringBoot 与 VueJS 的智慧就业服务平台构建:技术融合与实践创新
  • jsAPI:Intl.DateTimeFormat 属性含义
  • 尚硅谷redis7 37-39 redis持久化之AOF简介
  • Vuex 模块化和命名空间:管理大型应用的状态
  • 【MYSQL】Linux下安装mysql 8,rpm包方式安装(保姆篇)
  • 【数据插入最大值后】2022-2-2
  • 【Redis】第2节|Redis基本数据类型
  • 信息学奥赛一本通 1547:【 例 1】区间和
  • 算法-全排列
  • 怎么预测体育比赛的胜率?
  • 曲线匹配,让数据点在匹配数据的一侧?
  • 第12次06 :用户中心添加邮箱
  • 【01】大模型原理与API使用
  • 【本地面板公网访问】本地面板也能公网访问?CasaOS+1Panel+cpolar保姆级教程
  • GeoServer样式设置:使用本地图标及分层/分视野显示
  • linux中使用make clean重新编译
  • 3dmax直接导入导出gltf/glb格式插件(免费)
  • 链表面试题10之随机链表的复制
  • Windows环境下Redis的安装使用与报错解决
  • DeepSpeed-Ulysses:支持极长序列 Transformer 模型训练的系统优化方法
  • 技术视界 | 打造“有脑有身”的机器人:ABC大脑架构深度解析(上)
  • Redisson使用分布锁的详解
  • LTC之管理线索:企业抢占市场先机的制胜法宝
  • 第7章 C控制语句:分支和跳转
  • AI赋能天气预测:微软 Aurora 模型
  • 工业视觉阈值技术圣经:VisionMaster六维算法解析+脑图攻防手册
  • Selenium 测试框架 - .NET
  • 有铜半孔的设计规范与材料创新
  • 苍穹外卖--Redis