在 Windows 计算机上部署 Crowdsec

井, 我们已经在 上述文档 关于如何在我们的组织中部署 Crowdsec 的一些概念和想法, 今天我们菜单中的内容是如何在 Windows 机器上安装 Crowdsec 并保护它. 保护 IT 免受僵尸网络的攻击, 攻击, 好奇, 无聊的…

那么让我们开始吧, 我们从 Windows 开始! 习惯, 据了解,我们将在 Windows Server 上执行此操作, 已发布服务且我们想要保护的服务器; 不一定非得在 Internet 上. 我们将首先为您安装 Crowdsec 安全引擎, 哪个代理会处理一切, 处理日志, 做出您的决定… 然后我们将安装保镖 (o 补救组件) 用于 Windows 防火墙, 您的操作系统, 如果我们对行动感兴趣并且可以在 IT 中注册规则, 阻止对恶意 IP 地址的临时访问. 我们最终会在 Crowdsec 控制台中注册它.

有了它,我们几乎会得到它, 因为文档将继续, 将为可选, 但是,如果您想要集中管理, 您将不得不再采取一些步骤; 就是这样, 任您选择. 如果您感兴趣, 你必须先阅读自己 上篇文章.

这篇文章的结构如下:

 

 

Crowdsec 代理安装

 

在你继续之前, 需要事先安装 .NET 运行时要求: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-6.0.11-windows-x64-installer

 

我们可以继续, 下载 MSI 安装程序并开始安装 Crowdsec Engine, 之 https://github.com/crowdsecurity/crowdsec/releases/. Crowdsec 在安装过程中,您将需要 Internet 访问, 下载某些项目(如收藏集)… 以及正常运行, 代理需要访问几个 Crowdsec 站点, 我推荐你 读取站点/端口 你可能需要.

“下一步”,

 

“安装”,

 

我们在安装时等待几秒钟...

 

并完成! 我们已经安装了 Crowdsec!

 

安装 Crowdsec Windows 防火墙保镖

 

Crowdsec 将检测到但无法采取行动, 为此,我们需要 Windows 防火墙的 Bouncer. 所以, 我们下载: https://github.com/crowdsecurity/cs-windows-firewall-bouncer/releases 然后我们开始安装,

 

“安装”,

 

 

 

现在我们有了保镖, 它将在防火墙级别保护我们, “完成”,

 

注册 Crowdsec 与 Crowdsec 控制台

 

如果我们在 https://app.crowdsec.net 我们可以创造它, 从 GUI 控制台集中管理我们所有的 Crowdsec, 不需要, 我们有一个社区版本,您还可以使用它做很多事情, 包括, 嗯,我们谈到了什么, 查看计算机警报, 您的状态, 我们可以为他们订阅不同的黑名单…. 我们将继续添加我们的 Crowdsec, 在该 Windows 上安装. 我们复制必须执行的命令.

 

我们把它贴在系统控制台上, 跑:

cscli 控制台注册 xxxxxxxxxxxxxxxxxxxx

 

我们返回 Crowdsec 控制台并接受滚动, 如果它对我们不起作用, F5 很好,

 

 

关于新添加的 Engine, 我们编辑名称,并放置一个引用其身份的名称,

 

习惯, 我们标明机器的名称, 更新,

 

如果我们想要, 接下来可以是添加一些阻止列表, 为此, 我们可以点击 “浏览可用的阻止列表”,

 

如果我们已经订阅了黑名单, 我们可以从 “管理”

 

然后点击 “添加安全引擎” 将此计算机添加到此阻止列表,

 

我们选择一种操作类型并确认. 订阅的机器!

请记住,在控制台上注册 Crowdsec 后,您必须重新启动您拥有的 Windows 服务.

 

收集

 

默认情况下,当 Crowdsec 安装在机器上时,它会扫描我们已安装的服务并尝试保护它们, 在这种情况下, 在我的 Windows 上,它检测到我安装了 IIS, 以及 SQL Server, 除了这些集合, 他一定给我们加了一些额外的, 以及 Windows 的. 我们可以看到我们安装的集合:

CSCLI 集合列表

 

我们将能够在 您的枢纽, 由他们或社区制作的集合, 可以保护我们拥有的其他服务, 就好像,例如,在这个 Windows 中,我们有 Exchange Server… 嗯,这就像执行:

CSCLI 集合安装 CrowdSecurity/Exchange

 

我们应该在你的采购文件中添加 'C:\ProgramDataCrowdSecconfigacquis.yaml’ 以下内容, 不用担心 Hub 在每种情况下都详细说明了该怎么做, 我们更正了 Exchange 日志的路径,在重新启动 Crowdsec 服务后,我们将准备好机器, 保护攻击免受 OWA 攻击, SMTP 身份验证…

 

##Exchange SMTP use_time_machine: true #Process 日志,就好像我们正在重播它们以从文件名中获取时间戳一样:
  - C:\Program FilesMicrosoftExchange ServerV15TransportRolesLogsFrontEndProtocolLogSmtpReceive*。LOG 标签:
  类型: 交易所 SMTP
---
##Exchange IMAP use_time_machine: true #Process 日志,就好像我们正在重播它们以从文件名中获取时间戳一样:
  - C:\Program FilesMicrosoftExchange ServerV15LoggingImap4* 中。LOG 标签:
  类型: 交易所 IMAP
---
##Exchange POP use_time_machine: true #Process 日志,就好像我们正在重播它们以从文件名中获取时间戳一样:
  - C:\Program FilesMicrosoftExchange ServerV15LoggingPop3*。LOG 标签:
  类型: 交换-pop
---
##Exchange OWA #OWA 失败尝试的记录方式与 RDP 失败身份验证源相同: WinEventLog event_channel: 安全event_ids:
 - 4625
event_level: 信息标签:
 类型: 事件日志
 ...

 

 

白名单

La lista blanca como podemos interpretar nos servirá para que podamos excluir por ejemplo una dirección IP de que pueda ser baneada o bloqueada por Crowdsec, habitualmente puedan ser las direcciones IP de algún puesto de control, Equipo de salto, 等… 此外,我们还可以排除国家, 例如.

 

名字: crowdsecurity/whitelists 说明: "将来自私有 IPv4 地址的事件列入白名单"
白名单:
  原因: "私有 IPv4/IPv6 IP/范围"
  知识产权:
    - "127.0.0.1"
    - "::1"
    - "192.168.1.33"
  CIDR:
    #- "192.168.0.0/16"
    #- "10.0.0.0/8"
    - "172.16.0.0/12"
  # 表达:
  #   - "'foo.com' in evt.Meta.source_ip.reverse"

该文件将在 'C 中找到:\ProgramDataCrowdSecconfigparserss02-enrichwhitelists.yaml', 我们将看到我们可以简单地将任何 IP 或 IP 范围添加到排除白名单中.

 

如果我们想排除国家/地区, 我们必须首先安装 GeoIP-Enrich 解析器,它将向日志提供地理位置数据, 例如国家/地区, 城市或 GPS 坐标:

CSCLI 解析器安装 CrowdSecurity/GeoIP-Enrich

 

在白名单文件中添加以下表达式就足够了:

表达:
  - evt.Enriched.IsoCode == 'ES'

 

请记住重新启动 Crowdsec 服务以重新加载这些更改.

 

通知

 

通知:
  - slack_default
  - splunk_default
  - http_default
  - email_default

我们可以通过编辑 'C 文件:\ProgramDataCrowdSecconfigprofiles.yaml', 我们可以取消注释并选择我们感兴趣的通知类型, 他们对 Splunk 来说是什么, 到 Slack, 通过电子邮件, 或使用 HTTP (例如电报).

 

例如,如果我们需要电子邮件通知, 在 'C 目录中:\ProgramDataCrowdSecconfignotifications’ 我们将编辑 YAML 文件 email.yaml (o slack.yaml 或 splunk.yaml 或 http.yaml), 我们将在其中配置邮件服务器的参数. 我们这些来自 Telegram 的人在一篇文章中看到了它 老人.

 

测试

 

我们最终会尝试一下,不是吗??  如果不是,我们如何相信它能正常工作? 🙂 你可以做你想要的入学考试, 或使用漏洞扫描程序对其进行验证, 或网站… 在那个旧文档中,您有一个 Nikto 的示例.

 

您可以看到您的机器所做的决策:

CSCLI 决策列表

 

在这种情况下,您已禁止 IP 地址 192.168.1.253 用于制作 Windows 蛮力, 可能是我在通过 RDP 访问服务器时多次输入错误的用户, 或 SMB…

 

或者从 LAPI 服务器(如果我们已经注册了它) (接下来会发生什么)

docker exec -it crowdsec-crowdsec-1 cscli 决策列表

 

如果我们已经部署了 Crowdsec 镜像, 我们将能够验证被禁止的 IP 地址是否出现在我们发布 HTTP 阻止列表的 URL 中://DIRECCION_IP_CROWDSEC_MIRROR:41412/安全/阻止列表

 

如果我们想要禁止某个 IP 地址, 我们将与:

cscli 决策 add --ip DIRECCIÓN_IP --reason "描述"

 

如果我们想要解禁 IP 地址, 我们将与:

cscli decisions delete --ip DIRECCIÓN_IP

 

 

我们将能够调查我们收到的警报:

cscli 警报列表

 

 

使用前面的命令,我们列出它们, 现在选择特定警报的 ID,我们将能够知道是哪个日志文件生成了它, 我在做什么, 路径, HTTP 状态… 在这种情况下,图像中有很多 404 al 路径 /apps/files_sharing/publicpreview/

CSCLI 警报检查 ID_ALERTA [-d]

 

和, 如果我们需要, 创建我们自己的白名单文件,以便在误报的情况下进行排除, Pej en 'C:\ProgramDataCrowdSecconfigparserss02-enrichwhitelist-allow-pdfs.yaml, 您可以使用这些示例表达式创建排除筛选条件:

名字: CrowdSecurity/MyListaBlancaPDF说明: "忽略 PDF"
白名单:
  原因: "忽略 PDF"
  表达:
    #- evt.Meta.http_path startsWith '/apps/files_sharing/publicpreview/'
    #- evt.Meta.http_status == '404' && evt.Meta.http_path startsWith '/apps/files_sharing/publicpreview/'
    - evt.Parsed.request contains '/apps/files_sharing/publicpreview/'

 

 

照常, 不要忘记在每次配置更改时重新启动 Crowdsec 服务.

 

 

在我们的 LAPI 服务器上注册 Crowdsec

 

应用程序接口:
...
  服务器:
    使: 假
...

 

我们需要禁用本地 LAPI, 我们编辑文件 'C:\ProgramDataCrowdSecconfigconfig.yaml'.

 

现在,我们针对已在网络上部署的 LAPI 服务器进行注册:

cscli lapi register -u http://DIRECCION_IP_CROWDSEC_LAPI:8080 --机器NOMBRE_MAQUINA

 

在 LAPI 服务器上,我们将能够看到 Windows 计算机的注册请求, 我们列出:

sudo Docker exec -it CrowdSEC-CrowdSEC-1 CSCLI 机器列表

 

我们接受注册请求并重新发布以确认状态:

Sudo Docker exec -it CrowdSEC-CrowdSEC-1 CSCLI 机器验证NOMBRE_MAQUINA

 

现在,我们在 Windows 上的 Crowdsec 将从 LAPI 服务器通信和读取任何决定, 因此使用中央服务器. 如果 Crowdsec 的其他代理人也这样做, 它们都有相同的共同信息, 因此, 当机器怀疑某个 IP 是恶意的, Crowdsec 的其他代理会立即知道.

 

在我们的 LAPI 服务器上注册 Crowdsec 保镖

总结一下, 我们还必须注册我们拥有的保镖, 在本例中为 Windows 防火墙保镖, 如果我们希望该 bouncer 从中央 LAPI 读取, 我们必须遵循以下步骤, 这是已经说过的, 当某人或某物将 IP 添加到中央 LAPI 时, 此操作系统防火墙将制定一条规则,拒绝访问所述恶意 IP.

从 LAPI 服务器, 如果我们想列出我们已经注册的保镖,我们可以先:

Sudo Docker exec -it crowdsec-crowdsec-1 cscli 保镖列表

要注册此 Windows 防火墙的保镖,我们将运行:

sudo docker exec -it crowdsec-crowdsec-1 cscli 保镖添加 NOMBRE_MAQUINA-FW

我们记下提供给我们的 API 密钥,

在 Windows 上, 我们编辑 C 文件:\ProgramDataCrowdSecconfigbouncerscs-windows-firewall-bouncer.yaml 并输入 LAPI 的 IP, 它的端口和为我们提供上一个命令的 API 密钥. 保存文件并重新启动服务 “Crowdsec Windows 防火墙保镖”.

并且已注册的 Windows 计算机的固件将出来, 我们验证它

Sudo Docker exec -it crowdsec-crowdsec-1 cscli 保镖列表

就是这样! 最后! 现在我认为这就足够了, 不? 🙂 我们已经了解了如何部署 Crowdsec 来保护 Windows 服务器, 与他们的服务, 以及一些基本配置, 以及集中化它的一部分, 我希望它对你有所帮助, 使用这种类型的解决方案为您的基础设施增添一点爱, 我向你问好, 希望你做得好, 拥抱,

推荐文章

作者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 请随时与我联系, 我会尽我所能帮助你, 分享就是生活 ;) . 享受文档!!!