OPNsense安装和配置CrowdSec指南

Crowdsec是一个开源的入侵防御系统 (IPS),包含各种类型的威胁情报,它可以监控、警告和阻止网络中的恶意活动,保护网络免受已知威胁。虽然其他 IPS 平台可以使用各种签名/规则来阻止已知的恶意流量,但CrowdSec采用的方法是使用社区收集的威胁情报来计算IP地址的信誉分数,并阻止信誉评分较差的IP地址访问受保护的资源,这将更快速、高效。

CrowdSec有两个主要部分:代理和保镖。代理监视日志文件中的恶意活动并将某些信息传送回CrowdSec社区。保镖用于阻止IP地址访问受保护的资源。如果在OPNsense防火墙上运行,它将保护整个网络免受恶意 IP 地址的侵害。

2022 年1月21日,CrowdSec发布了适用于OPNsense防火墙的测试版。本指南将介绍如何在OPNsense上安装和配置CrowdSec。

OPNsense自带的入侵检测

OPNsense内置的入侵检测功能通过Suricata实现。Suricata的规则集由行业内专家制定,只提供30 天前的免费列表,不包含最新的威胁信息。如果需要最新的威胁信息,则需要付费购买。Suricata需要手动选择启用或禁用哪些规则,还需要定期查看规则,以确保已启用或禁用所需的一切。Suricata支持多线程,如果防火墙性能不够强大,在启用了一堆规则并且有大量的网络流量需要分析的时候,会很快消耗完硬件资源,造成网络拥堵,访问不畅。

CrowdSec从社区收集威胁情报并快速分发信息来阻止恶意威胁。不需要启用或禁用各种规则或规则集。对系统的性能影响有限,因为防火墙只是阻止已知恶意 IP 列表。另一个优点是,由CrowdSec代理监控的恶意活动有助于在全球范围内收集众多情报,所有用户都可以贡献重要情报信息来一同打造安全的网络环境。

在OPNsense防火墙上,可以同时运行Suricata和CrowdSec,使用不同的安全技术来保护内部网络。

注意事项

在撰写本指南时,CrowdSec仍处于测试阶段,建议只在OPNsense22.1或更新的系统上来使用。当前CrowdSec插件仅监控Web界面上的特定恶意活动,和OPNsense上的SSH 服务。

安装CrowdSec

1、启用SSH访问

导航到“系统 > 设置 > 管理”来启用shell访问,如下图所示:


2、登录OPNsense

使用以下命令通过SSH登录OPNsense,根据提示输入登录密码。

ssh root@192.168.1.1

登录成功后将看到OPNsense 菜单:

  0) Logout                              7) Ping host
  1) Assign interfaces                   8) Shell
  2) Set interface IP address            9) pfTop
  3) Reset the root password            10) Firewall log
  4) Reset to factory defaults          11) Reload all services
  5) Power off system                   12) Update from console
  6) Reboot system                      13) Restore a backup

Enter an option:

输入“8”并按回车进入shell命令行。

3、安装 CrowdSec

访问GitHub上的CrowdSec Releases页面,下载插件。也可以输入以下命令,直接下载到本地防火墙:

解压tar文件:

tar -xvf opnsense_22.1-freebsd_13-oscrowdsec_0.1.tar

会提取出三个安装文件,使用以下命令进行安装:

pkg add crowdsec-1.3.2.txz
pkg add crowdsec-firewall-bouncer-0.0.23.r2.txz  pkg add os-crowdsec-0.1.txz

4、启用CrowdSec

导航到“服务 > CrowdSec > Settings”页面,选中“启用CrowdSec代理”和“启用CrowdSec 防火墙保镖” ,然后单击“应用”按钮。

在 OPNsense 上启用 CrowdSec

5、创建防火墙规则

在启用防火墙保镖后,CrowdSec会自动创建一个浮动规则来阻止所有外部恶意IP地址对防火墙的访问。我们还可以使用它自动生成的阻止列表别名crowdsec_blacklists,通过手动创建防火墙规则来阻止对恶意IP的访问。

转到“防火墙 > 规则 > 浮动”页面,为要保护的 LAN(或其他内部接口) 接口创建一个浮动规则。“接口”选择要保护的接口。源地址选择“any”,目标为crowdsec_blacklists别名。如果同时使用IPv4和IPv6地址,则需要为 IPv4 和 IPv6 创建单独的规则。

选项
动作 阻止
接口 LAN(或其他需要保护的接口)
方向
TCP/IP 版本 IPv4(或 IPv6)
协议 any
any
源端口 any
目标 crowdsec_blacklists(或 IPv6 的 crowdsec6_blacklists)
目标端口 any
描述 阻止与CrowdSec阻止列表中IP的出站连接

注册CrowdSec 控制台

如果想使用免费的CrowdSec控制台(可选),可以访问CrowdSec控制台注册页面。创建帐户后,可以通过运行“实例”页面上显示的命令将OPNsense添加到控制台,这是登录后打开的默认页面。如果已经拥有一个实例,则可以通过单击“实例”页面上的“添加实例”按钮添加另一个实例。

CrowdSec 控制台

在OPNsense系统上运行上述命令(shell环境)后,刷新网页时将会提示输入注册请求。

CrowdSec 控制台

注册完成后,将在CrowdSec控制台中看到该实例。

CrowdSec 控制台

测试

设置完成后,我们可以测试CrowdSec,来确保正常运行。一种方法是手动添加临时禁止地址,如下图所示。运行完该命令后,在1分钟之内,该地址将无法访问SSH。

sudo cscli decisions add --ip 192.168.1.10 --duration 1m

另外一个方法是多次输入错误的SSH 密码,会发现被立即被锁定在 SSH 之外。这个锁定的时间大概在24小时左右 。在CrowdSec控制台上,在“警报”页面下会看到该事件。

原文地址

发表评论

您的电子邮箱地址不会被公开。