跳至內容

解讀資料

最容易混淆的是,「以前觀測過這個 IP」不代表「現在仍封鎖這個 IP」。

收集是定期執行的,而不是即時事件串流。在使用資料之前,先了解一筆觀測代表什麼,以及時間欄位實際記錄了什麼,會比較容易判斷。

觀測單位

一筆觀測是 source、jail 與 ip 的組合。同一個 IP 若被兩個 Jail 或兩個收集來源偵測到,會保留為多筆觀測。

例如同一個 IP 同時出現在 SSH 與 Nginx 的紀錄中,就會有兩筆觀測。因此觀測筆數未必等於不重複的 IP 數。

統計中的 observations 為觀測筆數,ips 為不重複的 IP 數。文字 feed 也會對 IP 去重。

時間與狀態

欄位意義
first_seen此收集平台首次確認該位址的時間
last_seen最後一次確認的收集時間
active = 1存在於最新快照的封鎖清單中
active = 0在後續快照中已從清單移除
stale = 1該 Jail 已超過 48 小時未收集

這些時間代表收集系統看到該狀態的時間,並非 Fail2ban 實際執行封鎖的瞬間。收集來源停止更新,也不表示封鎖已解除。更新已過期的 Jail 會從目前清單、統計與 feed 中排除。查詢與 active=all 可檢視過去的觀測資料。

定期收集的限制

收集來源會配合每日報告產生,將目前的封鎖清單寫入 JSON。內容沒有變更時,會發送以雜湊為基礎的 heartbeat;有變更時,則從完整快照套用差異。

如果 IP 在兩次快照之間被封鎖又解除,這套系統就無法留下紀錄。它不是逐筆記錄 Fail2ban 事件的稽核日誌。本 API 並非能還原所有過去封鎖清單的服務。紀錄僅從此收集平台開始觀測的時點起存在。

國家、ASN 與組織

這些是來自 GeoIP(IP 地理位置)與 RDAP(註冊資料)的補充資料。未知值為 null。國碼與 ASN(Autonomous System Number)值描述的是網路,並不代表發出請求者的國籍、居住地、所屬單位或身分。

公開範圍

公開 API 提供 IP 位址、公開的收集來源標籤、Jail 名稱、觀測時間、狀態,以及網路補充資料。原始存取日誌、請求本文、帳號名稱、憑證與管理用排除清單不會公開。

不要把觀測資料直接匯入永久封鎖清單。 單筆 IP 紀錄無法證明惡意意圖;請檢視偵測規則與狀態。共用線路與動態 IP 配發,意味著觀測時使用該位址的可能是不同使用者。

回報誤判或規格問題

你可以透過 f2b-api GitHub 儲存庫 回報解讀疑問或規格不一致之處。請勿公開憑證、原始日誌或個人資訊。檢視修正時,我們會區分 Jail、觀測時間與問題條件。