home server 篇五:云“fail2ban” [Crowdsec]

2022-08-16 13:24:29 1点赞 12收藏 1评论

介绍

上篇的fail2ban是在受攻击时才采取行动,如果可以在攻击前就把恶意ip给ban了,岂不是更好。Crowdsec就差不多是这种服务,用户受攻击时上传攻击者的ip到云,然后云再把恶意ip分发给其它用户,理论上该ip就不能再攻击其他使用Crowdsec的用户了,起码是4个小时内。当然在一个ip还没发起攻击前是不会把它当成恶意ip的。

云“fail2ban” [Crowdsec]

Crowdsec行为和配置都非常像fail2ban,都要监听log,但它是SaaS服务,支持ipv4和ipv6,意味着用户需要和提供商合作提供基本的信息,才能ban恶意IP。所以在自己服务器里的Crowdsec只是个客户端,不算自建服务。

从日志来看,它的确在干活:crowdsecurity/community-blocklist: added 11528 entries, deleted 11502 entries。我没有认真看过官网,翻了几次车连耐心都没了,所以不知道怎么看blocklist,要是某天我动态ip变了,然后不幸的变到blocklist里的其中一个,也不知道怎么办,看日志是7天刷新一次,难道要关容器。算了,被ban的话只ban 4小时,等出问题后再解决吧。我发这些翻车文章的目的就是在钓大佬出来写更详细的教程给我抄,我相信只要铒放的够多就能钓出一个。

安装

要建一个叫acquis.yaml的文件,在后面才需要用。这次拿traefik和authelia做示范。

filenames:
!!- /var/log/traefik/access.log
labels:
!!type: traefik
---
filenames:
!!- /var/log/authelia.log
labels:
!!type: authelia

然后就可以用crowdsec的dockercompose了。

version: '3.0'
services:
!!crowdsec:
!!!!image: crowdsecurity/crowdsec:latest
!!!!container_name: crowdsec
!!!!environment:
!!!!!!PGID: "1000"
!!!!!!TZ: Asia/Shanghai
!!!!volumes:
!!!!!!- /home/用户名/docker/crowdsec/crowdsec:/etc/crowdsec/
!!!!!!- /home/用户名/docker/crowdsec/crowdsec/acquis.yaml:/etc/crowdsec/acquis.yaml
!!!!!!- /home/用户名/docker/crowdsec/data:/var/lib/crowdsec/data/
!!!!!!- /home/用户名/docker/traefik/logs/access.log:/var/log/traefik/access.log:ro
!!!!!!- /home/用户名/docker/authelia/config/authelia.log:/var/log/authelia.log/:ro
!!!!networks:
!!!!!!- traefik_proxy
!!!!restart: unless-stopped

networks:
!!traefik_proxy:
!!!!external: true

建好后用这个在容器里确认crowdsec有好好的在读log。不要理traefik.log,有用的是access.log。

cscli metrics

云“fail2ban” [Crowdsec]

crowdsec只是搜集信息,要执行操作的话还需要bouncer。Traefik的bouncer是贡献者写的,所以是beta版。https://hub.crowdsec.net/

云“fail2ban” [Crowdsec]

首先需要在crowdsec里请求BOUNCER的API_KEY,bouncer的名字随便取,例如bouncer-traefik:

cscli bouncers add bouncer-traefik

妥善保管这个API_KEY,弄丢了就要把crowdsec的相关文件全删了再来一遍了。

docker-compose.yml:

version: '3.0'

services:
!!crowdsec:
!!!!image: crowdsecurity/crowdsec:latest
!!!!container_name: crowdsec
!!!!environment:
!!!!!!PGID: "1000"
!!!!!!COLLECTIONS: "crowdsecurity/linux crowdsecurity/traefik LePresidente/authelia-logs LePresidente/authelia-bf"
!!!!!!TZ: Asia/Shanghai
!!!!volumes:
!!!!!!- /home/用户名/docker/crowdsec/crowdsec:/etc/crowdsec/
!!!!!!- /home/用户名/docker/crowdsec/crowdsec/acquis.yaml:/etc/crowdsec/acquis.yaml
!!!!!!- /home/用户名/docker/crowdsec/data:/var/lib/crowdsec/data/
!!!!!!- /home/用户名/docker/traefik/logs:/var/log/traefik/:ro
!!!!!!- /home/用户名/docker/authelia/config/authelia.log:/var/log/authelia.log/:ro
!!!!networks:
!!!!!!- traefik_proxy
!!!!restart: unless-stopped

!!bouncer-traefik:
!!!!image: fbonalair/traefik-crowdsec-bouncer:latest
!!!!container_name: bouncer-traefik
!!!!environment:
!!!!!!CROWDSEC_BOUNCER_API_KEY: 刚刚申请的
!!!!!!CROWDSEC_AGENT_HOST: crowdsec:8080
!!!!!!TZ: Asia/Shanghai
!!!!networks:
!!!!!!- traefik_proxy
!!!!depends_on:
!!!!!!- crowdsec
!!!!restart: unless-stopped

networks:
!!traefik_proxy:
!!!!external: true

Crowdsec的自由度比fail2ban高点,可以用middleware监控需要用的,fail2ban就像看门狗一样,不让进就不让进,crowdsec则像门卫,至少可以控制,所以在要保护的服务的动态配置middleware里加crowdsec-bouncer就行了。在traefik/config里创建个mw-crowdsec.yml:

http:
!!middlewares:
!!!!crowdsec-bouncer:
!!!!!!forwardauth:
!!!!!!!!address: http://bouncer-traefik:8080/api/v1/forwardAuth
!!!!!!!!trustForwardHeader: true

现在就能执行关于ip的操作了。如果想banip用这个,例如我要ban 192.168.0.24。

cscli decisions add --ip 192.168.0.24

然后192.168.0.24访问有对应middleware的服务将会得到forbidden,没有的则正常。

查看有没有ban ip的命令是这个。

cscli decisions list

用这个解ban。

cscli decisions delete --ip 192.168.0.24

云“fail2ban” [Crowdsec]

好了,就这样了,关于crowdsec的代码我也看不懂,有问题问gayhub去。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

268元起

任天堂 Nintendo Switch《舞力全开 Just Dance》 游戏兑换卡

任天堂 Nintendo Switch《舞力全开 Just Dance》 游戏兑换卡

159元起

Microsoft 微软 OFFICE 365 家庭版 会员

Microsoft 微软 OFFICE 365 家庭版 会员

106元起

WPS 金山软件 WPS 超级会员 3年卡

WPS 金山软件 WPS 超级会员 3年卡

308元起

Microsoft 微软 Office 365 个人版

Microsoft 微软 Office 365 个人版

106元起

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

279元起

Microsoft 微软 到手18.2元/月 微软office365家庭版microsoft365增强版15个月

Microsoft 微软 到手18.2元/月 微软office365家庭版microsoft365增强版15个月

279元起

Microsoft 微软 OFFICE 365 个人版 办公软件

Microsoft 微软 OFFICE 365 个人版 办公软件

189元起

Microsoft 微软 office专业版永久激活码office2019增强版终身版outlook密钥

Microsoft 微软 office专业版永久激活码office2019增强版终身版outlook密钥

249元起

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

676.4元起

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

暂无报价

国行版 Switch体感游戏套装 《健身环大冒险》

国行版 Switch体感游戏套装 《健身环大冒险》

439元起

WPS 金山软件 会员季卡

WPS 金山软件 会员季卡

59.85元起

微软(Microsoft))win10win11专业版批量式授权企业版嵌入式正版化解决方案win11家庭版

微软(Microsoft))win10win11专业版批量式授权企业版嵌入式正版化解决方案win11家庭版

1288元起

Microsoft 微软 office365家庭版15个月 203元

Microsoft 微软 office365家庭版15个月 203元

198元起

Microsoft 微软 活动6天 office365家庭版microsoft365订阅密钥

Microsoft 微软 活动6天 office365家庭版microsoft365订阅密钥

234元起
1评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
目录
12
扫一下,分享更方便,购买更轻松