AdguardTeam / AdguardTeam/AdGuardHome

DNSSEC not validated for private name servers

Aperta
#6,799 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub
waiting for data
Lingua principale
TypeScript
Stelle
36.9k
Fork
2.5k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

### Prerequisites

- [X] I have checked the [Wiki](https://github.com/AdguardTeam/AdGuardHome/wiki) and [Discussions](https://github.com/AdguardTeam/AdGuardHome/discussions/categories/q-a) and found no answer

- [X] I have searched other issues and found no duplicates

- [X] I want to report a bug and not [ask a question or ask for help](https://github.com/AdguardTeam/AdGuardHome/discussions/categories/q-a)

- [X] I have set up AdGuard Home correctly and [configured clients to use it](https://github.com/AdguardTeam/AdGuardHome/wiki/Clients). (Use the [Discussions](https://github.com/AdguardTeam/AdGuardHome/discussions/categories/q-a) for help with installing and configuring clients.)

### Platform (OS and CPU architecture)

Linux, AMD64 (aka x86_64)

### Installation

GitHub releases or script from README

### Setup

On one machine

### AdGuard Home version

0.107.44

### Action

Execute a dig command:

`root@jupyter:~# dig @10.0.30.2 jupyter.int.XXXXXX.re +dnssec`.

While the IP address 10.0.30.2 is the AdGuardHome DNS server

### Expected result

jupyter.int.XXXXXX.re should have the ad (authenticated data) flag set and should show in AdGuardHome that it has been validated.

### Actual result

Missing AD (Authenticated Data) flag
```
root@jupyter:~# dig @10.0.30.2 jupyter.int.XXXXXX.re +dnssec
; <<>> DiG 9.18.18-0ubuntu0.22.04.2-Ubuntu <<>> @10.0.30.2 jupyter.int.XXXXXX.re +dnssec
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53337
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
;; QUESTION SECTION:
;jupyter.int.XXXXXX.re. IN A

;; ANSWER SECTION:
jupyter.int.XXXXXX.re. 581 IN A 10.0.30.10
jupyter.int.XXXXXX.re. 581 IN RRSIG A 14 4 900 20240313173238 20240303163238 54541 int.XXXXXX.re. holhqxWHHYvBETWQUTeQaBmt0YKR2sBCiHi8QEYoFAwT1qAquvchUNAL KNi0Q2Yd7x+V7YO6SY5wAmib7w4gd7NXNGXB1oyKy/YU9U9fvABkFR1o LfcbjGsb/wiFZ475

;; Query time: 4 msec
;; SERVER: 10.0.30.2#53(10.0.30.2) (UDP)
;; WHEN: Mon Mar 04 19:05:23 CET 2024
;; MSG SIZE rcvd: 207
```

DNSSEC not validated in AdGuardHome

![response](https://github.com/AdguardTeam/AdGuardHome/assets/22398851/33787857-52f6-4456-ba9a-667203fd4dd2)

Running delv for jupyter.int.XXXXXX.re works and validates fine:

```
root@agh01:~# delv jupyter.int.XXXXXX.re +vtrace
;; fetch: jupyter.int.XXXXXX.re/A
;; validating jupyter.int.XXXXXX.re/A: starting
;; validating jupyter.int.XXXXXX.re/A: attempting positive response validation
;; fetch: int.XXXXXX.re/DNSKEY
;; validating int.XXXXXX.re/DNSKEY: starting
;; validating int.XXXXXX.re/DNSKEY: attempting positive response validation
;; fetch: int.XXXXXX.re/DS
;; validating int.XXXXXX.re/DS: starting
;; validating int.XXXXXX.re/DS: attempting positive response validation
;; fetch: XXXXXX.re/DNSKEY
;; validating XXXXXX.re/DNSKEY: starting
;; validating XXXXXX.re/DNSKEY: attempting positive response validation
;; fetch: XXXXXX.re/DS
;; validating XXXXXX.re/DS: starting
;; validating XXXXXX.re/DS: attempting positive response validation
;; fetch: re/DNSKEY
;; validating re/DNSKEY: starting
;; validating re/DNSKEY: attempting positive response validation
;; fetch: re/DS
;; validating re/DS: starting
;; validating re/DS: attempting positive response validation
;; fetch: ./DNSKEY
;; validating ./DNSKEY: starting
;; validating ./DNSKEY: attempting positive response validation
;; validating ./DNSKEY: verify rdataset (keyid=20326): success
;; validating ./DNSKEY: marking as secure (DS)
;; validating re/DS: in fetch_callback_dnskey
;; validating re/DS: keyset with trust secure
;; validating re/DS: resuming validate
;; validating re/DS: verify rdataset (keyid=30903): success
;; validating re/DS: marking as secure, noqname proof not needed
;; validating re/DNSKEY: in fetch_callback_ds
;; validating re/DNSKEY: dsset with trust secure
;; validating re/DNSKEY: verify rdataset (keyid=49754): success
;; validating re/DNSKEY: marking as secure (DS)
;; validating XXXXXX.re/DS: in fetch_callback_dnskey
;; validating XXXXXX.re/DS: keyset with trust secure
;; validating XXXXXX.re/DS: resuming validate
;; validating XXXXXX.re/DS: verify rdataset (keyid=13177): success
;; validating XXXXXX.re/DS: marking as secure, noqname proof not needed
;; validating XXXXXX.re/DNSKEY: in fetch_callback_ds
;; validating XXXXXX.re/DNSKEY: dsset with trust secure
;; validating XXXXXX.re/DNSKEY: verify rdataset (keyid=2371): success
;; validating XXXXXX.re/DNSKEY: marking as secure (DS)
;; validating int.XXXXXX.re/DS: in fetch_callback_dnskey
;; validating int.XXXXXX.re/DS: keyset with trust secure
;; validating int.XXXXXX.re/DS: resuming validate
;; validating int.XXXXXX.re/DS: verify rdataset (keyid=34505): success
;; validating int.XXXXXX.re/DS: marking as secure, noqname proof not needed
;; validating int.XXXXXX.re/DNSKEY: in fetch_callback_ds
;; validating int.XXXXXX.re/DNSKEY: dsset with trust secure
;; validating int.XXXXXX.re/DNSKEY: verify rdataset (keyid=4744): success
;; validating int.XXXXXX.re/DNSKEY: marking as secure (DS)
;; validating jupyter.int.XXXXXX.re/A: in fetch_callback_dnskey
;; validating jupyter.int.XXXXXX.re/A: keyset with trust secure
;; validating jupyter.int.XXXXXX.re/A: resuming validate
;; validating jupyter.int.XXXXXX.re/A: verify rdataset (keyid=54541): success
;; validating jupyter.int.XXXXXX.re/A: marking as secure, noqname proof not needed
; fully validated
jupyter.int.XXXXXX.re. 900 IN A 10.0.30.10
jupyter.int.XXXXXX.re. 900 IN RRSIG A 14 4 900 20240313173238 20240303163238 54541 int.XXXXXX.re. holhqxWHHYvBETWQUTeQaBmt0YKR2sBCiHi8QEYoFAwT1qAquvchUNAL KNi0Q2Yd7x+V7YO6SY5wAmib7w4gd7NXNGXB1oyKy/YU9U9fvABkFR1o LfcbjGsb/wiFZ475

```

### Additional information and/or screenshots

The upstream DNS servers are configured as follows:

```
tls://1.1.1.1
tls://1.0.0.1
[/int.XXXXXX.re/]10.0.50.2 10.0.50.4
```
The nameservers 10.0.50.2 and 10.0.50.4 are internally accessible only.

DNSSEC validation is enabled under DNS Settings in AdGuardHome

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.