10分钟部署Searx防DDoS护盾:从API限流到Filtron规则实战

10分钟部署Searx防DDoS护盾:从API限流到Filtron规则实战

【免费下载链接】searx Privacy-respecting metasearch engine 【免费下载链接】searx 项目地址: https://gitcode.com/gh_mirrors/se/searx

Searx作为一款注重隐私保护的元搜索引擎,在提供聚合搜索服务的同时,也面临着DDoS攻击和恶意请求的威胁。本文将带你快速掌握从API限流到Filtron规则配置的完整防护方案,确保你的Searx实例安全稳定运行。

为什么需要保护Searx实例?

Searx依赖外部搜索服务获取结果,一旦遭遇恶意请求或DDoS攻击,不仅会导致服务响应缓慢,还可能被外部服务封禁IP。官方文档明确指出:"To avoid the abuse of these services it is advised to limit the number of requests processed by searx"(docs/admin/filtron.rst)。

Searx管理员引擎配置界面

图:Searx管理员界面中的引擎配置面板,可控制各搜索引擎的启用状态和超时设置

准备工作:部署Filtron防火墙

Filtron是一款轻量级应用防火墙,作为中间件部署在Web服务器与Searx之间,能够有效过滤恶意请求。

安装Filtron

Filtron基于Go语言开发,推荐使用项目提供的自动化脚本快速部署:

# 克隆项目仓库
git clone https://gitcode.com/gh_mirrors/se/searx
cd searx/utils
# 运行Filtron安装脚本
./filtron.sh install

核心防护规则配置

Filtron通过JSON规则文件实现请求过滤,默认规则位于utils/templates/etc/filtron/rules.json。主要防护策略包括:

  1. IP限流:限制单个IP在指定时间内的请求次数
  2. User-Agent限制:识别并拦截异常用户代理
  3. API请求限制:控制JSON/RSS等API接口的访问频率
  4. 爬虫识别:通过请求头特征识别并限制爬虫行为

实战:10分钟规则配置指南

1. 基础规则模板

Filtron规则采用JSON数组格式,每个规则包含过滤器、限制条件和执行动作三部分:

{
  "name": "IP limit",
  "interval": 300,  // 5分钟时间窗口
  "limit": 60,      // 最多60次请求
  "aggregations": ["Header:X-Forwarded-For"],  // 按IP聚合
  "actions": [
    {"name": "log"},
    {"name": "block", "params": {"message": "Rate limit exceeded"}}
  ]
}

2. 关键规则配置建议

爬虫防护
{
  "name": "bot detection",
  "filters": ["Header:User-Agent=.*bot.*"],
  "limit": 10,
  "interval": 3600,
  "actions": [{"name": "block"}]
}
API接口保护
{
  "name": "API rate limit",
  "filters": ["Param:format=(json|rss|csv)"],
  "interval": 60,
  "limit": 10,
  "actions": [{"name": "block"}]
}

3. 启动Filtron服务

# 测试规则配置
filtron -rules /etc/filtron/rules.json -test

# 启动服务
systemctl start filtron
systemctl enable filtron

Web服务器配置

Nginx反向代理设置

修改Nginx配置,将请求通过Filtron转发到Searx:

location /searx {
    proxy_pass http://127.0.0.1:4004/;  # Filtron默认监听端口
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
}

配置验证

通过以下命令检查Nginx配置并重启服务:

nginx -t
systemctl restart nginx

进阶防护:Searx内置安全设置

除了Filtron,还可通过Searx偏好设置增强安全性:

Searx隐私设置面板

图:Searx偏好设置中的隐私保护选项,可配置主机名替换等安全功能

  1. 启用Hostname Replace:重写结果中的主机名,增强隐私保护
  2. 配置安全搜索:在偏好设置中设置SafeSearch级别
  3. 限制引擎并发:在管理员界面调整各搜索引擎的超时时间

监控与维护

日志查看

# 查看Filtron日志
journalctl -u filtron

# 查看Searx访问日志
tail -f /var/log/nginx/searx-access.log

规则更新

定期更新规则文件并 reload 服务:

# 编辑规则
nano /etc/filtron/rules.json

# 应用新规则
systemctl reload filtron

总结

通过Filtron防火墙与Searx内置安全功能的结合,你已构建起多层次的防护体系。关键要点:

  1. 始终使用最新版本的Filtron和Searx
  2. 根据实际流量调整限流参数
  3. 定期审查访问日志,优化过滤规则
  4. 结合Web服务器层的防护措施

通过这些步骤,即使面对大规模恶意请求,你的Searx实例也能保持稳定高效运行。完整的防护配置可参考官方文档docs/admin/filtron.rst

【免费下载链接】searx Privacy-respecting metasearch engine 【免费下载链接】searx 项目地址: https://gitcode.com/gh_mirrors/se/searx

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值