systemd-resolved
저는 최근에 가능한 경우 DNSSEC를 활용하기 위해 DNS 확인자를 로 전환했습니다 . 내 구성은 다음과 같습니다
[Resolve]
DNS=8.8.8.8 8.8.4.4
DNSOverTLS=yes
(주석 처리된 기본값 포함 DNSSEC=allow-downgrade
)
DNSSEC 지원 여부에 관계없이 대부분의 사이트에서 모든 것이 잘 작동하는 것 같습니다. 그러나 때때로 해결되지 않는 사이트를 방문했습니다.
$ resolvectl query savannah.gnu.org
savannah.gnu.org: resolve call failed: DNSSEC validation failed: failed-auxiliary
$ resolvectl query keys.mailvelope.com
keys.mailvelope.com: resolve call failed: DNSSEC validation failed: failed-auxiliary
$ resolvectl query d1dkupr86d302v.cloudfront.net
d1dkupr86d302v.cloudfront.net: resolve call failed: DNSSEC validation failed: failed-auxiliary
나는 이것을 통해 이것을 확인하려고 시도했습니다.DNSSEC 분석기(savannah.gnu.org용). 그러나 결과를 이해하기는 어렵습니다. DNSSEC를 활성화하지 않는 다른 도메인과 어떻게 다른지 실제로는 모르겠습니다.
제 질문은: 일반적으로 손상되는 DNSSEC인가요, 아니면 systemd-resolved가 여기서 뭔가 잘못하고 있나요?
답변1
아마도 둘 다일 것입니다. 전반적으로 이전 보고서에 따르면 나는 후자 쪽으로 기울고 싶습니다(어떤 경우에는 systemd-resolved가 너무 엄격함). 하지만,DNSViz에 따르면, 도메인 구성도 모든 검사를 통과하지 못합니다.
또한 특정 DNSSEC 메커니즘에 대해 100% 확신할 수는 없지만 다음과 같이 생각합니다.
savannah.gnu.org
정말 엉망이에요. Systemd-resolved는 도메인 문제를 올바르게 감지하지만 신뢰할 수 없는 정보를 기반으로 도메인을 잘못 거부합니다.
영역
gnu.org.
에는 서명이 있지만 위임에는org.
이를 검증할 키가 포함되어 있지 않으므로 확인자는 해당 서명을 전혀 볼 수 없습니다. 더 이상 신뢰 체인의 일부가 아닙니다. 그러나 systemd-resolved는 어쨌든 이를 확인합니다.이름
savannah.gnu.org.
이 두 곳에 존재하는데, 서로 일치하지 않습니다. 이 문제는 DNSSEC가 없으면 눈에 띄지 않지만 DNSSEC를 사용한 검증은 항상 실패합니다. 그러나 문제 #1로 인해 systemd-resolved가 이를 조용히 무시해야 함에도 불구하고 유효성 검사에 실패합니다.
#2에 대한 자세한 내용:
동일한 네임서버가 서명된 상위 영역 gnu.org.
과 서명되지 않은 하위 영역을 모두 호스팅합니다 savannah.gnu.org.
. 문제는 전자에는 후자에 대한 실제 NS 위임이 부족하다는 것입니다. 대신 이 이름에는 일반 비위임 레코드만 있습니다.
두 영역이 모두 동일한 네임서버에 의해 호스팅되기 때문에 작동하는 일이 발생합니다. 따라서 처음에 "savannah.gnu.org"에서 A 또는 AAAA 레코드를 쿼리할 때 응답은 서명되지 않은 하위 영역에서 자동으로 제공됩니다.
SOA 레코드가 있기 때문에 별도의 영역의 시작임이 분명합니다. 그러나 DNSSEC 유효성 검사기는 이 영역에 서명해야 하는지 여부를 알아야 하므로 DS 레코드(또는 레코드 부족)에 대한 쿼리를 시도하며 이번에는 응답이 항상 상위 영역에서 제공됩니다.
서명되지 않은 하위 영역은 상위 영역에 DS 레코드가 없으면 괜찮습니다. 이는 답변 대신 서명된 NSEC 레코드를 반환하여 이를 증명합니다. NSEC "부존재 증명"은 다음을 나타냅니다.모두이 이름에 대해 존재하거나 존재하지 않는 레코드 유형입니다.
따라서 상위 "gnu.org" 영역에서는 "savannah.gnu.org"에 대한 DS 레코드가 존재하지 않는다고 올바르게 주장하지만...NS 레코드도 존재하지 않습니다.즉, 이름이 하위 영역에 전혀 위임되지 않습니다.(분명히 SSHFP 레코드가 있지만...)
유효성 검사기는 하위 영역에서 왔다는 것을 나타내는 서명되지 않은 원본 답변과 하위 영역이 있음을 나타내는 서명된 증거를 가지고 있으므로아니요하위 영역에 위임하는 경우 유효성 검사가 실패해야 합니다.
org.
...하지만 #1에서 언급한 것처럼 부모-부모 영역은 처음부터 이러한 검사 중 어느 것도 수행해서는 안 됩니다.또한이는 위임이 gnu.org.
서명되지 않았음을 증명합니다. 이는 gnu.org에서 오는 모든 NSEC 기록이 문제가 있음을 의미합니다. Systemd-resolved는 이를 확인해서는 안 됩니다. 전체 gnu.org 영역을 DNSSEC가 없는 것으로 처리해야 합니다.