Как я могу добавить записи SSHFP (или любые произвольные записи) на DNS-сервер Windows?
Я использую DC с Windows 2012 R2 и хочу разместить SSH-ключи серверов Unix в DNS.
Как было отмечено в другом ответе, ни один из инструментов Microsoft для MSDNS (dnsmgmt.msc
, dnscmd
, Add-DnsServerResourceRecord
) имеют возможность добавить SSHFP
запись.
Кроме того, эти инструменты, похоже, не имеют возможности добавлять записи произвольных типов с помощью стандартизированный универсальный непрозрачный формат записи (т.е. type<typeno> # <length> <hexencodedRRdata>
).
Однако MSDNS поддерживает протокол динамического обновления, что на самом деле позволяет добавить SSHFP
записи в зоны, размещенные MSDNS!
Хотя добавление записи действительно работает и впоследствии ее можно запросить, я рекомендую соблюдать осторожность, поскольку вы, вероятно, находитесь в основном на непроверенной территории. Это может не подходить для производственного использования.
Эти начальные шаги можно выполнить любым способом, который вы предпочитаете (dnsmgmt.msc
отлично работает, например):
Затем, используя обычный nsupdate
и dig
инструменты из BIND:
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
>
И чтобы убедиться, что запись существует:
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 Server имеет очень ограниченные возможности для RRType
чтобы вы не добавляли несовместимые данные. Хотя в графическом интерфейсе есть определенные поля для каждой части записи, некоторые из них в виде раскрывающихся меню, а также dnscmd /RecordAdd
и командлет PowerShell Add-DnsServerResourceRecord
имеет те же ограничения для RRType
s и их данные.
RRType
в настоящее время ограничено
A
, AAAA
, AFSDB
, CNAME
, DHCID
, DNAME
, HINFO
, ISDN
, MX
, NS
, PTR
, RP
, RT
, SRV
, TXT
, WKS
& X25
WINS
, WINSR
& ATMA
.В предполагаемое будущее SSHFP
type, следовательно, будет иметь три параметра в соответствии с RFC4255:
dnscmd /RecordAdd <Zone> <NodeName> SSHFP <Algorithm> <FP type> <Fingerprint>
Если SSHFP
RRType становится доступным, как сказал Эндрю Б., вы должны сначала выполнить два условия:
SSHFP
запись должна быть подписана. В противном случае это никак не улучшит вашу безопасность.EDNS0
расширения включены.Поэтому первый вопрос, который следует задать, - как включить DNSSEC на сервере Windows. Хорошо, что у вас Windows Server 2012 R2, поскольку поддержка в 2008 R2 ограничивалась автономной подписью статических зон и не поддерживала NSEC3
и RSA/SHA-2
.
Поскольку этот вопрос не касался DNSSEC на Windows Server в целом, я оставлю эту довольно практичную статью TechNet в качестве домашнего задания: Пошаговое описание: продемонстрируйте DNSSEC в тестовой лаборатории