
使用 Crowdsec 的多服务器环境
有了这个难以理解的标题, 让我们试着解释一下是什么让 Crowdsec 成为棕色的野兽… 因为通常在组织中的每台计算机上都有 Crowdsec 代理, 我们将使他们能够相互通信以防止攻击.
这是, 比 Windows 或 Linux 计算机受到攻击时, 该组织的其余机器可以在攻击者敲门之前发现攻击并阻止攻击者的 IP 地址. 默认情况下,假设 Crowdsec 在本地工作, 每个 Crowdsec 代理都与自己的本地 API 服务器通信, 我们要做的是,它们都与同一个 LAPI 服务器通信.
本地 API 服务器,
开始, 第一, 在机器上,我们希望充当其余代理的 API 服务器. 因此,我们在您的配置文件中启用它 ‘ /etc/crowdsec/config.yaml 的, 我们指示它将侦听的 IP 和端口:
应用程序接口: ... 服务器: ... listen_uri: 192.168.2.10:8080 ...
在 '/etc/crowdsec/local_api_credentials.yaml 中’ 仅相同的 IP 地址:
网址: HTTP 协议://192.168.2.10:8080 ...
我们重新启动以应用更改:
sudo systemctl restart crowdsec
Crowdsec 代理,
现在, 其余具有 Crowdsec 的计算机必须针对服务器的本地 API 进行注册, 我们还将禁用每台 Crowdsec 机器的 LAPI,因为它不会被使用.
说题外话, 如果未在要保护的目标计算机上安装 Crowdsec, 是时候在😉以前的帖子中了解如何保护 Windows 了, Linux的…
井, 来, 去, 我们从每个代理向 LAPI 服务器注册:
Sudo cscli lapi register -u HTTP://192.168.2.10:8080 信息[14-11-2022 10:14:08 下午] 已成功注册到本地 API (拉皮) 信息[14-11-2022 10:14:08 下午] Local API credentials dumped to '/etc/crowdsec/local_api_credentials.yaml' WARN[14-11-2022 10:14:08 下午] Run 'sudo systemctl reload crowdsec' for the new configuration to be effective.
我们停止了自己的 API 服务器,因为我们不会使用它:
sudo cp /lib/systemd/system/crowdsec.service /etc/systemd/system/crowdsec.service
我们添加 '-no-api’ 在 Crowdsec 配置文件 '/etc/systemd/system/crowdsec.service 中’
... ExecStart=/usr/bin/crowdsec -c /etc/crowdsec/config.yaml -no-api ...
我们最终重新加载服务以使用此新配置:
sudo systemctl daemon-reload sudo systemctl restart crowdsec
现在,如果我们转到 LAPI 服务器, 我们将能够看到使用命令“sudo cscli machines list”存在待处理的连接请求:
--------------------------------------------------------------------------------------------------------- 名称 IP 地址 上次更新状态 版本 身份验证类型 上次检测信号 --------------------------------------------------------------------------------------------------------- b91d17c64c4e4a2 192.168.x.xxx 2022-11-14T22:18:00Z ✔️ v1.4.1-debian 密码 19s 9c70ab3970dd4cc 192.168.x.xxx 2022-11-14T22:14:08Z 🚫 密码 ⚠️ 4 分 11 秒 ---------------------------------------------------------------------------------------------------------
我们通过运行 'sudo cscli machines validate 9c70ab3970dd4cc 来验证机器’
sudo cscli 机器验证 9c70ab3970dd4cc INFO[14-11-2022 10:19:35 下午] machine '9c70ab3970dd4cc' validated successfully
我们再次检查 'sudo cscli machines list':
--------------------------------------------------------------------------------------------------------- 名称 IP 地址 上次更新状态 版本 身份验证类型 上次检测信号 --------------------------------------------------------------------------------------------------------- B91D17C64C4E4A 192.168.x.xxx 2022-11-14T22:19:00Z ✔️ v1.4.1-debian 密码 40s 9c70ab3970dd4cc 192.168.x.xxx 2022-11-14T22:19:35Z ✔️ 密码 5s ---------------------------------------------------------------------------------------------------------
在我们验证后,不要忘记在每个代理中充值 Crowdsec, 跟:
sudo systemctl restart crowdsec
缓解措施,
现在, 缓解, 实施使我们能够降低易受某些威胁影响的风险的行动, 我们得用保镖. 第一, 从 API 服务器,我们将创建代理保镖所需的令牌. 我们将为每个代理提供我们需要的每一个保镖来做到这一点, 示例 'sudo cscli bouncers add OS-JITSI-05-Fw’
Api key for 'OS-JITSI-05-fw': xxxxxxxxxxxxx 请保留此密钥,因为您将无法检索它!
在每个 Crowdsec 代理中,我们必须安装我们需要的保镖, 在这种情况下,我们将依赖防火墙类型的保镖, 对于每个操作系统, 有兼容的保镖: Windows 防火墙, iptables, 未知, ipset, Pf… 如果我们有 iptables:
sudo apt install crowdsec-firewall-bouncer-iptables -y
然后我们编辑防火墙保镖配置文件 ‘ /等/Populationsec/Bouncers/Crowdsec-firewall-Bouncer.yaml’ 指示我们的 LAPI 服务器的 IP 地址以及我们刚刚为其生成的令牌:
... api_url: HTTP 协议://192.168.2.10:8080/ api_key: xxxxxxxxxxxx ...
我们重新启动防火墙保镖服务:
sudo SystemCTL 重启 CrowdSEC-Firewall-Bouncer sudo SystemCTL Status CrowdSEC-Firewall-Bouncer
就是这样! 这台机器将准备就绪, 您可以通过拒绝访问 API 服务器发送给您的某些 IP 地址来向操作系统防火墙添加条目.
从 LAPI 服务器,我们将能够使用“sudo cscli bouncers list”检查保镖的状态:
----------------------------------------------------------------------------------------------------------------------- 名称 IP 地址 有效 上次 API 提取类型 版本 身份验证类型 ----------------------------------------------------------------------------------------------------------------------- 操作系统-JITSI-05-固件 192.168.x.xxx ✔️ 2023-02-02T16:40:16Z crowdsec-firewall-bouncer v0.0.24-debian api-key 操作系统-ELK-03-固件 192.168.x.xxx ✔️ 2023-02-02T16:40:11Z crowdsec-firewall-bouncer v0.0.24-debian api-key OS-GRA-04-固件 192.168.x.xxx ✔️ 2023-02-02T16:40:11Z crowdsec-firewall-bouncer v0.0.24-debian api-key 操作系统-NGINX-01-固件 192.168.x.xxx ✔️ 2023-02-02T16:40:10Z crowdsec-firewall-bouncer v0.0.24-debian api-key 操作系统-NGINX-01-镜子 192.168.x.xxx ✔️ 2023-02-02T16:40:18Z crowdsec-blocklist-mirror v0.0.1-9-g86d6 api-key 操作系统-OTRS-01-固件 192.168.x.xxx ✔️ 2023-02-02T16:40:16Z crowdsec-firewall-bouncer v0.0.24-debian api-key ... ------------------------------------------------------------------------------------------------------------------------
就是这样! 这样,网格就闭合了! 我们组织中的所有 Crowdsec 都将使用单个 API 服务器进行对话, 因此,每个人都将得到平等的保护, 共享单个黑 IP 地址列表, 在各自的 FW 中阻止攻击者的 IP…
拥抱! 愿一切顺利 😉