警告清單

原始碼 首頁

啟用方式
warnlist:github.com/giantswarm/coredns-warnlist-plugin

當請求清單中的網域時,warnlist 會發出日誌和 Prometheus 指標。

描述

warnlist 外掛程式接受一份惡意或不想要的網域清單,當請求該網域(或子網域)時,會發出日誌條目和 Prometheus 指標。

禁止的網域可以從本機檔案或 URL 載入,並且可以在指定的週期後自動重新載入。

warnlist 可以被認為是一個非阻塞的黑名單/封鎖清單/拒絕清單/壞網域清單。當與經過策劃的資料來源一起使用時,該外掛程式可以顯示簡單的低雜訊警報,而無需傳送和檢查 DNS 日誌。

請參閱專案的 README 以獲取更多資訊。

Giant SwarmQuayDocker Hub 上託管了一個已編譯此外掛程式的非官方 coredns 映像檔,名稱為 [quay.io/]giantswarm/coredns-warnlist-plugin

語法

warnlist {
    <source type> <source path> <file format>
    reload <reload period>
    match_subdomains <true | false>
}

warnlist 外掛程式接受以下參數

  • <來源類型>:網域清單的類型。可以是 urlfile
  • <來源路徑>:從何處載入清單。可以是 URL 或檔案路徑。
  • <檔案格式>:預期的檔案格式。可以是 hostfiletext
  • <重新載入週期>:(可選)重新產生清單的 Go 持續時間*。
  • <比對子網域>:(可選)如果為 true(預設),外掛程式也會檢查並比對明確列出的子網域。可以是 truefalse

* 會自動新增 +/- 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} - 警告清單中目前儲存的網域數量。