DNS over TLS на Debian 10

Main

Оценка: 97.7% - 10 Голосов

Общая

В данной статье будет рассказано как поднять DNS over TLS сервер на Debian 10 внутри локальной сети для обслуживания запросов обычных клиентов.

dot

 

Данная конфигурация поможет скрыть все DNS запросы локальных устройств из локальной сети.

В данной статье используется Unbound — высокопроизводительный, кеширующий и рекурсивный DNS сервер.

Установка сервера

apt update
apt install unbound

Настройка сервера

Создаем дополнительный файл конфигурации 

nano /etc/unbound/unbound.conf.d/dot.conf

И добавляем туда следующую конфигурацию.

server:
 chroot: ""
 logfile: /var/log/unbound/unbound.log
 verbosity: 1
 log-queries: yes
 pidfile: /run/unbound.pid
 username: unbound
 access-control: 192.168.0.0/16 allow
 aggressive-nsec: yes
 cache-max-ttl: 14400
 cache-min-ttl: 1200
 directory: /etc/unbound
 do-ip4: yes
 do-tcp: yes
 hide-identity: yes
 hide-version: yes
 interface: 0.0.0.0
 port: 53
 prefetch: yes
 rrset-roundrobin: yes
 tls-cert-bundle: "/etc/ssl/certs/ca-certificates.crt"
 use-caps-for-id: yes

 num-threads: 8

 msg-cache-slabs: 4
 rrset-cache-slabs: 4
 infra-cache-slabs: 4
 key-cache-slabs: 4

 msg-cache-size: 512M
 rrset-cache-size: 1024M
 key-cache-size: 10m

 # Uncomment. Time to live maximum for RRsets and messages in the cache. Default is 86400 seconds (1 day).
 # cache-max-ttl: 86400

 # Uncomment. Time to live minimum for RRsets and messages in the cache. Default is 0.
 # cache-min-ttl: 0

 outgoing-range: 512

 # Uncomment. The number of queries that every thread will service simultaneously.
 # num-queries-per-thread: 4096

 forward-zone:
 name: "."
 forward-tls-upstream: yes
 forward-addr: 1.0.0.1@853#one.one.one.one
 forward-addr: 1.1.1.1@853#one.one.one.one
 forward-addr: 8.8.4.4@853#dns.google
 forward-addr: 8.8.8.8@853#dns.google
 forward-addr: 9.9.9.9@853#dns9.quad9.net

Проверяем конфигурацию на наличие ошибок:

unbound-checkconf

Перезагружаем службу unbound

service unbound restart

Некоторое описание значений

Параметр num-threads указывает количество потоков

Параметры msg-cache-slabs, rrset-cache-slabsinfra-cache-slabs и key-cache-slabs должны быть установлены степенями двойки, максимально близкими к num-threads.

Параметр outgoing-range указывает количество портов которые могут быть открыты

Параметры msg-cache-size, rrset-cache-size и key-cache-size указывает на объем кэша, при этом rrset-cache-size должен быть в два раза больше msg-cache-size.

Параметр cache-max-ttl указывает максимальное время жизни записи в кэше.

Параметр cache-min-ttl указывает минимальное время жизни записи где по умолчанию стоит 0. Ноль указывает что время жизни записи будет таким-же как установил владелец домена.

Параметр forward-addr указывает адрес пересылки и указывается по принципу ip@порт#публичное_имя. Публичное имя сервера указывается для подтверждения сертификата сервера tls-cert-bundle.

Больше описаний можно найти тут.

Если не работает лог.

Если записей в логе нет, а при запуске unbound в syslog пишется что нет доступа к файлу, то сначала проверьте права на этот файл. Права на запись должны быть выданы группе и пользователю unbound, который создается автоматически при установке сервера.

Если это не помогло то открывает следующий файл:

nano /etc/apparmor.d/local/usr.sbin.unbound

И добавляем одну строку:

/var/log/unbound/unbound.log rw,

Далее перезагружаем apparmor и unbound

apparmor_parser -r /etc/apparmor.d/usr.sbin.unbound
service unbound restart

После чего проверяем логи.

 

  • Просмотров: 10999
Добавить комментарий