
crowdsecurity/cloudflare-bouncercloudflare-bouncer是一款用于将CrowdSec安全决策同步至CloudFlare防火墙的工具。它能够管理多用户、多账户、多区域设置,支持基于IP、国家和AS范围的安全决策,帮助用户通过CloudFlare防火墙实施CrowdSec的安全策略。
适用于已部署CrowdSec且使用CloudFlare作为CDN/防火墙的用户,尤其适合需要管理多个CloudFlare账户或区域、需要基于IP/国家/AS实施安全策略的场景。
bashdocker run crowdsecurity/cloudflare-bouncer \ -g <CLOUDFLARE_TOKEN1> <CLOUDFLARE_TOKEN2> > cfg.yaml # 为提供的令牌自动生成CloudFlare配置 vi cfg.yaml # 检查配置并设置`crowdsec_lapi_key`
bashsudo cscli -oraw bouncers add cloudflarebouncer # -oraw标志用于获取纯文本输出,便于直接复制
注意:
crowdsec_lapi_url必须能从容器内部访问
bashdocker run \ -v $PWD/cfg.yaml:/etc/crowdsec/bouncers/crowdsec-cloudflare-bouncer.yaml \ -p 2112:2112 \ crowdsecurity/cloudflare-bouncer
配置文件必须位于/etc/crowdsec/bouncers/crowdsec-cloudflare-bouncer.yaml路径下。
yaml# CrowdSec配置 crowdsec_lapi_url: http://localhost:8080/ # CrowdSec LAPI地址 crowdsec_lapi_key: ${API_KEY} # CrowdSec LAPI密钥 crowdsec_update_frequency: 10s # 从CrowdSec拉取决策的频率 # Cloudflare配置 cloudflare_config: accounts: - id: # Cloudflare账户ID token: # Cloudflare API令牌 ip_list_prefix: crowdsec # IP列表前缀 default_action: challenge # 默认操作 zones: # 区域(域名)配置 - actions: - challenge # 有效操作:challenge(验证)、js_challenge(JS验证)、block(阻止) zone_id: # 区域ID update_frequency: 30s # 更新Cloudflare IP列表的频率 # 拦截器配置 daemon: false # 是否以守护进程模式运行 log_mode: file # 日志模式:file(文件)或stdout(标准输出) log_dir: /var/log/ # 日志目录 log_level: info # 日志级别:debug、info、error # Prometheus监控配置 prometheus: enabled: true # 是否启用Prometheus listen_addr: 127.0.0.1 # 监控监听地址 listen_port: 2112 # 监控监听端口
在Cloudflare中,每个用户可访问多个账户,每个账户可管理多个区域(可理解为域名),每个区域有唯一的zone_id。
注意:免费版Cloudflare区域仅支持一种操作,付费版支持多种操作,默认应用第一个操作。
通过提供的Cloudflare令牌自动发现账户和区域并生成配置。
示例用法:
bashdocker run crowdsecurity/cloudflare-bouncer -g <TOKEN_1>,<TOKEN_2>... > cfg.yaml
仅生成Cloudflare相关配置,CrowdSec配置需手动补充或通过自定义配置文件指定。
使用自定义配置:
bashdocker run crowdsecurity/cloudflare-bouncer -c /cfg.yaml -g <TOKEN_1>,<TOKEN_2>... -v $PWD/cfg.yaml:/cfg.yaml
创建所需的IP列表和防火墙规则(执行后退出):
bashdocker run \ -v $PWD/cfg.yaml:/etc/crowdsec/bouncers/crowdsec-cloudflare-bouncer.yaml \ -p 2112:2112 \ crowdsecurity/cloudflare-bouncer -s
删除由拦截器创建的所有IP列表和防火墙规则(执行后退出):
bashdocker run \ -v $PWD/cfg.yaml:/etc/crowdsec/bouncers/crowdsec-cloudflare-bouncer.yaml \ -p 2112:2112 \ crowdsecurity/cloudflare-bouncer -c
服务定期轮询CrowdSec Local API获取新决策,然后通过Cloudflare API更新IP列表和防火墙规则,将CrowdSec的安全策略应用到Cloudflare防护中。


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务