我如何在Windows DNS服务器上添加SSHFPlogging(或任意的logging)?
我正在使用Windows 2012 R2运行DC,并希望将Unix服务器的SSH密钥放在DNS上。
正如在另一个答案中指出的,MSDNS的任何Microsoft工具( dnsmgmt.msc , dnscmd , Add-DnsServerResourceRecord )似乎都不具备添加SSHFPlogging的function。
此外,这些工具似乎也没有能力使用标准化的通用不透明logging格式 (即type<typeno> # <length> <hexencodedRRdata> )来添加任意types的logging 。
但是,MSDNS确实支持dynamic更新协议,实际上确实可以将SSHFPlogging添加到托pipe的MSDNS区域。
虽然添加logging确实有效,而且logging之后可以查询,但是我build议您小心谨慎,因为您可能在大部分未经testing的领域。 这可能不适合生产使用。
这些初始步骤可以通过你喜欢的任何方法来完成(例如, dnsmgmt.msc工作正常):
然后,使用BIND中的常规nsupdate和dig工具:
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-DnsServerResourceRecord对RRType和它们的数据也有相同的限制。
RRType目前仅限于
A , AAAA , AFSDB , CNAME , DHCID , AFSDB , HINFO , ISDN , MX , NS , PTR , RP , RT , SRV , TXT , WKS和X25 WINS , WINSR和ATMA 。 根据SSHFP , 假定未来的 SSHFPtypes将有三个参数:
dnscmd /RecordAdd <Zone> <NodeName> SSHFP <Algorithm> <FP type> <Fingerprint>
如果SSHFP RRType变得可用,就像Andrew B提到的那样,你必须首先满足两个条件:
SSHFPlogging进行签名。 否则它不会改善你的安全性。 EDNS0扩展。 因此,首先要问的是如何在Windows服务器上启用DNSSEC。 由于2008 R2的支持仅限于静态区域的离线签名,并且不支持NSEC3和RSA/SHA-2 ,所以您拥有Windows Server 2012 R2是件好事。
由于这个问题不是关于Windows Server上的DNSSEC,所以我只会留下这个实用的TechNet文章作为作业: 分步骤:在testing实验室中演示DNSSEC