Содержание

Подключение к DNS-over-TLS серверу с помощью Unbound в Oracle Linux

Настройка Unbound в качестве локального резолвера в DNS-over-TLS апстрим.

Устанавливаем Unbound:

shell-session

# dnf install unbound

Настраиваем Unbound на DoT Cloudflare — в файл /etc/unbound/conf.d/forward.conf добавляем:

yaml

server:
    tls-system-cert: yes
    prefetch: yes
    serve-expired: yes

forward-zone:
    name: "."
    forward-tls-upstream: yes
    forward-addr: 1.1.1.1@853#one.one.one.one

Если нужна доступность Unbound из локальной сети, то добавляем интерфейс и разрешающие правила:

yaml

server:
    interface: lo
    interface: 10.1.1.1 
    access-control: 10.1.1.0/24 allow

Дополнительно можно настроить удержание соединения активным:

yaml

server:
    edns-tcp-keepalive: yes
    edns-tcp-keepalive-timeout: 60000

На всех адаптерах отключаем получение DNS-серверов по DHCP:

shell-session

# nmcli connection modify eth0 ipv6.ignore-auto-dns yes
# nmcli connection modify eth0 ipv4.ignore-auto-dns yes

Отключаем управление файлом resolve.conf — в файл /etc/NetworkManager/NetworkManager.conf добавляем опцию:

ini

[main]
dns=none

Перезапускаем NetworkManager:

shell-session

# systemctl restart NetworkManager.service

Используем локальный Unbound для разрешения имён — редактируем файл /etc/resolv.conf:

ini

nameserver 127.0.0.1

Запускаем Unbound:

shell-session

# systemctl start unbound

Проверяем:

shell-session

# dig google.com

; <<>> DiG 9.16.23-RH <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19237
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             10      IN      A       142.250.186.110

;; Query time: 522 msec
;; SERVER: ::1#53(::1)
;; WHEN: Thu Jan 25 11:34:38 EST 2024
;; MSG SIZE  rcvd: 55

# tcpdump -nn -i any udp port 53
# tcpdump -nn -i any tcp port 853

Если всё работает, как положено, то включаем автозагрузку:

shell-session

# systemctl enable unbound.service
  1. Unbound by NLnet Labs
  2. A complete tutorial for installing and running unbound on windows
  3. Manually configuring the /etc/resolv.conf file
  4. network manager: how to stop nm updating /etc/resolv.conf
  5. Cloudflare DNS over TLS