Citrix ADC

配置 DNSSEC

要配置 DNSSEC,请执行以下步骤:

  1. 在 Citrix ADC 设备上启用 DNSSEC。
  2. 为区域创建区域签名密钥和密钥签名密钥。
  3. 将两个键添加到区域。
  4. 使用钥匙签名区域。

Citrix ADC 设备不充当 DNSSEC 解析器。仅在以下部署方案中支持 ADC 上的 DNSSEC:

  1. ADN-Citrix ADC 是 ADNS,并自行生成签名。
  2. 代理 - Citrix ADC 充当 DNSSEC 代理。假定 Citrix ADC 以受信任模式放置在 ADNS/LDNS 服务器前面。ADC 仅充当代理缓存实体,不验证任何签名。

启用和禁用 DNSSEC

为 ADC 启用 Citrix ADC 上的 DNSSEC 以响应可识别 DNSSEC 的客户端。默认情况下,DNSSEC 处于启用状态。

如果您不希望 Citrix ADC 使用特定于 DNSSEC 的信息响应客户端,则可以禁用 DNSSEC 功能。

使用 CLI 启用或禁用 DNSSEC

在命令提示符下,键入以下命令以启用或禁用 DNSSEC 并验证配置:

-  set dns parameter -dnssec ( ENABLED | DISABLED )
-  show dns parameter  

示例:

> set dns parameter -dnssec ENABLED
 Done
> show dns parameter
        DNS parameters:
        DNS retries: 5
         .
         .
         .
         DNSEC Extension: ENABLED
        Max DNS Pipeline Requests: 255
 Done

通过使用 GUI 启用或禁用 DNSSEC

  1. 导航到流量管理”>“DNS”
  2. 在详细信息窗格中,单击 更改 DNS 设置。
  3. 配置 DNS 参数对话框中,选中或清除启用 DNSSEC 扩展复选框。

为区域创建 DNS 密钥

对于要签名的每个 DNS 区域,必须创建两对非对称密钥。一对称为区域签名密钥 (ZSK),用于对区域中的所有资源记录集进行签名称。第二对称为密钥签名密钥 (KSK),用于仅签名区域中的 DNSSKEY 资源记录。

创建 ZSK 和 KSK 时,将suffix.key 附加到密钥的公共组件的名称。将suffix.private 附加到其专用组件的名称中。追加会自动发生。

Citrix ADC 还会创建委派签名器 (DS) 记录,并将后缀 .ds 附加到记录的名称。如果父区域是签名区域,则必须在父区域中发布 DS 记录以建立信任链。

创建密钥时,密钥存储在/nsconfig/dns/ 目录中,但不会自动发布在区域中。使用命令创建密钥后,必须使用create dns key 命令在区域中显式发布密钥。add dns key 生成密钥的过程与在区域中发布密钥的过程分开,从而使您能够使用替代方法生成密钥。例如,您可以使用安全 FTP (SFTPbind-keygen) 导入由其他密钥生成程序(如)生成的密钥,然后在区域中发布密钥。有关在区域中发布密钥的更多信息,请参阅在区域中发布 DNS 密钥

执行本主题中描述的步骤以创建区域签名密钥,然后重复这些步骤以创建密钥签名密钥。遵循命令语法的示例首先为区域 example.com 创建区域签名密钥对。然后,该示例使用命令为区域创建密钥签名密钥对。

从 13.0 版本 61.x 开始,Citrix ADC 设备现在支持更强大的加密算法(如 RSASHA256 和 RSASHA512),以对 DNS 区域进行身份验证。以前,仅支持 RSASHA1 算法。

使用 CLI 创建 DNS 密钥

在命令提示窗口中,键入:

create dns key -zoneName <string> -keyType <keyType> -algorithm <algorithm> -keySize <positive_integer> -fileNamePrefix <string>

示例:

> create dns key -zoneName example.com -keyType zsk -algorithm RSASHA256 -keySize 1024 -fileNamePrefix example.com.zsk.rsasha1.1024
File Name: /nsconfig/dns/example.com.zsk.rsasha1.1024.key (public); /nsconfig/dns/example.com.zsk.rsasha1.1024.private (private); /nsconfig/dns/example.com.zsk.rsasha1.1024.ds (ds)
This operation may take some time, Please wait...
 Done
> create dns key -zoneName example.com -keyType ksk -algorithm RSASHA512 -keySize 4096 -fileNamePrefix example.com.ksk.rsasha1.4096
File Name: /nsconfig/dns/example.com.ksk.rsasha1.4096.key (public); /nsconfig/dns/example.com.ksk.rsasha1.4096.private (private); /nsconfig/dns/example.com.ksk.rsasha1.4096.ds (ds)
This operation may take some time, Please wait...
 Done

通过使用 GUI 创建 DNS 密钥

  1. 导航到流量管理”>“DNS”
  2. 在详细信息区域中,单击 创建 DNS 密钥
  3. 输入不同参数的值,然后单击创建

    创建 DNS 密钥

    注意:要修改现有键的文件名前缀,请执行以下操作:

    • 单击 浏览 按钮旁边的箭头。
    • 单击本地设备(取决于现有密钥是存储在本地计算机上还是存储在设备的/nsconfig/dns/ 目录中)
    • 浏览到密钥的位置,然后双击该密钥。 文件名前缀框仅使用现有密钥的前缀填充。相应地修改前缀。

在区域中发布 DNS 密钥

通过将密钥添加到 ADC 设备,将密钥(区域签名密钥或密钥签名密钥)发布到区域中。在签署区域之前,必须在区域中发布密钥。

在区域中发布密钥之前,该密钥必须位于 /nsconfig/dns/ 目录中。如果您在另一台计算机上创建了 DNS 密钥(例如,通过使用bind-keygen 程序),请确保该密钥已添加到/nsconfig/dns/ 目录中。然后在区域中发布密钥。使用 ADC GUI 将密钥添加到目/nsconfig/dns/ 录中。或者,使用其他程序将密钥导入到目录,如安全 FTP (SFTP)。

对要在给定区域中发布的每个公私密钥对使用add dns key 命令。如果您为区域创建了 ZSK 对和 KSK 对,请使用add dns key 命令首先发布区域中的一个密钥对。重复此命令以发布其他密钥对。对于您在区域中发布的每个密钥,将在区域中创建 DNSKEY 资源记录。

遵循命令语法的示例首先在区域中发布区域签名密钥对(为 example.com 区域创建的)。然后,该示例使用命令在区域中发布密钥签名密钥对。

使用 CLI 在区域中发布密钥

在命令提示符下,键入以下命令以在区域中发布密钥并验证配置:

-  add dns key <keyName> <publickey> <privatekey> [-expires <positive_integer> [<units>]] [-notificationPeriod <positive_integer> [<units>]] [-TTL <secs>]
-  show dns zone [<zoneName> | -type <type>]

示例:

> add dns key example.com.zsk example.com.zsk.rsasha1.1024.key example.com.zsk.rsasha1.1024.private
 Done
> add dns key example.com.ksk example.com.ksk.rsasha1.4096.key example.com.ksk.rsasha1.4096.private
 Done
> show dns zone example.com
         Zone Name : example.com
         Proxy Mode : NO
         Domain Name : example.com
                 Record Types : NS SOA DNSKEY
         Domain Name : ns1.example.com
                 Record Types : A
         Domain Name : ns2.example.com
                 Record Types : A
 Done

使用 GUI 在 DNS 区域中发布密钥

导航到 流量管理 > DNS > 密钥

注意: 对于公钥和私钥,要添加存储在本地计算机上的密钥,请单击浏览按钮旁边的箭头,单击本地,浏览到该密钥的位置,然后双击该密钥。

配置 DNS 密钥

您可以配置已在区域中发布的密钥的参数。您可以修改密钥的到期时间、通知期和生存时间 (TTL) 参数。如果您更改密钥的到期时间,设备会自动使用密钥重新签名该区域中的所有资源记录。如果使用特定密钥对区域进行签名,则会发生重新签名称。

使用 CLI 配置密钥

在命令提示符处,键入以下命令以配置密钥并验证配置:

-  set dns key <keyName> [-expires <positive_integer> [<units>]] [-notificationPeriod <positive_integer> [<units>]] [-TTL <secs>]
-  show dns key [<keyName>]

示例:

> set dns key example.com.ksk -expires 30 DAYS -notificationPeriod 3 DAYS -TTL 3600
 Done
> show dns key example.com.ksk
1)      Key Name: example.com.ksk
        Expires: 30 DAYS        Notification: 3 DAYS    TTL: 3600
        Public Key File: example.com.ksk.rsasha1.4096.key
        Private Key File: example.com.ksk.rsasha1.4096.private
 Done

使用 GUI 配置密钥

  1. 导航到 流量管理 > DNS > 密钥

  2. 在详细信息窗格中,单击要配置的项,然后单击打开。

  3. 在“配置 DNS 密钥”对话框中,修改以下参数的值,如下所示:

    • 过期-过期
    • 通知期 — notificationPeriod
    • TTL
  4. 单击确定。

对 DNS 区域进行签名和取消签名

要保护 DNS 区域的安全,您必须使用已在区域中发布的密钥对区域进行签名。对区域进行签名时,Citrix ADC 会为每个所有者名称创建下一个安全 (NSEC) 资源记录。然后,它使用密钥签名密钥对 DNSSKEY 资源记录集进行签名称。最后,它使用 ZSK 对区域中的所有资源记录集进行签名,包括 DNSSEY 资源记录集和 NSEC 资源记录集。每个符号操作都会为区域中的资源记录集生成一个签名。签名在名为 RRSIG 资源记录的新资源记录中捕获。

签名区域后,保存配置。

使用 CLI 对区域进行签名

在命令提示符下,键入以下命令对区域进行签名并验证配置:

-  sign dns zone <zoneName> [-keyName <string> ...]
-  show dns zone [<zoneName> | -type (ADNS | PROXY | ALL)]
-  save config

示例:

> sign dns zone example.com -keyName example.com.zsk example.com.ksk
 Done
> show dns zone example.com
         Zone Name : example.com
         Proxy Mode : NO
         Domain Name : example.com
                 Record Types : NS SOA DNSKEY RRSIG NSEC
         Domain Name : ns1.example.com
                 Record Types : A RRSIG NSEC
         Domain Name : ns2.example.com
                 Record Types : A RRSIG
         Domain Name : ns2.example.com
                 Record Types : RRSIG NSEC
Done
> save config
 Done

使用 CLI 取消对区域的签名

在命令提示符下,键入以下命令以取消对区域的签名并验证配置:

-  unsign dns zone <zoneName> [-keyName <string> ...]
-  show dns zone [<zoneName> | -type (ADNS | PROXY | ALL)]

示例:

> unsign dns zone example.com -keyName example.com.zsk example.com.ksk
 Done
> show dns zone example.com
         Zone Name : example.com
         Proxy Mode : NO
         Domain Name : example.com
                 Record Types : NS SOA DNSKEY
         Domain Name : ns1.example.com
                 Record Types : A
         Domain Name : ns2.example.com
                 Record Types : A
 Done

使用 GUI 对区域进行签名或取消签名

  1. 导航到 流量管理 > DNS > 区域
  2. 在详细信息窗格中,单击要签名的区域,然后单击签名/取消签名。
  3. 在“登录/取消签名 DNS 区域”对话框中,执行以下操作之一:
    • 要对区域进行签名,请选中要使用的密钥(区域签名密钥和密钥签名密钥)对应的复选框。

      您可以使用多个区域签名密钥或密钥签名密钥对对对区域进行签名称。

    • 要取消区域的签名,请清除要取消区域签名的密钥(区域签名密钥和密钥签名密钥)的复选框。

      您可以使用多个区域签名密钥或密钥签名密钥对取消区域的签名称。

  4. 单击确定。

查看区域中给定记录的 NSC 记录

您可以查看 Citrix ADC 为区域中的每个所有者名称自动创建的 NSEC 记录。

使用 CLI 查看区域中给定记录的 NSEC 记录

在命令提示符下,键入以下命令以查看区域中给定记录的 NSEC 记录:

show dns nsecRec [<hostName> | -type (ADNS | PROXY | ALL)]

示例:

> show dns nsecRec example.com
1)      Domain Name : example.com
        Next Nsec Name: ns1.example.com
        Record Types : NS SOA DNSKEY RRSIG NSEC
 Done

使用 GUI 查看区域中给定记录的 NSEC 记录

  1. 导航到 流量管理 > DNS > 记录 > 下一个安全记录
  2. 在详细信息窗格中,单击要查看其 NSEC 记录的记录的名称。您选择的记录的 NSC 记录将显示在“详细信息”区域中。

删除 DNS 密钥

当密钥过期或密钥已被泄露时,从发布密钥的区域中删除密钥。从区域中删除密钥时,该区域将自动取消与该密钥签名。使用此命令删除密钥不会删除 /nsconfig/dns/ 目录中存在的密钥文件。如果不再需要密钥文件,则必须从目录中显式删除它们。

使用 CLI 从 Citrix ADC 中删除密钥

在命令提示符下,键入以下命令以删除密钥并验证配置:

-  rm dns key <keyName>
-  show dns key <keyName>

示例:

> rm dns key example.com.zsk
 Done
> show dns key example.com.zsk
ERROR: No such resource [keyName, example.com.zsk]

使用 GUI 从 Citrix ADC 中删除密钥

  1. 导航到 流量管理 > DNS > 密钥
  2. 在详细信息窗格中,单击要从 ADC 中删除的密钥的名称,然后单击删除。

配置 DNSSEC