
在 Linux 计算机上部署 Crowdsec
我们继续与 Crowdsec 合作! 我们已经在前面的文档中看到了基本概念以及如何集中部署它,甚至在 Windows 中部署, 所以今天我们将看到如果要在 Linux 计算机上安装 Crowdsec 代理以保护其免受外部威胁,则必须遵循的步骤.
你可以想象, 安装将取决于机器使用的发行版, 本文档将基于 Ubuntu 服务器上的安装, 我想我记得有一个 Nginx 为一些网页提供服务. 那么让我们开始吧, 习惯, 据了解,我们将在 Linux 服务器上执行此操作, 已发布服务,并且我们希望保护; 并且不一定必须在 Internet 上发布. 我们将首先为您安装 Crowdsec 安全引擎, 哪个代理将负责处理您的日志, 做出您的决定… 然后我们将安装保镖 (o 补救组件) 用于您的 Linux 防火墙, 您的操作系统 (iptables), 如果我们对行动感兴趣并且可以在 IT 中注册规则, 阻止对恶意 IP 地址的临时访问. 我们最终会在 Crowdsec 控制台中注册它.
这样,我们几乎就拥有它了, 因为帖子将继续, 将为可选, 但是,如果您想要集中管理, 您将需要采取一些额外的步骤; 就是这样, 任您选择. 如果您需要, 你必须先阅读自己 上篇文章.
这篇文章的结构如下:
- Crowdsec 代理安装
- 安装 Crowdsec Firewall iptables 保镖
- 注册 Crowdsec 与 Crowdsec 控制台
- 收集
- 白名单
- 通知
- 测试
- 在我们的 LAPI 服务器上注册 Crowdsec
- 在我们的 LAPI 服务器上注册 Crowdsec 保镖
Crowdsec 代理安装
我说了什么, 此安装基于 Ubuntu 服务器, 如果您有其他分配, 查看 官方网站. 我们首先使用:
curl -s https://install.crowdsec.net | 汗水
我们安装了 Crowdsec, 正如我们已经知道的, 它将检测我们可能在计算机上使用的服务,并将下载其集合以保护它们, 开始:
sudo apt install crowdsec
安装 Crowdsec Firewall iptables 保镖
安装 Crowdsec 代理后,我们还知道,如果我们不安装保镖,我们将无法在此计算机上执行操作, 因此,我们将安装此修复组件, 在我的情况下是 Ubuntu,我使用 iptables, 因此,我们继续进行它的安装:
sudo apt install crowdsec-firewall-bouncer-iptables
注册 Crowdsec 与 Crowdsec 控制台
我想我们已经在 https://app.crowdsec.net 我们知道,我们可以创建它以集中的方式从 GUI 控制台管理我们所有的 Crowdsec, 不需要, 我们有一个社区版本,您还可以使用它做很多事情, 包括, 然后查看计算机警报, 您的状态, 我们可以为他们订阅不同的黑名单…. 我们将继续添加我们的 Crowdsec, 在此 Linux 上安装. 我们复制必须执行的命令.
我们把它贴在系统控制台上, 跑:
sudo cscli 控制台注册 xxxxxxxxxxxxxxxxxx
我们返回 Crowdsec 控制台并接受滚动,
关于新添加的 Engine, 我们编辑名称,并放置一个引用其身份的名称,
习惯, 我们标明机器的名称, 我们给予 “更新”,
如果我们想要, 接下来可以是添加一些阻止列表, 为此, 我们可以按您的方式 “黑名单”,
如果我们已经订阅了黑名单, 我们可以从 “管理”
然后点击 “添加安全引擎” 将此计算机添加到此阻止列表,
我们选择一种操作类型并确认. 订阅的机器!
请记住,在控制台上注册 Crowdsec 后,您必须重新启动您拥有的 Crowdsec 服务.
sudo systemctl restart crowdsec
收集
正如我们已经知道的. 默认情况下,Crowdsec 安装在机器上时,会扫描我们已安装的服务并尝试保护它们, 在这种情况下, 在我的 Linux 上,只有 base 的那个检测到了我, 那是, 操作系统和 SSHd. 例如,如果我有一个 Nginx,我会安装它的集合, 或 Grafana… 列出集合:
sudo cscli 集合列表
我们将能够在 您的枢纽, 由他们或社区制作的集合, 可以保护我们拥有的其他服务, 就好像我们已经后验安装了 Nginx 并且我们想要它的集合, 执行:
CSCLI 集合安装 CrowdSecurity/NGINX
我们应该在你的采购文件 '/etc/crowdsec/acquis.yaml’ 以下内容, 不用担心 Hub 在每种情况下都详细说明了该怎么做, 我们修复了 Nginx 日志的路径… 并且该服务也将受到保护.
文件名: - /var/log/nginx/access.log - /var/log/nginx/error.log 标签: 类型: 吉卜赛人 ---
以及例如,如果这个 Ubuntu 中的这个 Nginx 为 Nextcloud 服务, 好吧,我们也应该把他的收藏放进去, 从而集成并防止任何不当访问, 读取和处理 Nextcloud 日志以做出决策.
CSCLI 集合安装 crowdsecurity/nextcloud
我们将以下内容添加到文件 acquire.yaml 中 (我坚持将此记录在 Hub 中):
文件名: - /var/log/nextcloud/nextcloud.log 标签: 类型: Nextcloud --- 源: reportedctl journalctl_filter: - "SYSLOG_IDENTIFIER=Nextcloud" 标签: 类型: 系统日志 ---
请记住,在进行重大更改后重新启动 Crowdsec 服务:
sudo systemctl restart crowdsec
白名单
正如我们已经知道的那样,白名单将帮助我们排除 IP 地址,例如,被 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"
该文件可以在 '/etc/crowdsec/hub/parsers/s02-enrich/crowdsecurity/whitelists.yaml' 中找到。, 我们将看到我们可以简单地将任何 IP 或 IP 范围添加到排除白名单中.
如果我们想排除国家/地区, 我们必须首先安装 GeoIP-Enrich 解析器,它将向日志提供地理位置数据, 例如国家/地区, 城市或 GPS 坐标:
CSCLI 解析器安装 CrowdSecurity/GeoIP-Enrich
在白名单文件中添加以下表达式就足够了:
表达:
- evt.Enriched.IsoCode == 'ES'
请记住重新启动 Crowdsec 服务以重新加载这些更改.
sudo systemctl restart crowdsec
通知
通知: - slack_default - splunk_default - http_default - email_default
我们可以通过编辑文件 '/etc/crowdsec/profiles.yaml' 来启用通知, 我们可以取消注释并选择我们感兴趣的通知类型, 他们对 Splunk 来说是什么, 到 Slack, 通过电子邮件, 或使用 HTTP (例如电报).
例如,如果我们需要电子邮件通知, 在目录 '/etc/crowdsec/notifications/ 中’ 我们将编辑 YAML 文件 email.yaml (o slack.yaml 或 splunk.yaml 或 http.yaml), 我们将在其中配置邮件服务器的参数. 我们这些来自 Telegram 的人在一篇文章中看到了它 老人.
测试
我们最终会尝试一下,不是吗?? 如果不是,我们如何相信它能正常工作? 🙂 你可以做你想要的入学考试, 或使用漏洞扫描程序对其进行验证, 或网站… 在那个旧文档中,您有一个 Nikto 的示例.
您可以看到您的机器所做的决策:
CSCLI 决策列表
在这种情况下,您已禁止 IP 地址 192.168.1.122 因为我已经放置了一个漏洞扫描程序来检查它,它立即检测到它正在跟踪它不应该跟踪的事情…
或者从 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 位于 '/etc/crowdsec/parsers/s02-enrich/whitelist-permite-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, 编辑文件 '/etc/crowdsec/config.yaml', 我们添加了 enable false.
然后,我们针对我们在网络上部署的 LAPI 服务器进行注册:
Sudo cscli lapi register -u HTTP://DIRECCION_IP_CROWDSEC_LAPI:8080 --机器NOMBRE_MAQUINA
在 LAPI 服务器上,我们将能够看到 Linux 计算机的注册请求, 我们列出:
sudo Docker exec -it CrowdSEC-CrowdSEC-1 CSCLI 机器列表
我们接受注册请求并重新发布以确认状态:
Sudo Docker exec -it CrowdSEC-CrowdSEC-1 CSCLI 机器验证NOMBRE_MAQUINA
现在,我们在 Linux 上的 Crowdsec 将从 LAPI 服务器通信和读取任何决定, 因此使用中央服务器. 如果 Crowdsec 的其他代理人也这样做, 它们都有相同的共同信息, 因此, 当机器怀疑某个 IP 是恶意的, Crowdsec 的其他代理会立即知道.
永远记得在进行任何修改后重新启动 Crowdsec:
sudo systemctl restart crowdsec
在我们的 LAPI 服务器上注册 Crowdsec 保镖
总结一下, 我们还必须注册我们拥有的保镖, 在本例中为 Ubuntu 防火墙保镖, 对于 iptables; 如果我们希望该 bouncer 从中央 LAPI 读取, 我们必须遵循以下步骤, 这是已经说过的, 当某人或某物将 IP 添加到中央 LAPI 时, 此操作系统防火墙将制定一条规则,拒绝访问所述恶意 IP.
从 LAPI 服务器, 如果我们想列出我们已经注册的保镖,我们可以先:
Sudo Docker exec -it crowdsec-crowdsec-1 cscli 保镖列表
并注册此 Ubuntu 的防火墙保镖, 执行:
sudo docker exec -it crowdsec-crowdsec-1 cscli 保镖添加 NOMBRE_MAQUINA-FW
我们记下提供给我们的 API 密钥,
... api_url: HTTP 协议://DIRECION_LAPI_SERVER:8080 api_key: xxxxxxxxxxxxxxxx ...
我们编辑文件 /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml,并放入 LAPI 服务器的 IP, 它的端口和为我们提供上一个命令的 API 密钥. 保存文件并重新启动 Firewall Bouncer 服务:
sudo systemctl restart crowdsec-firewall-bouncer
并且注册的 Ubuntu 团队的固件将出来, 我们通过:
Sudo Docker exec -it crowdsec-crowdsec-1 cscli 保镖列表
我希望你觉得它很有趣, 我想制作一个指南 3 基本文件,并由此结算, 我们已经学会了如何在 Linux 计算机上安装 Crowdsec, 在 Windows 上, 我们生成了一个集中式管理,所有代理都相互通信并告诉彼此是否有攻击者, 此外,将列表发布到外围或内部防火墙,以便他们也可以阻止它们并隔离任何可能的攻击者. 嗯,通常的, 天色已晚, 看看什么时间… 😉 祝你一周愉快!