ADC

配置 DNSSEC

执行以下步骤来配置 DNSSEC:

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

NetScaler 设备不充当 DNSSEC 解析器。仅在以下部署场景中支持 ADC 上的 DNSSEC:

  1. adns—NetScaler 是 ADNS,它自己生成签名。
  2. 代理 — NetScaler 充当 DNSSEC 代理。假设 NetScaler 以可信模式放置在 ADNS/LDNS 服务器的前面。ADC 仅充当代理缓存实体,不验证任何签名。

启用和禁用 DNSSEC

在 NetScaler 上启用 DNSSEC,以便 ADC 能够响应支持 DNSSEC 的客户端。默认情况下,DNSSEC 处于启用状态。

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

使用 CLI 启用或禁用 DNSSEC

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

-  set dns parameter -dnssec ( ENABLED | DISABLED )
-  show dns parameter  
<!--NeedCopy-->

示例:

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

<!--NeedCopy-->

使用 GUI 启用或禁用 DNSSEC

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

为区域创建 DNS 密钥

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

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

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

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

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

从版本 13.0 版本 61.x 开始,NetScaler 设备现在支持更强大的加密算法,例如 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
<!--NeedCopy-->

使用 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>]
<!--NeedCopy-->

示例:

> 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
<!--NeedCopy-->

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

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

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

配置 DNS 密钥

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

使用 CLI 配置密钥

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

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

示例:

> 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
<!--NeedCopy-->

使用 GUI 配置密钥

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

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

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

    • 过期—过期
    • Notification Period(通知期限)—notificationPeriod
    • TTL—TTL
  4. 单击确定。

签名和取消签名 DNS 区域

要保护 DNS 区域,必须使用在该区域中发布的密钥对该区域进行签名。当您签署区域时,NetScaler 会为每个所有者名称创建一个 Next Secure (NSEC) 资源记录。然后,它使用密钥签名密钥对 DNSKEY 资源记录集进行签名。最后,它使用 ZSK 对区域中的所有资源记录集进行签名,包括 DNSKEY 资源记录集和 NSEC 资源记录集。每次签名操作都会为区域中的资源记录集生成签名。签名是在名为 RRSIG 资源记录的新资源记录中捕获的。

签署区域后,保存配置。

使用 CLI 对区域进行签名

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

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

示例:

> 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
<!--NeedCopy-->

使用 CLI 取消对区域的签名

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

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

示例:

> 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
<!--NeedCopy-->

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

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

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

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

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

  4. 单击确定。

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

您可以查看 NetScaler 为区域中的每个所有者名称自动创建的 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
<!--NeedCopy-->

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

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

移除 DNS 密钥

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

使用 CLI 从 NetScaler 中删除密钥

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

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

示例:

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

<!--NeedCopy-->

使用 GUI 从 NetScaler 中删除密钥

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