
集中部署 Crowdsec
时光荏苒… 自从我们第一次谈论 Crowdsec 以来,已经过去了两年… 我打算制作一些关于其部署可能性的更新文档, 因为它是一个非常有趣的产品,可以保护我们的组织免受威胁,并为我们提供了许多有趣的可能性.
在之前的文章中,也许更详细地,我们已经描述了 Crowdsec 的可能性, 而是为那些不认识他的人做个介绍, 它是可以安装在不同类型机器上的软件, 使用 Windows 操作系统, Linux的… 目标是保护那台机器 (或您的网络), 通过读取机器日志,您将做出决策, 例如禁止攻击尝试创建的 IP, 或者有人对自己的验证很糟糕, 等…
有几个组件, 具有处理计算机日志的代理, 它运行的服务, 例如事件查看器, IIS 的, Nginx 浏览器, 阿帕奇, MariaDB的, 交换, Nextcloud, SMB (中小型企业), RDP… 将日志与不同场景进行比较,并将警报发送到 LAPI 服务 (本地 API); 接收警报并将其转化为决策 (基于我们设置的保护). 然后我们有保镖 (o 补救组件), 它咨询 LAPI 的决定并实施这些决定; 例如,防火墙保镖, 这将在操作系统的固件中创建规则,拒绝访问已产生攻击的 IP 地址.
原则上,虽然看起来并非如此,但它非常简单, 安装 Crowdsec 代理时,所有组件都安装在一起 (o 发动机). 当 Crowdsec 安装在 Windows 或 Linux 上时,它将检测机器正在运行的服务, 因此,他们已经受到了保护, 如果它是 Linux 并且具有 (例如) Nginx 已经读取并处理操作系统日志, 以及 Nginx 本人的, 寻找可检测漏洞滥用企图的模式, 扫描, 访问不当… 此外,还可以添加其他类型的集合’ 读取其他类型的日志, 以防万一 Nextcloud 在该 Nginx 中运行, 我们希望 Crowdsec 也处理 Nextcloud 日志…
我说了什么, 这很简单, 如果你不知道它,它是新的, 但它的计划非常周密, 如果我们将其安装在 Windows Server 上, 同上, 例如,它将检测我们是否安装了 IIS, 或 SQL Server… 当我们安装 Crowdsec 代理时,它将检测事件查看器日志中的模式以保护我们. 歌词大意: 我说的, 该 IIS 是否运行任何特定服务, 好吧,我们也可以保护它, 例如,无论是交易所 (OWA 和 SMTP) 能够读取他们的特定日志.
我们剩下的就是能够应用这些操作, 如果他在日志中读到他不喜欢的东西, 做. 为此,, 通常在 Windows 和 Linux 上,我们需要稍后安装 Firewall Bouncer, 正如我所说, 以便此修复组件可以在操作系统防火墙中创建规则, Windows 或 Linux, 临时规则, 否认, 阻止来自攻击 IP 地址的访问.
这就是我们保护 Windows 或 Linux 机器的方式, 但他们彼此不说话, 如果他们能相互交流,那就太有趣了. 所以这一步是可选的, 可能适用于小型环境, 但当然,完全推荐给任何组织. 我们可以轻松地在 Docker 容器中创建 Crowdsec 服务器, 因为说, 该服务器将通过 LAPI 与所有决策共享一个集中式数据库, 为什么? 如果我们对此感兴趣,如果机器受到攻击, 其余的 Crowdsec 机器发现并采取行动, 但是,为了保护和禁止特定的 IP 地址, 一次全部. 我们将部署的另一个出色的容器是 Crowdsec 黑名单镜像, 纯粹的魔力, 此容器将在 URL 中发布所有 Crowdsec 机器共享的黑名单. 为什么? 能够从我们的内部或外围防火墙(例如 Fortigate)访问它, 检查站, pfSense… 并制定否认规则, 网络之间, 从 WAN… 并将攻击者直接隔离到另一个级别.
井, 在这次咆哮之后, 而且已经是灰烬了, 今天的文档基于如何展开我们已经讨论过的最后一部分, 我们将部署核心基础设施, 我们将部署这些容器,在其他文档中,我们将了解如何在 Windows 上安装 Crowdsec 并对其进行保护, 集中式与否; 以及 Linux.
适用于多服务器环境的 Crowdsec 部署
Mkdir Crowdsec CD Crowdsec
例如,我们从 Ubuntu 服务器开始, 替换为他的 FQDN, 静态 IP 地址, 正确配置 NTP, 已更新并已安装 Docker. 让我们看看这两个容器展开的速度有多快. 我们创建一个目录, 走, 然后我们开始. 我们将创建包含以下内容的 docker-compose.yml 文件:
版本: '3' services: 众测: 图像: CrowdSecurity/Crowdsec 重启: 始终端口: - '8080:8080' - '6060:6060' volumes: - ./crowdsec-db 数据库:/var/lib/crowdsec/data/ - ./Crowdsec-配置:/etc/crowdsec/ crowdsec-blocklist-mirror: container_name: crowdsec-blocklist-mirror 镜像: crowdsecurity/blocklist-mirror depends_on: - "众测" 港口: - 41412:41412 卷: - ./cfg.yaml 文件:/etc/crowdsec/bouncers/crowdsec-blocklist-mirror.yaml 卷: crowdsec-db 数据库: Crowdsec-配置:
我说了什么, 将部署两个容器, 一个 Crowdsec,原则上将充当 8080 在 6060 如果感兴趣,它会吐出指标, 在端口 41412TCP 上,我们将拥有发布阻止列表的容器, 一面镜子.
我们卸载并启动集装箱:
sudo docker compose up -d
第一次, Blocklist-Mirror 容器不会提升,因为它需要使用其 API 密钥进行访问, 因此,我们创建了第一个 Bouncer, 对于 阻止列表:
sudo docker exec -it crowdsec-crowdsec-1 cscli 保镖添加 BlocklistMirror
不错, 停止 Crowdsec 容器并删除配置文件以在下面重新创建它.
Sudo Docker 停止 CrowdSEC-CrowdSEC-1 RM -rf cfg.yaml/
我们使用 'nano cfg.yaml 创建’ 配置文件, 它必须是这样的, 请记住,您必须指明我们从 Crowdsec 请求的 API 密钥,并指明我们将用来发布 LAPI 服务的 IP 地址. 以及在阻止列表中,添加将连接并有权访问阻止列表 URL 的 IP 地址, 例如,我们的边界防火墙.
config_version: v1.0 crowdsec_config:
lapi_key: xxxxxxxxxxxxxxx lapi_url: HTTP 协议://DIRECCION_IP_MAQUINA:8080
update_frequency: 10include_scenarios_containing: []
exclude_scenarios_containing: []
only_include_decisions_from: []
insecure_skip_verify: false 阻止列表:
- 格式: plain_text # 支持的格式包括以下任一格式 "plain_text"
端点: /安全/阻止列表身份验证:
类型: 没有 # 支持的类型是以下任一类型 "没有", "ip_based", "基本"
用户:
密码:
trusted_ips: # IP 范围, or IPs which don't require auth to access this blocklist
- 127.0.0.1
- ::1
- 192.168.1.1
listen_uri: 0.0.0.0:41412
TLS:
cert_file:
key_file:
指标:
启用: true 端点: /log_media 指标: stdout log_level: 信息
我们将能够再次启动 Crowdsec 容器,并最终启动 Blocklist-Mirror 容器, 运行:
sudo Docker 启动 CrowdSEC-CrowdSEC-1 sudo Docker 重启 CrowdSEC-Blocklist-Mirror
我们测试是否可以从: HTTP 协议://DIRECCION_IP_MAQUINA:41412/安全/阻止列表
在 CrowdSec 控制台中注册
强烈建议您在 https://app.crowdsec.net 并在我们的 Crowdsec 控制台帐户中注册. 从这里,我们将能够查看 Crowdsec 代理或引擎的状态, 我们可能会将他们订阅到社区中的其他黑名单中, 管理警报, 历史的… 注册我们的 Crowdsec, 我们将从网络进行, “安全引擎” > “发动机” > “添加安全引擎”, 我们将获得一个下拉菜单,我们将在我们的 Crowdsec 服务器上复制并执行该菜单 (称它为什么).
我们执行它, 在这种情况下,我们稍微修改一下命令,因为我们将通过 Docker 执行它:
Sudo Docker exec -it crowdsec-crowdsec-1 cscli 控制台注册 -e 上下文 xxxxxxxxxxxxxxx
返回 Crowdsec 控制台 (如果我们看不到它, F5 系列), 我们会发现它已经检测到了我们的注册请求, 点击 “Acept 注册”,
一旦我们有库存, 我们可以先编辑名称以更好地识别它, 关于她 “编辑名称或标签”,
我们给它起机器名称,然后点击 “更新”,
如果我们想将其订阅到 Crowdsec 提供的某些阻止列表,我们可以继续, 社区… 这样,机器将受到保护,免受某些僵尸网络的侵害, 邪… 为此, 点击 “阻止列表” 我们看到它被订阅了 0,
点击 “浏览可用的阻止列表”,
在这里,我们将提出一系列列表, 我们最多可以选择 3 使用 Community 类型帐户免费, 我们可以选择列表的类型, 最让我们信服的, 需要… 关于他们每个人, 我们将给予 “管理”,
在 “添加安全引擎”,
在这里,我们将看到安装了 Crowdsec 代理的计算机, 选择要订阅的计算机和操作类型, 如果 IP 被禁止或在访问时需要验证码. “确认订阅”.
原则上,我们将文档留在这里, 我们可以说,中心场景已经被留下了最少的, 将为 Crowdsec 的其余引擎提供 LAPI 服务的机器或我们的边界防火墙黑名单. 下一步将是将 Crowdsec 代理部署到我们需要的地方, 如果我们感兴趣, 因为我们把他们整合到这个设施中,因此他们可以在他们之间做出共同的决定.
希望能给你带来点东西, 澄清是否有人有疑问或不认识他, 或者您想在 LAB 中实施它并尝试以下解决方案, 容易, 简单, 适合全家. 我们提供安全保障并预见到恐慌… 嗯,那个, 不? 你知道的, 我要成为吸血鬼, 我希望你一切顺利, 拥抱!