描述
warnlist 外掛程式接受一份惡意或不想要的網域清單,當請求該網域(或子網域)時,會發出日誌條目和 Prometheus 指標。
禁止的網域可以從本機檔案或 URL 載入,並且可以在指定的週期後自動重新載入。
warnlist 可以被認為是一個非阻塞的黑名單/封鎖清單/拒絕清單/壞網域清單。當與經過策劃的資料來源一起使用時,該外掛程式可以顯示簡單的低雜訊警報,而無需傳送和檢查 DNS 日誌。
請參閱專案的 README 以獲取更多資訊。
由 Giant Swarm 在 Quay 和 Docker Hub 上託管了一個已編譯此外掛程式的非官方 coredns
映像檔,名稱為 [quay.io/]giantswarm/coredns-warnlist-plugin
。
語法
warnlist {
<source type> <source path> <file format>
reload <reload period>
match_subdomains <true | false>
}
warnlist
外掛程式接受以下參數
<來源類型>
:網域清單的類型。可以是url
或file
。<來源路徑>
:從何處載入清單。可以是 URL 或檔案路徑。<檔案格式>
:預期的檔案格式。可以是hostfile
或text
。<重新載入週期>
:(可選)重新產生清單的 Go 持續時間*。<比對子網域>
:(可選)如果為true
(預設),外掛程式也會檢查並比對明確列出的子網域。可以是true
或false
。
* 會自動新增 +/- 30% 的抖動。當從 URL 自動重新載入時,請對託管該檔案的服務保持友善。
範例
使用 URL 資料來源,每 ~60 分鐘重新載入的範例 Corefile
. {
log
warnlist {
url https://urlhaus.abuse.ch/downloads/hostfile/ hostfile
reload 60m
}
prometheus
forward . /etc/resolv.conf
}
指標
如果也啟用了 prometheus
外掛程式,此外掛程式會發出以下指標
warnlist_hits_total{server, requestor, domain}
- 計算請求的警告清單網域的數量。主機和網域會作為標籤包含在內。warnlist_failed_reloads_count{server}
- 計算外掛程式重新載入失敗的次數。warnlist_cache_check_duration_seconds{server}
- 用於確定檢查警告清單所需的平均時間的摘要。warnlist_warnlisted_items_count{server}
- 警告清單中目前儲存的網域數量。