首页
/ CrowdSec Docker 容器部署与配置完全指南

CrowdSec Docker 容器部署与配置完全指南

2025-07-06 05:52:04作者:齐添朝

什么是 CrowdSec

CrowdSec 是一款开源的轻量级安全代理,能够检测并响应恶意行为。它通过社区共享的 IP 信誉数据库自动获取威胁情报,为您的系统提供实时保护。

镜像版本选择

CrowdSec 提供多种 Docker 镜像版本,适用于不同架构(386、amd64、arm/v6、arm/v7、arm64):

Alpine 基础镜像

  • crowdsecurity/crowdsec:{version}:生产环境推荐使用的稳定版本
  • crowdsecurity/crowdsec:dev:开发测试版本(基于 master 分支)
  • crowdsecurity/crowdsec:slim:精简版(体积减少60%,不包含通知插件和GeoIP数据库)

Debian 基础镜像(自 v1.3.3 起)

  • crowdsecurity/crowdsec:{version}-debian
  • crowdsecurity/crowdsec:latest-debian

Debian 版本支持 systemd 和 journalctl,适合需要系统集成的高级用户。

核心配置指南

日志采集配置

CrowdSec 通过采集日志进行分析,推荐使用 /etc/crowdsec/acquis.d/ 目录下的 YAML 文件配置采集规则:

# ssh.yaml 示例
filenames:
 - /logs/auth.log
 - /logs/syslog
labels:
  type: syslog

labels.type 是关键字段,对于 syslog 日志使用 syslog,其他类型请参考相关文档。

持久化存储建议

为防止容器重建时丢失配置和数据,建议使用命名卷或主机绑定挂载以下目录:

  • /etc/crowdsec:配置和凭证
  • /var/lib/crowdsec/data:SQLite 数据库(默认存储)

容器部署实践

基础部署命令

docker run -d \
    -v crowdsec_config:/etc/crowdsec \
    -v ./acquis.d:/etc/crowdsec/acquis.d \
    -v crowdsec_data:/var/lib/crowdsec/data \
    -v /var/log/auth.log:/logs/auth.log:ro \
    -e COLLECTIONS="crowdsecurity/apache2 crowdsecurity/sshd" \
    -p 8080:8080 -p 6060:6060 \
    --name crowdsec crowdsecurity/crowdsec

高级组件架构

CrowdSec 采用 Agent-LAPI 分离架构:

  1. Agent:负责日志解析和警报生成
  2. LAPI (Local API):处理警报并生成安全决策

在复杂环境中,建议:

  • 每个应用主机部署 Agent
  • 集中部署 LAPI 接收所有 Agent 信号
  • LAPI 与中央 API 通信

通知系统配置

要启用通知功能(需使用完整版镜像):

docker run -d \
    -v ./profiles.yaml:/etc/crowdsec/profiles.yaml \
    -v ./http_notification.yaml:/etc/crowdsec/notifications/http_notification.yaml \
    -p 8080:8080 \
    --name crowdsec crowdsecurity/crowdsec

关键环境变量参考

变量 说明 示例值
DISABLE_LOCAL_API 禁用 LAPI,仅运行 Agent true
LOCAL_API_URL 指定 LAPI 地址 http://lapi:8080
COLLECTIONS 安装的安全集合 "crowdsecurity/linux crowdsecurity/nginx"
USE_TLS 启用 TLS 加密 true
TZ 设置时区 Asia/Shanghai

最佳实践建议

  1. 日志采集:优先使用 acquis.d 目录而非单一 acquis.yaml 文件
  2. 版本升级:重建容器前备份配置卷
  3. 性能优化:高负载环境考虑使用 PostgreSQL 替代 SQLite
  4. 安全加固:生产环境务必配置 TLS 加密

排错与维护

  1. 测试模式:使用 -e TEST_MODE=true 验证配置
  2. 日志级别:通过 LEVEL_DEBUG=true 获取详细日志
  3. 数据库维护:定期检查 /var/lib/crowdsec/data 目录大小

通过本文介绍的配置方法,您可以快速部署功能完善的 CrowdSec 安全防护系统,有效识别和阻断各类网络攻击行为。根据实际环境需求,灵活调整组件架构和配置参数,可获得最佳的安全防护效果。