警告列表

主页

启用,如下所示
warnlist:github.com/giantswarm/coredns-warnlist-plugin

warnlist 在请求已列出的域时发送日志和 Prometheus 指标。

描述

warnlist 插件接受恶意或其他不受欢迎域的列表,并在请求域(或子域)时发送日志条目和 Prometheus 指标。

禁止的域可以从本地文件或 URL 加载,并且可以在指定时间后自动重新加载。

warnlist 可以视为非阻塞黑名单/封锁列表/拒绝列表/不良列表。与精心准备的数据源结合使用时,该插件可以在无需传输和检查 DNS 日志的情况下展现简化的低噪声警报。

请参阅项目自述文件以获取更多信息。

包含已编译插件的非官方 coredns 镜像由 Giant Swarm 托管在 QuayDocker Hub 上,具体形式为 [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 数据源的 Corefile 样本,大约每 60 分钟重新加载一次

. {
    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} - 当前存储在警告列表中的域的数量。