TLS 서버의 인증서를 통해 DNS를 검증하도록 언바운드를 구성하는 방법은 무엇입니까?

TLS 서버의 인증서를 통해 DNS를 검증하도록 언바운드를 구성하는 방법은 무엇입니까?

다음 구성을 사용하여 TLS를 통해 DNS를 사용하도록 Unbound를 구성했습니다. 호스트 이름에 대해 업스트림 인증서의 유효성을 검사하도록 Unbound를 구성하려면 어떻게 해야 합니까?

forward-zone:
        name: "."
        forward-addr: 1.1.1.1@853
        forward-addr: 1.0.0.1@853
        forward-addr: 2606:4700:4700::1111@853
        forward-addr: 2606:4700:4700::1001@853
        forward-tls-upstream: yes

답변1

업스트림 DNS 서버의 인증서 유효성 검사를 위한 지원 추가에 대한 버그 보고서가 2018년 4월 19일에 해결되었습니다.

의 예를 적용코멘트 9:

server:
        tls-cert-bundle: "/etc/pki/tls/certs/ca-bundle.crt"
forward-zone:
        name: "."
        forward-addr: 1.1.1.1#cloudflare-dns.com
        forward-addr: 1.0.0.1#cloudflare-dns.com
        forward-addr: 2606:4700:4700::1111#cloudflare-dns.com
        forward-addr: 2606:4700:4700::1001#cloudflare-dns.com
        forward-tls-upstream: yes

작동 방식에 대한 설명도 있습니다. 해시태그 이름을 사용하면 스텁 영역 및 unbound-control 전달 제어 명령에 대해 tls 인증 이름을 설정할 수 있습니다. '@' 및 '#' 주위에는 공백이 없어야 합니다.

답변2

불행히도 그렇게 할 수 없습니다. 이에 대해 해결되지 않은 버그가 있습니다:

전달 구성에서 TLS를 사용하여 바인딩 해제하면 서버의 인증서가 확인되지 않습니다.

따라서 TLS를 통한 언바운드 DNS를 사용하면 요청을 가로챌 수 있습니다.

답변3

"전달 구성에서 TLS를 사용하여 바인딩 해제하면 서버 인증서를 확인하지 않습니다"에 대한 버그는 2018년 4월 19일에 해결되었습니다.

전달자를 위한 TLS 인증.

구문은 전달 주소: [@port][#tls-authentication-name] 이며 ca 번들은 tls-cert-bundle: "ca-bundle.pem"(또는 ca-bundle.crt 파일)을 사용하여 설정할 수 있습니다. ).

예제 서버: tls-cert-bundle: "/etc/pki/tls/certs/ca-bundle.crt" 전달 영역: 이름: "." 전달-tls-업스트림: 예 전달 주소: 9.9.9.9@853#dns.quad9.net 전달 주소: 1.1.1.1@853#cloudflare-dns.com

해시태그 이름 트릭을 사용하면 TLS 인증 이름도 설정할 수 있습니다. 스텁 영역 및 unbound-control 전달 제어 명령을 사용합니다. 코드에서도 더 쉬웠습니다. '@' 및 '#' 주위에는 공백이 없어야 합니다.

TLS 인증 이름을 지정할 때 포트 번호는 [...] 853입니다. (그리고 다른 사람들에게는 여전히 53입니다).

참조:코멘트 9.

관련 정보