Как добавить записи DS, подписанные DNSSEC, в BIND?

все (мой английский не очень хорош, извините.)

Давайте начнем...

Я создал свой собственный DNS-сервер, используя BIND9.

Установлено: bind bind-utils bind-chroot

мой IP-адрес сервера (пример IP): 123.456.789.123

Все работает нормально. (без процессора более 100%), но я продолжаю получать эту ошибку каждый день.

named[17203]: error (chase DS servers) resolving 'example.com/DS/IN': 123.456.789.123#53

Я думаю, это означает, что он не может найти записи DS на моем сайте example.com. Я пытаюсь найти информацию об этой ошибке, и некоторые люди говорят, что я должен отключить dnssec, но почему? Итак, я пытаюсь найти, как исправить эту ошибку, и у меня есть несколько очень хороших сайтов с объяснениями здесь.

https://www.os3.nl/2011-2012/students/maikel_de_boer/cia/dnssec

https://www.crc.id.au/configuring-dnssec-on-el6-and-bind-9/

Я следую всем инструкциям с сайтов выше, и это работает! для меня я получил подпись DNSSEC! и я получил записи DNSKEY и RRSIG.

zone example.com/IN/internal: loaded serial 31125225 (DNSSEC signed)

Но у меня новая проблема! Новая проблема... когда я использую эту команду (пример)

dnssec-signzone -N INCREMENT example.com

Подписанные файлы будут выглядеть следующим образом: "example.com.signed" и "dsset-example.com".

В файле «dsset-example.com». есть записи DS для моего example.com. Но когда я пытаюсь использовать записи DS внутри «dsset-example.com». (Смотрите так)

example.com.       IN DS 64621 5 1 AFF...................FF
example.com.       IN DS 64621 5 2 333EFBC.................5FC5 AG....54S

и вставить в мой файл «example.com.zone», и когда я снова пытаюсь (уволить) dnssec-signzone, я получаю сообщение об ошибке, подобное этому:

dnssec-signzone: fatal: 'example.com': found DS RRset without NS RRset

Я не знаю, как добавить записи DS в файл example.com.zone без ошибки dnssec-signzone. Я думаю, что если я смогу это сделать, то сообщение об ошибке: ошибка (погоня за серверами DS) при разрешении 'example.com/DS/IN' может исчезнуть.

Нужно ли создавать subdimain.example.com для записей DS? Я не знаю наверняка. Итак, если вы, ребята, знаете, как решить эту проблему, пожалуйста, дайте мне знать.

Большое спасибо.

мой: /etc/named.conf

acl "trusted" {
        127.0.0.1;
        123.456.789.123;
};

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { none; }; # I don't have IPv6
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";

        auth-nxdomain no;
        allow-query { localhost; any; };
        recursion no;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";

        check-names master ignore;
};

logging {
        channel default_debug {
                file "data/named.run" size 5m;
                severity dynamic;
                print-time yes;
        };

        category default { default_debug; };
};

include "/etc/rndc.key";

controls {
        inet 127.0.0.1 allow { localhost; }
        keys { "rndc-key"; };
};

view "localhost_resolver" {
        match-clients { localhost; };
        match-destinations { localhost; };
        recursion yes;
        empty-zones-enable yes;

        // all views must contain the root hints zone
        include "/etc/named.root.hints";
        include "/etc/named.rfc1912.zones";
};

view "internal" {
        match-clients { trusted; };     # match hosts in acl "trusted" above
        recursion yes;                  # allow recursive queries
        allow-recursion { trusted; };
        allow-transfer { trusted; };
        notify no;                      # disable AA notifies
        empty-zones-enable yes;

        // all views must contain the root hints zone
        include "/etc/named.root.hints";
        include "/etc/named.domains";
};

view "external" {
        match-clients { any; };
        recursion no;
        allow-transfer { none; };

        // all views must contain the root hints zone
        include "/etc/named.root.hints";
        include "/etc/named.domains";
};

файл /etc/named.root.hints:

// all views must contain the root hints zone
zone "." IN {
        type hint;
        file "named.ca";
};

мой файл /etc/named.domains: (заменен подписанным файлом «example.com.signed»)

zone "example.com" IN {
        type master;
        file "example.com.signed";
        allow-update { none; };
};

мой файл зоны example.com (выглядит так):

$TTL    3h
$ORIGIN example.com.
@  1D                     IN SOA  ns1.example.com.    hostmaster.example.com. (
                                        2011051202      ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1H )            ; minimum
@  3600                   IN NS           ns1.example.com.
; Domain Keys
default._domainkey        IN TXT         ( "v=DKIM1; k=rsa; "
                                           "p=A0GCSq................G/o+Q" )
; NS
example.com.              IN NS           ns1.example.com.
; DNS Records
example.com.              IN A            123.456.789.123
localhost                 IN A            127.0.0.1
ns1                       IN A            123.456.789.123
www                       IN A            123.456.789.123
; DNSSEC KEY FROM Kexample.com.+....key
example.com. IN DNSKEY 256 3 5 CH....................bYd+mARYse.................VCb
example.com. IN DNSKEY 257 3 5 qX....................TYPDIsfso.................cEers

У этого должен быть тег dnssec, но этому сайту нужна репутация более 1500, чтобы создать новый тег. :(


person thegodth    schedule 15.08.2013    source источник


Ответы (1)


Ответ, я думаю: вы не можете. Вы не должны. Предполагается, что записи DS должны быть переданы вашему регистратору домена, и именно они должны их публиковать. Идея состоит в том, что записи DS устанавливают цепочку доверия от самых верхних серверов корневого домена через вашего регистратора до вас. Без цепочки доверия вы могли бы быть... кто знает... каким-нибудь угонщиком, публикующим фальшивую зону, которая просто оказалась подписанной dnssec (и, таким образом, выглядит "легальной").

person Linas    schedule 29.01.2015