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 [email protected]
登入成功後将看到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頁面,下載下傳插件。也可以輸入以下指令,直接下載下傳到本地防火牆:
fetch https://github.com/crowdsecurity/opnsense-plugin-crowdsec/releases/download/v0.1/opnsense_22.1-freebsd_13-oscrowdsec_0.1.tar
解壓
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 防火牆保镖” ,然後單擊“應用”按鈕。
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添加到控制台,這是登入後打開的預設頁面。如果已經擁有一個執行個體,則可以通過單擊“執行個體”頁面上的“添加執行個體”按鈕添加另一個執行個體。
在OPNsense系統上運作上述指令(shell環境)後,重新整理網頁時将會提示輸入注冊請求。
注冊完成後,将在CrowdSec控制台中看到該執行個體。
測試
sudo cscli decisions add --ip 192.168.1.10 --duration 1m