Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

DNS 请求过滤不允许的网站域

DNS 请求过滤概述

从 Junos OS 18.3R1 版开始,您可以配置 DNS 过滤来识别不允许的网站域的 DNS 请求。从 Junos OS 19.3R2 版开始,如果您使用 MX-SPC3 服务卡运行新一代服务,则可以配置 DNS 过滤。MX240、MX480 和 MX960 路由器支持新一代服务。对于 DNS 请求类型 A、AAAA、MX、CNAME、TXT、SRV 和 ANY,您可以配置对不允许的域的 DNS 请求执行的操作。您可以:

  • 通过发送包含 DNS 沉洞服务器的 IP 地址或完全限定域名 (FQDN) 的 DNS 响应来阻止对网站的访问。这可以确保当客户端尝试将流量发送到不允许的域时,流量将转到沉洞服务器(参见 图 1)。

  • 记录请求并允许访问。

从 Junos OS 21.1R1 版开始,您还可以为不允许的域的 DNS 请求配置以下操作:

  • 警报
  • 接受
  • 丢弃无日志

对于不允许的域的其他 DNS 请求类型,将记录请求并允许访问。

沉洞服务器执行的操作不受 DNS 请求过滤功能的控制;您负责配置 sinkhole 服务器操作。例如,沉洞服务器可以向请求者发送一条消息,说明无法访问该域,并阻止访问不允许的域。

图 1:不允许 DNS Request for Disallowed Domain域的 DNS 请求

好处

DNS 过滤将对不允许的网站域的 DNS 请求重定向到沉洞服务器,同时防止任何操作系统的人看到不允许的域列表。这是因为不允许的域名采用加密格式。

不允许的域筛选器数据库文件

DNS 请求过滤需要一个不允许的域过滤器数据库.txt文件,用于标识每个不允许的域名、对不允许的域的 DNS 请求执行的操作,以及 DNS 沉洞服务器的 IP 地址或完全限定域名 (FQDN)。

DNS 过滤器配置文件

您可以配置 DNS 筛选器配置文件,以指定要使用的不允许的域筛选器数据库文件。您还可以指定执行 DNS 请求过滤的接口,将过滤限制为针对特定 DNS 服务器的请求,并将过滤限制为来自特定源 IP 地址前缀的请求。

如何配置 DNS 请求过滤

要过滤不允许的网站域的 DNS 请求,请执行以下操作:

如何配置域筛选器数据库

创建一个或多个域筛选数据库文件,其中包含每个不允许的域的条目。每个条目都指定如何处理不允许的网站域的 DNS 请求。

要配置域筛选器数据库文件,请执行以下操作:

  1. 创建文件的名称。数据库文件名的最大长度可以为 64 个字符,并且必须具有 .txt 扩展名。
  2. 添加格式为 20170314_01:domain、sinkhole_ip、v6_sinkhole、sinkhole_fqdn、id、action 的文件头。
  3. 在文件中为每个不允许的域添加一个条目。您最多可以包含 10,000 个域条目。数据库文件中的每个条目都包含以下项:

    散列域名、IPv4 沉洞地址、IPv6 沉洞地址、沉洞 FQDN、ID、操作

    哪里:

    • hashed-domain-name 是不允许的域名的哈希值(64 个十六进制字符)。使用 Junos OS CLI 配置 DNS 过滤时,需要使用用于生成散列域值的散列方法和散列密钥。

    • IPv4 sinkhole address 是 IPv4 DNS 请求的 DNS 沉洞服务器的地址。

    • IPv6 sinkhole address 是 IPv6 DNS 请求的 DNS 沉洞服务器的地址。

    • sinkhole FQDN 是 DNS 沉洞服务器的全限定域名。

    • ID 是一个 32 位数字,用于将条目与哈希域名唯一关联。

    • action 是应用于与不允许的域名匹配的 DNS 请求的操作。如果您输入:

      • replace,MX 系列路由器会向客户端发送带有 DNS 沉洞服务器的 IP 地址或 FQDN 的 DNS 响应。如果输入 report,则将记录 DNS 请求,然后将其发送到 DNS 服务器。
      • report,DNS 请求将被记录,然后发送到 DNS 服务器。
      • alert,将记录 DNS 请求,并将请求发送到 DNS 服务器。
      • accept,将记录 DNS 请求,并将请求发送到 DNS 服务器。
      • drop,DNS 请求被丢弃并记录请求。DNS 请求不会发送到 DNS 服务器。
      • drop-no-log,DNS 请求将被丢弃,并且不会生成任何系统日志。DNS 请求不会发送到 DNS 服务器。
  4. 在文件的最后一行中,包括文件哈希,这是使用生成哈希域名所用的相同键和哈希计算方法计算得出的。
  5. 将数据库文件保存在路由引擎的 /var/db/url-filterd 目录中。
  6. 验证域筛选器数据库文件。
  7. 如果对数据库文件进行任何更改,请应用这些更改。

如何配置 DNS 过滤器配置文件

DNS 过滤器配置文件包括用于过滤不允许的网站域的 DNS 请求的常规设置,并最多包含 32 个模板。模板设置适用于特定上行链路和下行链路逻辑接口或路由实例上的 DNS 请求,或来自特定源 IP 地址前缀的 DNS 请求,并覆盖 DNS 配置文件级别的相应设置。您最多可以配置八个 DNS 过滤器配置文件。

要配置 DNS 过滤器配置文件,请执行以下操作:

  1. 配置 DNS 过滤器配置文件的名称:

    配置文件的最大数量为 8。

  2. 配置用于记录每个客户端统计信息的时间间隔,以便进行 DNS 过滤。范围为 0 到 60 分钟,默认为 5 分钟。
  3. 为配置文件配置常规 DNS 过滤设置。如果 DNS 请求与特定模板不匹配,则使用这些值。
    1. 指定筛选 DNS 请求时要使用的域筛选器数据库的名称。
    2. (可选)要将 DNS 过滤限制为发往特定 DNS 服务器的 DNS 请求,请指定最多三个 IP 地址(IPv4 或 IPv6)。
    3. 指定哈希密钥的格式。
    4. 指定用于在域筛选器数据库文件中创建哈希域名的哈希密钥。
    5. 指定用于在域筛选器数据库文件中创建哈希域名的哈希方法。

      唯一支持的散列方法是 hmac-sha2-256

    6. 配置为记录 DNS 请求的统计信息以及为每个客户 IP 地址执行的沉洞操作的统计信息的时间间隔。范围为 1 到 60 分钟,默认为 5 分钟。
    7. 在执行 DNS 沉洞操作后,配置发送 DNS 响应时的生存时间。范围为 0 到 86,400 秒,默认值为 1800。
    8. 配置搜索匹配项的子域级别。范围为 0 到 10。值为 0 表示未搜索子域。

      例如,如果将 设置为 wildcarding-level 4,并且数据库文件包含用于 example.com 的条目,则将对随域 198.51.100.0.example.com 一起到达的 DNS 请求进行以下比较:

      • 198.51.100.0.example.com:无匹配

      • 51.100.0.example.com:无法匹配下降一级

      • 100.0.example.com:无法匹配下两级

      • 0.example.com:三级无与伦比

      • example.com:匹配四级以下

  4. 配置模板。一个配置文件最多可以配置 8 个模板。每个模板都标识特定上行链路和下行链路逻辑接口或路由实例上的 DNS 请求或来自特定源 IP 地址前缀的 DNS 请求的过滤器设置。
    1. 配置模板的名称。
    2. (可选)指定应用 DNS 过滤的面向客户端的逻辑接口(上行链路)。
    3. (可选)指定应用 DNS 过滤的面向服务器的逻辑接口(下行链路)。
    4. (可选)为应用 DNS 过滤的面向客户端的逻辑接口指定路由实例。
    5. (可选)为应用 DNS 过滤的面向服务器的逻辑接口指定路由实例。
      注意:

      如果配置客户端和服务器接口或者客户端和服务器路由实例,则会在接口或路由实例上安装隐式过滤器,以将 DNS 流量引导到服务 PIC 以进行 DNS 过滤。如果既不配置客户端和服务器接口,也不配置路由实例,则必须提供一种将 DNS 流量定向到服务 PIC 的方法(例如,通过路由)。

    6. 指定筛选 DNS 请求时要使用的域筛选器数据库的名称。
    7. (可选)要将 DNS 过滤限制为发往特定 DNS 服务器的 DNS 请求,请指定最多三个 IP 地址(IPv4 或 IPv6)。
    8. 指定用于在域筛选器数据库文件中创建哈希域名的哈希方法。

      唯一支持的散列方法是 hmac-sha2-256

    9. 指定用于在域筛选器数据库文件中创建哈希域名的哈希键。
    10. 配置为记录 DNS 请求的统计信息以及为每个客户 IP 地址执行的沉洞操作的统计信息的时间间隔。范围为 1 到 60 分钟,默认为 5 分钟。
    11. 在执行 DNS 沉洞操作后,配置发送 DNS 响应时的生存时间。范围为 0 到 86,400 秒,默认值为 1800。
    12. 配置搜索匹配项的子域级别。范围为 0 到 10。值为 0 表示未搜索子域。

      例如,如果将 设置为 wildcarding-level 4,并且数据库文件包含 example.com 的条目,则将对随域 198.51.100.0.example.com 到达的 DNS 请求进行以下比较:

      • 198.51.100.0.example.com:无匹配

      • 51.100.0.example.com:下一级没有对手

      • 100.0.example.com:无法匹配下两级

      • 0.example.com:三级不匹配

      • example.com:匹配四个级别

    13. (可选)指定 SRV 和 TXT 查询类型的响应错误代码。

      (选答)指定 SRV 和 TXT 查询类型的响应错误代码。

    14. 为模板配置术语。一个模板最多可以配置 64 个术语。
    15. (可选)指定要过滤的 DNS 请求的源 IP 地址前缀。一个术语中最多可以配置 64 个前缀。
    16. 指定对不允许的 DNS 请求执行域筛选器数据库中标识的沉洞操作。

如何为 DNS 过滤配置服务集

将 DNS 过滤器配置文件与下一跃点服务集相关联,并启用日志记录以进行 DNS 过滤。服务接口可以是采用 MX-SPC3 服务卡的新一代服务 ms 或 VMS 接口,也可以是聚合多服务 (AMS) 接口。

DNS 过滤的多租户支持

概述

从 Junos OS 21.1R1 版开始,您可以为每个客户或 IP 子组配置自定义域源。您可以:

  • 为多个租户配置域名和操作,以便可以基于每个租户管理域源。
  • 按配置文件、每个 dns-filter-template 或每个 dns-filter-term 配置分层域源管理。
  • 在 IP、子网或 CIDR 级别豁免域源。

若要实现对 DNS 过滤的 mutiltenant 支持,请禁用在模板或配置文件级别下创建域筛选器数据库文件。您无需在模板或配置文件级别指定文件。从 Junos OS 21.1R1 开始,默认情况下,可以使用具有固定名称、 nsf_multi_tenant_dn_custom_file.txt (纯文本格式)或 dnsf_multi_tenant_dn_custom_file_hashed.txt (加密文件)的全局文件。

数据库文件中的每个条目都包含以下项:

散列域名、IPv4 沉洞地址、IPv6 沉洞地址、沉洞 FQDN、ID、操作、源名称。

计算文件哈希并将其追加到文件中的域名条目列表中。文件哈希是使用全局密钥和方法计算的,该方法使用使用层次结构中 [edit services web-filter] 配置的哈希密钥计算的文件哈希进行验证。仅当计算出的文件哈希与文件中存在的文件哈希匹配时,文件验证才会成功。

文件中的每个条目nsf_multi_tenant_dn_custom_file.txt都由一个名为 feed-name 的附加字段组成。此源名称用作对域名集进行分组并将它们映射到租户(配置文件、模板、术语或 IP 地址)的指示器。

当从特定 SRC IP 地址接收 DNS 数据包时,将获取相应的源名称,并针对与术语关联的源名称映射的域名进行查找。如果未为该 IP 地址预配源名称,则该 IP 地址会回退到在模板级别配置的源名称,并针对与模板关联的源名称映射的域名进行查找。如果未在模板中配置源名,则查找将针对与配置文件关联的源名映射的域名。

配置对 DNS 过滤的多租户支持

  1. 配置 Web 过滤器。
  2. 启用多租户支持
  3. 配置全局文件哈希密钥和哈希方法。
    注意:

    配置后 multi-tenant-hash,它指示全局 dns 源文件仅包含加密源。如果 multi-tenant-hash 未配置 s,则表示全局 dns 源文件具有纯文本格式的源。

  4. 配置 DNS 过滤器配置文件的名称,并在配置文件级别映射域源。在配置文件级别配置的源名称指示器将应用于配置文件下未配置源名称指示器的所有模板和术语。
  5. 为配置文件配置常规 DNS 过滤设置。如果 DNS 请求与特定模板不匹配,则使用这些值。
    1. (可选)要将 DNS 过滤限制为发往特定 DNS 服务器的 DNS 请求,请指定最多三个 IP 地址(IPv4 或 IPv6)。
    2. 配置为记录 DNS 请求的统计信息以及为每个客户 IP 地址执行的沉洞操作的统计信息的时间间隔。范围为 1 到 60 分钟,默认为 5 分钟。
    3. 配置生存时间 (TTL) 以在执行 DNS 沉洞操作后发送 DNS 响应。范围为 0 到 86,400 秒,默认值为 1800。
    4. 配置搜索匹配项的子域级别。范围为 0 到 10。值为 0 表示未搜索子域。
    5. (可选)指定 TXT 查询类型的响应错误代码。
  6. 配置模板。一个配置文件最多可以配置 8 个模板。每个模板都标识特定上行链路和下行链路逻辑接口或路由实例上的 DNS 请求或来自特定源 IP 地址前缀的 DNS 请求的过滤器设置。
    1. 配置模板的名称。
    2. 配置源名称。使用多租户格式时,您不能再在配置文件或模板下添加文件名。与在模板下配置的源名称相比,配置文件下指定的源名称的优先级较低。
    3. (可选)指定应用 DNS 过滤的面向客户端的逻辑接口(上行链路)。
    4. (可选)指定应用 DNS 过滤的面向服务器的逻辑接口(下行链路)。
    5. (可选)为应用 DNS 过滤的面向客户端的逻辑接口指定路由实例。
    6. (可选)为应用 DNS 过滤的面向服务器的逻辑接口指定路由实例。
      注意:

      如果配置客户端和服务器接口或者客户端和服务器路由实例,则会在接口或路由实例上安装隐式过滤器,以将 DNS 流量引导到服务 PIC 以进行 DNS 过滤。如果既不配置客户端和服务器接口,也不配置路由实例,则必须提供一种将 DNS 流量定向到服务 PIC 的方法(例如,通过路由)。

    7. 配置为记录 DNS 请求的统计信息以及为每个客户 IP 地址执行的沉洞操作的统计信息的时间间隔。范围为 1 到 60 分钟,默认为 5 分钟。
    8. 在执行 DNS 沉洞操作后,配置发送 DNS 响应时的生存时间。范围为 0 到 86,400 秒,默认值为 1800。
    9. 配置搜索匹配项的子域级别。范围为 0 到 10。值为 0 表示未搜索子域。
    10. 为模板配置术语。一个模板最多可以配置 64 个术语。
    11. 配置源名称。在术语中配置的源名称的优先级高于在模板下配置的源名称。但是,如果沉洞域与模板下源名称中提到的唯一域匹配,则将实施为该条目指定的操作。
    12. (可选)指定要过滤的 DNS 请求的源 IP 地址前缀。一个术语中最多可以配置 64 个前缀。
    13. 配置对不允许的 DNS 请求执行域筛选器数据库中标识的沉洞操作。
  7. 将 DNS 过滤器配置文件与下一跃点服务集相关联,并启用日志记录以进行 DNS 过滤。服务接口可以是多服务 (ms) 或虚拟多服务 (vms) 接口(具有 MX-SPC3 服务卡的新一代服务),也可以是聚合多服务 (AMS) 接口。
  8. 如果在 MX-SPC3 服务卡上运行新一代服务,请配置虚拟机接口以在系统日志中获取 FPC 和 PIC 信息。

示例:配置对 DNS 过滤的多租户支持

配置

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到 [编辑] 层次结构级别的 CLI 中。

变更历史表

是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。

释放
描述
19.3R2
从 Junos OS 19.3R2 版开始,如果您使用 MX-SPC3 服务卡运行新一代服务,则可以配置 DNS 过滤。MX240、MX480 和 MX960 路由器支持新一代服务。