当前位置: 首页 > news >正文

OpenCloudOS9部署 CrowdSec 全流程(由z.ai提供)

这份教程基于我们刚才的实际对话整理,针对 OpenCloudOS 9(基于 RHEL 9)2GB 小内存宝塔面板/Nginx 环境量身定制。

OpenCloudOS 9 部署 CrowdSec 全流程实战方案

环境说明:

  • 操作系统:OpenCloudOS 9
  • 内存配置:2GB(需优化 Swap 及服务资源限制)
  • Web 环境:宝塔面板 + Nginx
  • 目标:部署 CrowdSec 主程序 + Nginx 日志采集 + 防火墙封禁

第一阶段:系统基础优化(Swap 扩容)

由于机器内存较小(2G),建议先将 Swap 从默认配置调整为 2G,防止后续服务崩溃。

  1. 查看当前 Swap 状态
    swapon -s
    free -h
    
  2. 关闭现有 Swap
    swapoff /www/swap
    # 或者关闭所有 swapoff -a
    
  3. 重建 2G Swap 文件
    注意:此处以 /www/swap 为例,请根据实际路径调整
    rm -f /www/swap
    dd if=/dev/zero of=/www/swap bs=1M count=2048 status=progress
    chmod 600 /www/swap
    mkswap /www/swap
    swapon /www/swap
    
  4. 验证结果
    free -h
    # 此时 Swap Total 应显示为 2.0G
    
    注:/etc/fstab 若已正确配置 /www/swap 则无需修改。

第二阶段:CrowdSec 仓库配置(绕过安装脚本限制)

由于 OpenCloudOS 9 尚未被 CrowdSec 官方自动脚本完全支持,需手动配置 RPM 仓库。

  1. 手动创建仓库文件
    vi /etc/yum.repos.d/crowdsec_crowdsec.repo
    
    写入以下内容:
    [crowdsec_crowdsec]
    name=crowdsec_crowdsec
    baseurl=https://packagecloud.io/crowdsec/crowdsec/rpm_any/rpm_any/$basearch
    repo_gpgcheck=1
    gpgcheck=1
    enabled=1
    gpgkey=https://packagecloud.io/crowdsec/crowdsec/gpgkeyhttps://packagecloud.io/crowdsec/crowdsec/gpgkey/crowdsec-crowdsec-EDE2C695EC9A5A5C.pub.gpghttps://packagecloud.io/crowdsec/crowdsec/gpgkey/crowdsec-crowdsec-C822EDD6B39954A1.pub.gpghttps://packagecloud.io/crowdsec/crowdsec/gpgkey/crowdsec-crowdsec-FED78314A2468CCF.pub.gpg
    sslverify=1
    sslcacert=/etc/pki/tls/certs/ca-bundle.crt
    metadata_expire=3600
    
  2. 刷新缓存并检查包
    dnf makecache --enablerepo='crowdsec_crowdsec'
    dnf list crowdsec*
    

第三阶段:安装 CrowdSec 主程序与场景

  1. 安装 CrowdSec
    dnf install -y crowdsec
    systemctl enable --now crowdsec
    
  2. 安装 Nginx 和 ModSecurity 场景集合
    注意:在 RHEL 系中,不需要安装 crowdsec-nginx 包,而是通过命令安装集合并配置日志。
    cscli collections install crowdsecurity/nginx
    cscli collections install crowdsecurity/modsecurity
    

第四阶段:配置 Nginx 日志采集(宝塔适配)

OpenCloudOS 9 版本通常使用 /etc/crowdsec/acquis.d/ 目录进行分片配置,而不是单一的 acquis.yaml

  1. 创建采集配置文件
    vi /etc/crowdsec/acquis.d/bt_nginx.yaml
    
  2. 填入配置内容
    ---
    filenames:- /www/wwwlogs/*.log
    labels:type: nginx
    
    解释:指定宝塔默认日志路径,并标记类型为 nginx。
  3. 重载服务
    systemctl reload crowdsec
    
  4. 验证采集状态
    cscli metrics
    
    查看 Acquisition 部分的 Lines read 是否大于 0,如果数值在增加,说明日志读取成功。

第五阶段:安装并配置防火墙 Bouncer

由于是小内存机器,推荐使用 Firewall Bouncer(直接封 IP),而不是 Nginx Bouncer(消耗内存)。

  1. 查找可用的 Bouncer 包
    包名通常带后缀,需区分 iptablesnftables
    dnf list crowdsec* | grep firewall
    
  2. 安装对应包(二选一)
    • 推荐(nftables 版本):
      dnf install -y crowdsec-firewall-bouncer-nftables
      
    • 备选(iptables 版本):
      dnf install -y crowdsec-firewall-bouncer-iptables
      
  3. 修改 Bouncer 配置
    vi /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
    
    修改 mode 参数以匹配你安装的版本:
    mode: nftables       # 如果装的是 iptables 版本,这里改为 iptables
    update_frequency: 10s
    deny_action: DROP
    
  4. 启动 Bouncer
    systemctl enable --now crowdsec-firewall-bouncer
    

第六阶段:资源限制优化(防 OOM)

为防止 CrowdSec 在 2G 内存机器上占用过高,建议添加内存限制。

  1. 限制 CrowdSec 主程序
    systemctl edit crowdsec
    
    输入以下内容:
    [Service]
    MemoryLimit=512M
    CPUQuota=50%
    
    systemctl daemon-reload
    systemctl restart crowdsec
    
  2. 限制 Firewall Bouncer
    systemctl edit crowdsec-firewall-bouncer
    
    输入以下内容:
    [Service]
    MemoryLimit=128M
    
    systemctl daemon-reload
    systemctl restart crowdsec-firewall-bouncer
    

第七阶段:功能测试与验证

  1. 检查服务状态
    systemctl status crowdsec
    systemctl status crowdsec-firewall-bouncer
    
  2. 模拟攻击测试
    添加一个测试 IP,观察是否被封禁:
    cscli decisions add --ip 1.2.3.4 --duration 1m --reason "test"
    
  3. 验证封禁结果
    • 查看 CrowdSec 决策列表:
      cscli decisions list
      
    • 查看防火墙规则(根据你选择的模式):
      # nftables 模式:
      nft list table inet crowdsec# iptables 模式:
      iptables -L -n | grep crowdsec
      

常见问题排查

  • Q: yum install crowdsec-nginx 提示找不到包?
    • A: RHEL 系不需要此包,请使用 cscli collections install crowdsecurity/nginx 并配置 acquis.d 即可。
  • Q: 报错 This system is not supported
    • A: 请使用第二阶段的“手动创建仓库文件”方法绕过脚本检测。
  • Q: cscli metrics 显示 Lines read 为 0?
    • A: 检查 /etc/crowdsec/acquis.d/ 下的路径是否正确(宝塔通常是 /www/wwwlogs/*.log),并检查 YAML 缩进是否正确(不要用 Tab 键)。
http://www.jsqmd.com/news/366405/

相关文章:

  • Java计算机毕设之基于springboot的学生档案管理系统基于SpringBoot + Vue的学生档案管理系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 2026年大型集团资产管理系统有哪些?哪家资产管理系统平台软件好? - 品牌2025
  • dash
  • 京东e卡回收98折真实平台存在吗?揭秘隐藏官方价格表 - 淘淘收小程序
  • 干货合集:AI论文网站,千笔AI VS PaperRed,专为本科生打造!
  • Apache Druid 代码执行漏洞(CVE-2021-25646)
  • 毕业论文救星在哪?AI 写论文软件排行榜速看
  • 突破种子搜索碎片化困境:Jackett重构你的资源聚合体验
  • 宝塔面板nginx安装modsecurity(z.ai提供)
  • AI产品经理与传统PM的核心差异,小白也能轻松看懂!
  • 交稿前一晚!降AIGC网站 千笔 VS WPS AI,专科生专属高效之选
  • 口服抗衰产品推荐,2026年十款网络热门NMN抗衰产品分析,兼顾成分、吸收、功效、性价比等验证 - 资讯焦点
  • 航班取消时,谁的客服更稳?同程、携程、飞猪、去哪儿四平台客服响应横向测评 - 资讯焦点
  • 2026年2月心理咨询机构深度对比,师资环境效果全方位解析 - 品牌鉴赏师
  • 如何防止串通投标
  • 航班取消时,谁的客服响应更稳?四大平台服务能力横向测评报告 - 资讯焦点
  • 江苏破产律师张茂诚荣膺LegalOne长三角破产重整与清算领域杰出律师 - 资讯焦点
  • 拓竹 3D打印炒面 拉丝避坑指南:这5招让你一次成型不浪费;耗8小时+半斤耗材打出“抽象摆件”?很多问题都是底部支撑没有粘牢,导致墨模型倒塌, brim设置很关键,内外侧8mm 第一层就结实了
  • 哪家公司做GEO优化最靠谱?垂直平台才是B2B企业的“AI时代入口” - 品牌推荐大师1
  • 实用指南:Linux常用命令详细介绍
  • 小白程序员必看:如何将大模型进化为能“做事”的智能体?
  • 国内微型超高温杀菌机制造商,专业生产供应商 - 品牌推荐大师
  • spring6-与juint和mybatis的集成
  • 2026年资产管理系统公司推荐,优质资产管理系统平台盘点 - 品牌2025
  • 【计算机毕业设计案例】基于SpringBoot + Vue的学生档案管理系统的设计与实现基于springboot的学生档案管理系统(程序+文档+讲解+定制)
  • mac电脑通过yunedit-ssh上传文件到linux服务器
  • EServer完全指南:一站式本地开发环境搭建与多服务协同配置(含4个实战技巧)
  • [CCC 2023 S4] 最低成本道路 题解
  • 第10章 容器交互与调试
  • 7个核心技巧:AI绘画工具从入门到精通