Подключение к DNS-over-TLS серверу с помощью Unbound в Oracle Linux
Содержание
Настройка Unbound в качестве локального резолвера в DNS-over-TLS апстрим.
Установка и настройка Unbound
Устанавливаем Unbound:
# dnf install unbound
Настраиваем Unbound на DoT Cloudflare — в файл /etc/unbound/conf.d/forward.conf добавляем:
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 из локальной сети, то добавляем интерфейс и разрешающие правила:
server:
interface: lo
interface: 10.1.1.1
access-control: 10.1.1.0/24 allow
Дополнительно можно настроить удержание соединения активным:
server:
edns-tcp-keepalive: yes
edns-tcp-keepalive-timeout: 60000
Настройка ОС
На всех адаптерах отключаем получение DNS-серверов по DHCP:
# nmcli connection modify eth0 ipv6.ignore-auto-dns yes
# nmcli connection modify eth0 ipv4.ignore-auto-dns yes
Отключаем управление файлом resolve.conf — в файл /etc/NetworkManager/NetworkManager.conf добавляем опцию:
[main]
dns=none
Перезапускаем NetworkManager:
# systemctl restart NetworkManager.service
Используем локальный Unbound для разрешения имён — редактируем файл /etc/resolv.conf:
nameserver 127.0.0.1
Проверка
Запускаем Unbound:
# systemctl start unbound
Проверяем:
# 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
Если всё работает, как положено, то включаем автозагрузку:
# systemctl enable unbound.service