1 (edytowany przez tymmej 2018-05-20 15:32:39)

Temat: DNS over TLS

Udało uruchomić się unbound + stubby jako serwer DNS, bez dnsmasq.

Mini how-to:

Bazowałem na:
https://forum.lede-project.org/t/adding … ound/13765
https://openwrt.org/docs/guide-user/ser … ns/unbound
https://blog.grobox.de/2018/what-is-dns … r-openwrt/

1) Instalacja unbound, unbound-anchor, stubby i getdns przez opkg:
opkg install unbound unbound-achor stubby getdns
2) Wyłączenie DNS w dnsmasq:
a) w /etc/config/dhcp w sekcji dnsmasq usunąć wszystko i dopisać port równy 0:

config dnsmasq
        option port '0'

b) jak dnsmasq nie jest serwerem DNS to klienci nie wiedzą kto jest serwerem DNS
W sekcji lan (i innych jak są) dodać:

list dhcp_option '6,192.168.1.1'

3) Wygenerowanie pliku root.key dla unbound:

unbound-anchor -a "/etc/unbound/root.key"

4) Konfiguracja unbound:
W pierwszym linku zmieniają bardzo dużo parametrów, szczególnie w serwerze. Nie rozumiem ich - nie ruszam.
a) plik /etc/unbound/unbound_ext.conf

forward-zone:
        name: "."
        forward-addr: 127.0.0.1@5354

5354 jest numerem portu na którym jest uruchomiony stubby
b) plik /etc/unbound/unbound_srv.conf

do-tcp: yes
prefetch: yes
qname-minimisation: yes
rrset-roundrobin: yes
use-caps-for-id: yes

c) plik /etc/config/unbound:
parę zmian:
i) option dhcp_link 'dnsmasq'
ii) option query_minimize '1'
iii) option validator '1'
iv) list domain_insecure 'openwrt.pool.ntp.org'
5) Konfiguracja stubby:

resolution_type: GETDNS_RESOLUTION_STUB

dns_transport_list:
  - GETDNS_TRANSPORT_TLS

dnssec_return_status: GETDNS_EXTENSION_TRUE

dnssec_trust_anchors: "/etc/unbound/root.key"

tls_authentication: GETDNS_AUTHENTICATION_REQUIRED

tls_query_padding_blocksize: 256

edns_client_subnet_private : 1

round_robin_upstreams: 1

idle_timeout: 10000

listen_addresses:
  - 127.0.0.1@5354

upstream_recursive_servers:
    - address_data: 1.1.1.1
      tls_auth_name: "cloudflare-dns.com"

Restart zmienionych usług i powinno działać.
Flaga ad wskazuje na działanie DNSSEC.

╰─ dig com. SOA +dnssec

; <<>> DiG 9.10.6 <<>> com. SOA +dnssec
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42293
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1280
;; QUESTION SECTION:
;com.                           IN      SOA

;; ANSWER SECTION:
com.                    460     IN      SOA     a.gtld-servers.net. nstld.verisign-grs.com. 1526824984 1800 900 604800 86400
com.                    460     IN      RRSIG   SOA 8 1 900 20180527140304 20180520125304 36707 com. sacN7Afl5GjCXr2p2LMNFAagM8wmdofadJboQLSSOeHnOqgQCCHBdBec AHGjIwPq3d/wORCNhQrahDMesb2Tbx7OfkLKnvA8lX722KiUmkvpbDA2 j8ipiTVzv2XqoWFgiQG5Q0T49THvbGwWYUy3HH+uDxRLAVVjKIl8mfTS zlQ=

;; Query time: 97 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sun May 20 16:10:40 CEST 2018
;; MSG SIZE  rcvd: 268