JasonLovesDoggo/caddy-defender
GitHub: JasonLovesDoggo/caddy-defender
Caddy 中间件插件,通过 IP 过滤拦截或反制 AI 爬虫,支持返回垃圾数据污染训练集及 Tarpit 陷阱。
Stars: 508 | Forks: 20
## **Caddy Defender 插件**
**Caddy Defender** 插件是一个 Caddy 中间件,允许您根据客户端的 IP 地址拦截或操作请求。它对于防止恶意流量或通过返回垃圾数据来污染 AI 训练数据特别有用。
## **功能特性**
- **IP 范围过滤**:拦截或操作来自特定 IP 范围的请求。
- **内置 IP 范围**:为热门 AI 服务(例如 OpenAI、DeepSeek、GitHub Copilot)预设的 IP 范围。
- **自定义 IP 范围**:通过 Caddyfile 配置添加您自己的 IP 范围。
- **多种响应器后端**:
- **Block**:返回 `403 Forbidden` 响应。
- **Custom**:返回自定义消息。
- **Drop**:断开连接。
- **Garbage**:返回垃圾数据以污染 AI 训练。
- **Redirect**:返回带有自定义 URL 的 `308 Permanent Redirect` 响应。
- **Ratelimit**:对请求进行速率限制,可通过 [caddy-ratelimit](https://github.com/mholt/caddy-ratelimit) 配置。
- **Tarpit**:以较慢且可配置的速率流式传输数据,以拖延机器人并污染 AI 训练。
## **安装**
### **使用 Docker**
使用 Caddy Defender 插件最简单的方法是使用预构建的 Docker 镜像。
1. **拉取 Docker 镜像**:
docker pull ghcr.io/jasonlovesdoggo/caddy-defender:latest
2. **运行容器**:
使用以下命令通过您的 `Caddyfile` 运行容器:
docker run -d \
--name caddy \
-v /path/to/Caddyfile:/etc/caddy/Caddyfile \
-p 80:80 -p 443:443 \
ghcr.io/jasonlovesdoggo/caddy-defender:latest
将 `/path/to/Caddyfile` 替换为您的 `Caddyfile` 路径。
有关其他安装方法,请参阅[在线文档](https://JasonLovesDoggo.github.io/caddy-defender/installation/)。
## **配置**
### **Caddyfile 语法**
`defender` 指令用于配置 Caddy Defender 插件。其语法如下:
```
defender {
message
ranges
url
}
```
- ``:要使用的响应器后端。支持的值有:
- `block`:返回 `403 Forbidden` 响应。
- `custom`:返回自定义消息(需要 `message`)。
- `drop`:断开连接。
- `garbage`:返回垃圾数据以污染 AI 训练。
- `redirect`:返回 `308 Permanent Redirect` 响应(需要 `url`)。
- `ratelimit`:标记请求以进行速率限制(需要同时安装 [Caddy-Ratelimit](https://github.com/mholt/caddy-ratelimit))。
- `tarpit`:以较慢且可配置的速率流式传输数据,以拖延机器人并污染 AI 训练。
- ``:可选的 CIDR 范围列表或用于匹配客户端 IP 的预定义范围键。默认为 [`aws azurepubliccloud deepseek gcloud githubcopilot openai`](./plugin.go)。
- ``:使用 `custom` 响应器时返回的自定义消息。
- ``:`redirect` 响应器重定向到的 URI。
有关配置的更多信息,请参阅网站上的[配置页面](https://JasonLovesDoggo.github.io/caddy-defender/config/)。
## **快速开始**
[文档网站](https://JasonLovesDoggo.github.io/caddy-defender/) 包含有关插件配置、代码示例等的信息。
为了快速上手,请遵循[入门指南](https://JasonLovesDoggo.github.io/caddy-defender/intro/),使用 *Caddy Defender 插件* 保护您的服务器。
## 示例请查看 [docs/examples.md](docs/examples.md)
## **内置 IP 范围**
该插件包含热门 AI 服务的预定义 IP 范围。这些范围嵌入在二进制文件中,无需额外配置即可使用。
| 服务 | 键 | IP 范围 |
| :------------------------------------------------------------------: | :-----------------------------------------: | :------------------------------------------------: |
| Alibaba Cloud | aliyun | [aliyun.go](ranges/fetchers/aliyun.go) |
| VPNs | vpn | [vpn.go](ranges/fetchers/vpn.go) |
| AWS | aws | [aws.go](ranges/fetchers/aws/aws.go) |
| AWS 区域 | aws-us-east-1, aws-us-west-1, aws-eu-west-1 | [aws_region.go](ranges/fetchers/aws/aws_region.go) |
| DeepSeek | deepseek | [deepseek.go](ranges/fetchers/deepseek.go) |
| GitHub Copilot | githubcopilot | [github.go](ranges/fetchers/github.go) |
| Google Cloud Platform | gcloud | [gcloud.go](ranges/fetchers/gcloud.go) |
| Oracle Cloud Infrastructure | oci | [oracle.go](ranges/fetchers/oracle.go) |
| Microsoft Azure | azurepubliccloud | [azure.go](ranges/fetchers/azure.go) |
| OpenAI | openai | [openai.go](ranges/fetchers/openai.go) |
| Mistral | mistral | [mistral.go](ranges/fetchers/mistral.go) |
| Vultr | vultr | [vultr.go](ranges/fetchers/vultr.go) |
| Cloudflare | cloudflare | [cloudflare.go](ranges/fetchers/cloudflare.go) |
| Digital Ocean | digitalocean | [digitalocean.go](ranges/fetchers/digitalocean.go) |
| Linode | linode | [linode.go](ranges/fetchers/linode.go) |
| [私有](https://caddyserver.com/docs/caddyfile/matchers#remote-ip) | private | [private.go](ranges/fetchers/private.go) |
| 所有 IP 地址 | all | [all.go](ranges/fetchers/all.go) |
## 默认禁用(需要在构建时手动包含)
| 服务 | 键 | IP 范围 |
| :-----------------------------: | :-: | :------------------------------: |
| Tor 出口节点 | tor | [tor.go](ranges/fetchers/tor.go) |
| ASN(自治系统号) | asn | [asn.go](ranges/fetchers/asn.go) |
欢迎补充!如需预编译列表,请参阅[嵌入结果](ranges/data/generated.go)
## **许可证**
本项目基于 **MIT 许可证** 授权。详情请参阅 [LICENSE](LICENSE) 文件。
## **致谢**
- [本项目的灵感来源](https://www.reddit.com/r/selfhosted/comments/1i154h7/comment/m73pj9t/)。
- [bart](https://github.com/gaissmai/bart) - [Karl Gaissmaier](https://github.com/gaissmai) 的高效路由表实现(Balanced ART 适配),助力我们实现高性能 IP 匹配
- 使用 [Caddy](https://caddyserver.com) 用 ❤️ 构建。
## Star 趋势
[](https://star-history.com/#JasonLovesDoggo/caddy-defender&Date)
标签:AI训练防御, Caddy, CISA项目, Docker, EVTX分析, GitHub Copilot, Go语言, IP过滤, OpenAI, Streamlit, Tarpit, WAF, Web服务器, 中间件, 内存规避, 反爬虫, 安全防御评估, 数据污染, 日志审计, 流量清洗, 爬虫对抗, 程序破解, 网络安全, 网络安全, 访问控制, 请求拦截, 配置错误, 隐私保护, 隐私保护