描述
warnlist 插件接受恶意或其他不受欢迎域的列表,并在请求域(或子域)时发送日志条目和 Prometheus 指标。
禁止的域可以从本地文件或 URL 加载,并且可以在指定时间后自动重新加载。
warnlist 可以视为非阻塞黑名单/封锁列表/拒绝列表/不良列表。与精心准备的数据源结合使用时,该插件可以在无需传输和检查 DNS 日志的情况下展现简化的低噪声警报。
请参阅项目自述文件以获取更多信息。
包含已编译插件的非官方 coredns
镜像由 Giant Swarm 托管在 Quay 和 Docker Hub 上,具体形式为 [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 数据源的 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}
- 当前存储在警告列表中的域的数量。