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

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

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

背景说明

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

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

开启模块

1、安装模块

bash 复制代码
sudo apt update
sudo apt install libapache2-mod-evasive

2、启用模块

bash 复制代码
sudo a2enmod evasive
sudo systemctl restart apache2

3、创建日志目录

bash 复制代码
sudo mkdir /var/log/mod_evasive
sudo chown www-data:www-data /var/log/mod_evasive

4、配置 mod_evasive

bash 复制代码
sudo vim /etc/apache2/mods-available/evasive.conf

配置示例:

bash 复制代码
<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        5
    DOSSiteCount        30
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   600

    DOSEmailNotify      you@example.com
    DOSSystemCommand    "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。我用的配置是:

bash 复制代码
<IfModule mod_evasive20.c>
    DOSHashTableSize    3097

    # 单 IP 每秒访问同一页面超过 3 次就触发(适用于刷图片、下载)
    DOSPageCount        3
    DOSPageInterval     1

    # 单 IP 每秒对整个站点访问总次数限制为 20(足够浏览页面)
    DOSSiteCount        20
    DOSSiteInterval     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 生效

bash 复制代码
sudo systemctl restart apache2

效果展示

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

相关推荐
tanzongbiao8 小时前
Dorado7文件上传 解决HttpServletResponse返回值中文乱码的问题
java·服务器·前端
2603_9651481112 小时前
家居百货蓝海:API挖掘高复购率生活小商品
大数据·服务器·人工智能·python·生活
cui_ruicheng16 小时前
LangChain 应用开发(十四):Agent 上下文与记忆机制
服务器·人工智能·python·langchain
爱喝水的鱼丶17 小时前
SAP-ABAP:ABAP 用户出口开发规范与避坑指南:10 类典型错误与运维方案
运维·性能优化·sap·abap·增强·经验交流·出口
博、、18 小时前
从零构建智慧场馆解决方案:架构设计与开发实践
大数据·运维
敢敢是只喵i18 小时前
给现有业务系统接 AI 助手,入口怎么选?网页聊天、自动化任务与本地 Agent 对比
运维·人工智能·ai·开源·自动化·安全架构
章老师说19 小时前
BFE v1.8.6 正式发布:AI 网关计费精细化、Claude 协议与会话亲和性升级
运维·人工智能·ai·负载均衡·ai-native
Brilliantwxx19 小时前
【Linux】 进程(10) 进程控制深度解析:创建、终止与等待
linux·运维·服务器·c语言·开发语言·网络
ai小陈19 小时前
FramePack图生视频云端部署实战:从单图输入到视频输出的完整流程
服务器·人工智能·安全·ai·音视频·gpu算力
欧米欧20 小时前
Linux基础指令上
linux·运维·服务器