Windows DNS服务器上的SSHFPlogging

我如何在Windows DNS服务器上添加SSHFPlogging(或任意的logging)?

我正在使用Windows 2012 R2运行DC,并希望将Unix服务器的SSH密钥放在DNS上。

正如在另一个答案中指出的,MSDNS的任何Microsoft工具( dnsmgmt.mscdnscmdAdd-DnsServerResourceRecord )似乎都不具备添加SSHFPlogging的function。

此外,这些工具似乎也没有能力使用标准化的通用不透明logging格式 (即type<typeno> # <length> <hexencodedRRdata> )来添加任意types的logging 。

但是,MSDNS确实支持dynamic更新协议,实际上确实可以将SSHFPlogging添加到托pipe的MSDNS区域。

虽然添加logging确实有效,而且logging之后可以查询,但是我build议您小心谨慎,因为您可能在大部分未经testing的领域。 这可能不适合生产使用。

这些初始步骤可以通过你喜欢的任何方法来完成(例如, dnsmgmt.msc工作正常):

  • 确保相关区域已签名或以其他方式启用签名(如果您不熟悉,则需要阅读DNSSEC)
  • 为相关区域启用dynamic更新

然后,使用BIND中的常规nsupdatedig工具:

 C:\Users\Administrator\Downloads\BIND9.10.2.x64>nsupdate > server localhost > zone example.com > update add foo.example.com 3600 IN SSHFP 2 1 CC17F14DA60CF38E809FE58B10D0F22680D59D08 > send > 

并validation该logging是否存在:

 C:\Users\Administrator\Downloads\BIND9.10.2.x64>dig @localhost foo.example.com sshfp +dnssec ; <<>> DiG 9.10.2 <<>> @localhost foo.example.com sshfp +dnssec ; (2 servers found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53553 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4000 ;; QUESTION SECTION: ;foo.example.com. IN SSHFP ;; ANSWER SECTION: foo.example.com. 3600 IN SSHFP 2 1 CC17F14DA60CF38E809FE58B10D0F22680D59D08 foo.example.com. 3600 IN RRSIG SSHFP 8 3 3600 20150426201836 20150416191836 46761 example.com. rO98HgBwZSCdsHIf/svgKV+ShLGDonandqrRE1Fe0RdhiJiK S/B0c28g vFCVijPqDBhxbCsY/OBh5AsF/LpZMZjE5erIIliq6E8yIlPMyiN+MabQ Sxm8Pwfo9V/GeiG7MlmgBOArHp+rYWhA2X3GFpzb9xTiequppbB1GMao iz8= ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Thu Apr 16 20:32:45 Coordinated Universal Time 2015 ;; MSG SIZE rcvd: 249 C:\Users\Administrator\Downloads\BIND9.10.2.x64> 

不久之后: SSHFP目前不可用,我也在等待它

说明:

Windows DNS服务器为RRType提供了非常有限的选项,以防止添加不兼容的数据。 GUI的每个部分都有特定的字段,其中一些作为下拉菜单, dnscmd /RecordAdd和PowerShell Cmdlet Add-DnsServerResourceRecordRRType和它们的数据也有相同的限制。

RRType目前仅限于

  • 基于RFC的AAAAAAFSDBCNAMEDHCIDAFSDBHINFOISDNMXNSPTRRPRTSRVTXTWKSX25
  • Windows特定的WINSWINSRATMA
  • DNSSEC相关的loggingtypes是在签名期间自动创build的,因此不可用。

根据SSHFP假定未来的 SSHFPtypes将有三个参数:

 dnscmd /RecordAdd <Zone> <NodeName> SSHFP <Algorithm> <FP type> <Fingerprint> 

如果SSHFP RRType变得可用,就像Andrew B提到的那样,你必须首先满足两个条件:

  • 您必须拥有DNSSEC区域,并且必须对SSHFPlogging进行签名。 否则它不会改善你的安全性。
  • 运行SSH的计算机的parsing程序库必须启用EDNS0扩展。

因此,首先要问的是如何在Windows服务器上启用DNSSEC。 由于2008 R2的支持仅限于静态区域的离线签名,并且不支持NSEC3RSA/SHA-2 ,所以您拥有Windows Server 2012 R2是件好事。

由于这个问题不是关于Windows Server上的DNSSEC,所以我只会留下这个实用的TechNet文章作为作业: 分步骤:在testing实验室中演示DNSSEC