CrowdSec
非官方 CrowdSec 外掛程式,與 CrowdSec 無關聯:在 EmDash 後台查看來自您的本機 API 的警示、封鎖與主要威脅。
外掛
CrowdSec
非官方 CrowdSec 外掛程式,與 CrowdSec 無關聯:在 EmDash 後台查看來自您的本機 API 的警示、封鎖與主要威脅。
說明
這是一個非官方外掛程式,與 CrowdSec 沒有關聯,也未獲得 CrowdSec 的認可或支援。
在 EmDash 後台查看 CrowdSec,資料透過它自己的機器登入帳號,從您的 CrowdSec 本機 API 讀取。
儀表板上: 一張 CrowdSec 卡片,顯示最近 24 小時的警示與之前 24 小時的比較、目前生效的封鎖、依類型劃分的警示(WAF、機器人驗證、行為)以及熱門情境。
CrowdSec 頁面: 7、30 或 90 天內依類型劃分的警示與每天發出的封鎖,以及熱門情境、來源位址、國家/地區、AS 組織與被攻擊的路徑。
警示: 已儲存警示的瀏覽器。時間範圍從一小時到保留的全部資料或自您上次造訪以來,附有類型分頁、兩種附直方圖的分類檢視、依位址範圍、國家/地區、情境、行為、網路、路徑或引擎篩選、依位址分組的警示,以及每則警示的即時詳情。
決策: LAPI 目前執行的決策,即時讀取並依到期時間排序。
流量圖表: 被防火牆攔截器丟棄的惡意流量,依社群黑名單、您自己的偵測與手動封鎖拆分;以及它占全部流量的比例、已檢查與已攔截的 Web 請求、機器人驗證,以及依來源統計的有效封鎖。資料來自您自己的引擎與攔截器的指標,絕不來自 CrowdSec 的雲端。
MCP 工具: 摘要、主要威脅、警示瀏覽器、流量、有效決策以及單一位址的警示,另外還有三個會修改資料的工具。
選用的修改功能: 開啟「允許修改」後,管理員可以在固定時間內封鎖某個位址或位址範圍、移除決策並刪除舊警示。封鎖絕不會涵蓋您自己的位址、網站的位址、LAPI 主機的位址、您的受保護位址、私有位址空間或白名單中的位址。
日期依您的時區計算。需要網站能夠連線的 CrowdSec LAPI。
安裝
您需要:CrowdSec 1.7 或更新版本,且其本機 API 位於公開 HTTPS 主機名稱上(EmDash 會拒絕私有位址);以及在網站上設定 EMDASH_ENCRYPTION_KEY(npx emdash secrets generate 可產生)。
- 在 CrowdSec 主機上為外掛程式建立一台機器:
sudo cscli machines add emdash-crowdsec --auto -f /root/emdash-crowdsec.yaml。該檔案保存其 ID 與密碼。 - 將 LAPI 發佈在反向代理之後,僅允許 EmDash 伺服器的位址存取,並且只開放這些路由:
POST /v1/watchers/login、GET /v1/alerts、GET /v1/alerts/。若需要修改功能,還要開放POST /v1/alerts、DELETE /v1/alerts/、DELETE /v1/decisions/與POST /v1/allowlists/check。切勿放行不帶 id 的DELETE /v1/decisions。請讓該路徑免於任何機器人驗證。README 中有針對單一主機的 nginx 與 Traefik 範例。 - 從註冊表安裝外掛程式。它唯一的權限是網路存取:存取您的 LAPI URL,以及在修改功能開啟期間存取
cloudflare-dns.com。 - 在「外掛程式」中開啟外掛程式的設定:輸入 LAPI URL(不含
/v1)、機器 ID 與密碼,以及您的時區。儲存。 - 開啟 外掛程式、CrowdSec,選擇「Check setup」。修正它指出的所有問題。
- 若要允許封鎖與解除封鎖,請開啟「允許修改」,並把您的伺服器位址與家用位址加入「受保護位址」。
在 Cloudflare Workers 上,同步需要 EmDash 部署指南中說明的 Cron 觸發器。要使用 MCP 工具,請在「外掛程式」下為該外掛程式開啟 Agent 存取。
常見問題
這個外掛程式會讓我的 CrowdSec LAPI 變成公開的嗎?
不會。EmDash 只允許外掛程式呼叫公開 HTTPS 主機名稱,因此 LAPI 透過某個主機上的一條路徑來存取,但前面的代理只放行您的 EmDash 伺服器位址與外掛程式使用的路由。其他所有人都會得到 403,並且每個請求還需要外掛程式自己的機器登入憑證。LAPI 本身仍然監聽在 127.0.0.1。README 中展示了設定方法。
登入失敗,提示「incorrect Username or Password」,但密碼是對的。
LAPI 會拒絕不符合 name/version 格式的 User-Agent。取代了外掛程式 User-Agent 的代理會導致這種情況。
設定檢查提示某個路由被拒絕(403)。 您的代理沒有為 EmDash 伺服器放行它。請依 README 所示加入。
為什麼最初幾天的數據偏低? 歷史資料從最新的開始,一次讀取一個時間窗口。讀取尚未完成時,頁面會有提示。
為什麼「決策」清單比 cscli decisions list 短?
它只列出您自己的決策。社群黑名單與各類清單中還有數千筆,它們以一個計數顯示在清單上方。
為什麼熱門清單是近似值? 每天只保留出現頻率最高的 25 個值,因此較少出現的值會被低估。
信譽徽章在哪裡? 外掛程式從不請求 CrowdSec 的雲端。瀏覽器會顯示本機提示:「Banned now」與「Seen before」。
我的 LAPI 收集來自多台主機的警示。 每則警示都會保留觸發它的引擎。請在「Engine names」設定中為它們命名。
為什麼我無法刪除這則警示? 刪除它會連帶刪除其決策,而攔截器完全不會得知這一點。請先移除該決策,兩分鐘後再刪除警示。
為什麼我的封鎖被拒絕了? 訊息中會指明觸發的規則。README 中列出了全部規則。
流量圖表的資料來自哪裡? 來自您自己的引擎與防火牆攔截器的指標,絕不來自 CrowdSec 的雲端。請在設定中填寫它們的 URL。
日期依哪個時區計算?
依「Time zone」設定,除非變更,預設為 Australia/Sydney。無法識別的名稱會暫停同步,歷史資料會保留。
安全性
請透過儲存庫的安全公告表單私下回報安全問題:https://github.com/shanelord01/emdash-crowdsec/security/advisories/new
外掛程式能存取什麼
只有網路請求,且僅限兩個地方:您輸入的 LAPI URL,以及在「允許修改」開啟期間用於查詢網站與 LAPI 主機位址的 cloudflare-dns.com。它無法存取您的內容、使用者或媒體。它只使用 README 中列出的 LAPI 路由,從不使用帶篩選條件的 DELETE /v1/decisions,也從不批次刪除警示,並且不跟隨任何重新導向,因此密碼絕不會傳送到其他主機。明文 HTTP 以及帶有憑證的 URL 會被拒絕。
憑證
機器密碼使用 EMDASH_ENCRYPTION_KEY 加密儲存。LAPI 權杖從不儲存:每次執行都會登入並把它保留在記憶體中。請為外掛程式配備專用的機器帳號,並發佈 LAPI,使得只有 EmDash 伺服器與外掛程式的路由能夠通過。
誰能做什麼
編輯與管理員可以看到卡片、頁面與唯讀工具。只有管理員可以變更任何內容,並且只有在「允許修改」開啟時才可以。在這些頁面上,外掛程式會自己檢查角色。寫入類工具的路由由 EmDash 限制為僅管理員可用。
封鎖保護
當封鎖涵蓋以下任何一項時,會被拒絕並指明相應規則:請求者的位址(對於 MCP 工具,則是用戶端的出口位址)、網站或 LAPI 主機的位址、「受保護位址」中的項目、私有、迴路、連結本機、CGNAT(包括 Tailscale 的 100.64.0.0/10)、群播或保留位址空間、寬於 /16 或 /48 的位址範圍,或 CrowdSec 白名單項目(會最先檢查,因為 LAPI 對手動封鎖會略過它)。攜帶 IPv4 的 IPv6 依其中的 IPv4 位址判斷,Teredo 會被拒絕。任何一筆錯誤的受保護項目都會導致所有修改被拒絕。
刪除警示
只有當某則警示的決策已結束兩分鐘以上時,才會刪除它,因為刪除警示會連帶刪除其決策,而攔截器完全不會得知這一點。
更新日誌
0.1.3
- 在 EmDash 1.2 及更新版本中,這些頁面會歸入側邊欄的同一個 CrowdSec 資料夾(Overview、Alerts、Decisions)。它們的位址不變,較舊的 EmDash 仍會逐一列出。
- 依來源統計的有效封鎖需要引擎的 Prometheus
level: full。README 的 Metrics 一節對此有說明。 - 沒有新增權限,MCP 工具也沒有變更。
0.1.2
- 警示瀏覽器的篩選器排成一列,選擇後立即生效。
0.1.1
- CrowdSec 警示頁面變成了瀏覽器:時間範圍從一小時到全部歷史,或自您上次造訪以來;類型分頁;兩種可切換的附直方圖的分類檢視;以標籤形式顯示的篩選器;依位址分組的警示,可檢視每個位址以及每則警示的即時詳情;以及「Banned now」與「Seen before」提示。
- 引擎:每則警示都會保留觸發它的 CrowdSec 代理,可作為分類檢視與篩選條件;當存在多個引擎時,還會有一欄與一個圖表,名稱在「Engine names」設定中指定。
- 新增 MCP 工具
alerts_explorer。更新時 EmDash 會再次要求 Agent 存取權限。 - 已儲存的警示會在最初幾次同步時遷移到精簡的警示紀錄中。
- 移除了示範資料:外掛程式需要可連線的 LAPI。曾使用示範資料的安裝會要求填寫 LAPI 設定,並在設定完成後清除其示範資料列。
- 更簡短的時間顯示、更窄的表格、以三天為一柱的 90 天頁面,以及無需造訪儀表板就會依其設定執行的指標取樣器。
0.1.0
首次發佈:儀表板卡片、CrowdSec 頁面、警示與決策頁面、設定檢查、流量圖表、八個 MCP 工具,以及供管理員使用的選用封鎖、解除封鎖與刪除警示功能,並附有針對您自己位址的保護。
完整歷史:CHANGELOG.md。