10分钟部署Searx防DDoS护盾:从API限流到Filtron规则实战
【免费下载链接】searx Privacy-respecting metasearch engine 项目地址: 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管理员界面中的引擎配置面板,可控制各搜索引擎的启用状态和超时设置
准备工作:部署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。主要防护策略包括:
- IP限流:限制单个IP在指定时间内的请求次数
- User-Agent限制:识别并拦截异常用户代理
- API请求限制:控制JSON/RSS等API接口的访问频率
- 爬虫识别:通过请求头特征识别并限制爬虫行为
实战: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偏好设置中的隐私保护选项,可配置主机名替换等安全功能
- 启用Hostname Replace:重写结果中的主机名,增强隐私保护
- 配置安全搜索:在偏好设置中设置SafeSearch级别
- 限制引擎并发:在管理员界面调整各搜索引擎的超时时间
监控与维护
日志查看
# 查看Filtron日志
journalctl -u filtron
# 查看Searx访问日志
tail -f /var/log/nginx/searx-access.log
规则更新
定期更新规则文件并 reload 服务:
# 编辑规则
nano /etc/filtron/rules.json
# 应用新规则
systemctl reload filtron
总结
通过Filtron防火墙与Searx内置安全功能的结合,你已构建起多层次的防护体系。关键要点:
- 始终使用最新版本的Filtron和Searx
- 根据实际流量调整限流参数
- 定期审查访问日志,优化过滤规则
- 结合Web服务器层的防护措施
通过这些步骤,即使面对大规模恶意请求,你的Searx实例也能保持稳定高效运行。完整的防护配置可参考官方文档docs/admin/filtron.rst。
【免费下载链接】searx Privacy-respecting metasearch engine 项目地址: https://gitcode.com/gh_mirrors/se/searx
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





