ACL

acl 在源 ip 上实施访问控制策略,并防止对 DNS 服务器的未经授权的访问。

描述

acl 启用时,用户可以通过配置 IP 过滤规则集,即允许授权递归查询或阻止未经授权的查询,以阻止或过滤可疑的 DNS 查询。

这个插件可以在多个域名服务块中多次使用。

句法

acl [ZONES...] {
    ACTION [type QTYPE...] [net SOURCE...]
}
  • ZONES 区域应具有权威性。如果为空,则使用配置块中的区域。
  • ACTION(allow,block 或 filter)定义了处理与此规则匹配的 DNS 查询的方式。默认操作为 allow,这意味着将允许递归与任何规则都不匹配的 DNS 查询。块和过滤器之间的区别在于,块返回状态代码 REFUSED,而过滤器返回空集 NOERROR
  • QTYPE 是与允许或阻止的请求相匹配的查询类型。支持公共资源记录​​类型。* 代表所有记录类型。省略的默认行为 type QTYPE... 是匹配所有种类的 DNS 查询(与相同 type *)。
  • SOURCE 是与允许或阻止的请求相匹配的源IP地址。支持典型的 CIDR 表示法和单个 IP 地址。* 代表所有可能的源IP地址。

例子

为了演示插件 acl 的用法,我们在此提供一些典型示例。

阻止所有记录类型为 192.168.0.0/16 的 DNS 查询:

. {
    acl {
        block type A net 192.168.0.0/16
    }
}

从 192.168.0.0/16 过滤所有记录类型为 A 的 DNS 查询:

. {
    acl {
        filter type A net 192.168.0.0/16
    }
}

阻止除 192.168.1.0/24 之外的所有来自 192.168.0.0/16 的 DNS 查询:

. {
    acl {
        allow net 192.168.1.0/24
        block net 192.168.0.0/16
    }
}

仅允许来自 192.168.0.0/24 和 192.168.1.0/24 的 DNS 查询:

. {
    acl {
        allow net 192.168.0.0/24 192.168.1.0/24
        block
    }
}

阻止从 192.168.1.0/24 到 a.example.org 的所有 DNS 查询:

example.org {
    acl a.example.org {
        block net 192.168.1.0/24
    }
}

指标

如果启用了监控(通过 prometheus插件),则将导出以下指标:

  • coredns_acl_blocked_requests_total{server, zone} - DNS 请求器被阻止的次数统计。
  • coredns_acl_allowed_requests_total{server} - DNS 请求通过的次数统计。

serverzone 标签的详细解释,参考 metrics 插件。

参考

Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2021-04-21 11:43:15

results matching ""

    No results matching ""