BIND9 전달자와 함께 DNS-over-TLS를 사용하는 방법

BIND9 전달자와 함께 DNS-over-TLS를 사용하는 방법

BIND9 v9.18은 DNS-over-TLS(DoT) 및 DNS-over-HTTPS(DoH)에 대한 지원을 개선합니다. 그러나 비록 ~ 일지라도문서서버 측에서 TLS를 사용하는 방법을 설명하지만 쿼리 전달을 위해 DNS-over-TLS를 활성화하는 방법은 밝히지 않습니다. BIND9 v9.18이 지원되나요?

리피터와 함께 DoT를 사용하려면 구성 조각을 어떻게 조정해야 합니까?

options {
        […]
        forwarders {
                // Forward to Cloudflare public DNS resolver
                1.1.1.1;
                1.0.0.1;
        };
        […]
}

단지 추가 port 853하고 마법이 일어나기를 기대하는 것만으로는 충분하지 않은 것 같습니다.

답변1

이것은 DNS-over-TLS를 통한 BIND9 전달 구성에 대한 Google의 가장 인기 있는 기사이므로 BIND 9.19.13에서 OpenDNS에 대한 연결을 구성하고 테스트한 방법은 다음과 같습니다.

named.conf.dotin을 만들고 /etc/bind/include를 통해 참조했지만 쉽게 직접 추가할 수 있습니다.named.conf

tls OpenDNS-DoT {
    ca-file "/etc/ssl/certs/IdenTrust_Commercial_Root_CA_1.pem";
    remote-hostname "dns.opendns.com";
};

    options {

    forwarders port 853 tls OpenDNS-DoT {

            // OpenDNS public
            208.67.222.222;
            208.67.220.220;
    };

};

ISC의 Aram에 따르면,이 기능다음 안정 버전 9.20에 포함될 예정입니다.

답변2

문서forwarders명령문 구문이 확장되었음을 나타냅니다.도착하다:

forwarders [ port <integer> ] [ tls <string> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ tls <string> ]; ... };

tls <string>섹션은 별도의 tls명령문 블록을 참조합니다.

나는 이것을 테스트하지 않았지만 문서에 따르면 다음과 같은 코드 조각이 필요할 수 있습니다.

tls cloudflare-DoT {
    ca-file "/some/where/ca-certs-applicable-for-cloudflare.pem";
    // currently Cloudflare uses "DigiCert TLS Hybrid ECC SHA384 2020 CA1" as CA
    dhparam-file "/some/where/dhparam.pem";
    remote-hostname "one.one.one.one";
    ciphers "HIGH:!kRSA:!aNULL:!eNULL:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!SHA1:!SHA256:!SHA384"; // or whatever you consider acceptable
    prefer-server-ciphers yes;
    session-tickets no;
};
options {
    forwarders port 853 tls cloudflare-DoT {
        1.1.1.1;
        1.0.0.1; //yes, this also returns a certificate with hostname "one.one.one.one".
    };
};

dhparam.pem파일은 다음을 통해 생성할 수 있습니다.

openssl dhparam -out /path/to/dhparam.pem <3072_or_4096>

관련 정보