水一篇文章,感觉crowdsec挺好用的
先去cloudflare ➡ My Profile ➡ API Tokens ➡ 选择Crete Token,根据图片设置
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