使用cloudflare-bouncer搭配crowdsec

水一篇文章,感觉crowdsec挺好用的

先去cloudflare ➡ My Profile ➡ API Tokens ➡ 选择Crete Token,根据图片设置

token_permissions.png

Token name自行设定,这个不重要。

但是生成的api一定保存好!!!

使用以下命令,替换“TOKEN”:

docker run crowdsecurity/cloudflare-bouncer -g "TOKEN" > cfg.yaml

运行完会在命令行的目录下生成一个文件cfg.yaml

然后运行以下命令,生成api,前提是已经运行crowdsec,注意保存好!!!

docker exec crowdsec cscli bouncers add cloudflare-bouncer

生成的api替换掉cfg.yaml中crowdsec_lapi_key:后面${API_KEY}这部分。

因为容器与crowdsec在同一网络,把http://localhost:8080/替换成http://crowdsec:8080/

这样配置文件cfg.yaml已完成,可以同crowdsec放在同一文件下面,只需增加以下内容

cloudflare-bouncer:
  image: crowdsecurity/cloudflare-bouncer:latest
  container_name: cloudflare-bouncer
  volumes:
    - ./cloudflare-bouncer/cfg.yaml:/etc/crowdsec/bouncers/crowdsec-cloudflare-bouncer.yaml

文件结构如下:

./crowdsec
├── docker-compose.yml
├── crowdsec-data
├── crowdsec-config
│   └── acquis.yaml
└── cloudflare-bouncer
    └── cfg.yaml

启动容器吧!

最后补充说明:

由于cloudflare对免费账户有1 list 和 5 WAF rules 的限制,以及10000个IPs的限制,而CrowdSec community blocklist有超过19000个IPs,所以使用cloudflare-bouncer对cloudflare的免费用户来说效果不是最好的,而且使用过程可能会产生一定的问题,移除规则需要用到以下指令

docker run --rm -it -v ./cloudflare-bouncer/cfg.yaml:/etc/crowdsec/bouncers/crowdsec-cloudflare-bouncer.yaml --name BouncerRecovery 'crowdsecurity/cloudflare-bouncer' -d

所以就当娱乐一下好了

END

dark
sans