Настройка DNS сервисов Wive-NG – часть 2 – локальные DNS сервисы, DNSSEC, альтернативные DNS

dnssec

Помимо контент-фильтрации на уровне DNS и блокировки нежелательного контента посредством Adblock, механизм работы которых мы рассмотрели в предыдущей статье, в ПО Wive-NG начиная с ветки 7.8 добавлена поддержка DNSSec, призванного обеспечить защиту от подмены DNS, а также – возможность организовать доступ к ресурсам локальной сети по доменным именам.
Включается и настраивается весь опционал, относящийся к DNS сервисам, в разделе Services → DNS Services (Сервисы →Службы DNS) при условии запущенного DNS Proxy.

Добавление локальных записей DNS

Для обеспечения пользователям доступ к локальным ресурсам и сервисам посредством доменных имён, в разделе DNS Services предусмотрен блок настроек Local DNS Entries. Помимо этого, локальная запись DNS позволяет отказаться от NAT loopback – достаточно для ресурсов, доступных в глобальной сети по определенному доменному имени, создать локальную запись с идентичным доменным именем и локальным IP адресом этого ресурса. Это позволяет разгрузить маршрутизатор и нивелировать риск некорректной работы того же NAT loopback.

local dns at wive-ng-mt

Включение локальных DNS в ПО Wive-NG

Для того, чтобы обеспечить корректную работу локальной записи DNS, необходимо первым делом присвоить постоянный IP адрес (2) MAC адресу (1) устройства (3), для которого мы создаем запись. Сделать это можно в разделе Services → DHCP Server → Static IP address assignment table. При отсутствии статической пары MAC — IP, IP адрес целевого устройства, полученный от DHCP сервера роутера, может измениться, после чего локальная запись DNS станет недействительной.

static MAC IP

Присвоение постоянного IP адреса MAC адресу целевого устройства

Следующим шагом в блоке Add Local DNS Entry следует создать запись, включающую IP адрес (1) (который ранее мы присвоили на постоянной основе ресурсу, к которому обеспечиваем доступ) и доменное имя (2), по которому ресурс будет доступен пользователям локальной сети. Достаточно добавить запись (3) и применить, нажав Apply внизу страницы. Перезагрузка устройства не требуется.

locat dns entry

Добавление локальной DNS записи

После добавления записи, последняя появится в таблице Local DNS Entries. Одновременно с этим целевой ресурс станет доступен по доменному имени.

ping to check local access by domain name

Проверка доступности локального ресурса по доменному имени

Тип сервиса в данном случае роли не играет (это может быть http, samba, и т.д).

Важно: если пользователь пропишет DNS локально на своем устройстве, то доступа к локальным ресурсам по доменным именам, прописанным в качестве локальных DNS на роутере, не будет. Чтобы избежать такой ситуации, достаточно включить опцию «Перенаправлять DNS на локальный сервер»:

redirect to local dns

Включение редиректа всех запросов на локальный DNS

Важно: не забываем, что данные записи – исключительно локальные. То есть, из интернета резолвиться они не будут.

Функционал DNSSEC

Для препятствования атакам, основанным на подмене DNS, в ПО Wive-NG добавлена поддержка DNSSec. Чтобы ее включить, достаточно выставить параметр DNSSec в значение Enable.

Важно: в силу ресурсоёмкости функционал DNSSEC доступен только в сборках Wive-NG для старших моделей (на базе MT7621)

dnssec enable at wive-ng-mt

Включение DNSSec в Wive-NG

Как работает DNSSec:

В основе принципа работы DNSSec лежат цифровые подписи, за счёт которых проверяется подлинность ответов, полученных от DNS серверов. Для понимания нам понадобятся термины:
ZSK – zone signing key — ключ, которым подписывается зона
KSK – key signing key — ключ, которым подписывается набор ключей
Закрытый ключ – с помощью него формируется цифровая подпись
Открытый ключ – с помощью него производится валидация цифровой подписи
В отличии от схемы без DNSSec, при выставленном бите DO (означающем работу DNSSEC) каждая итерация будет возвращать резолверу не только адрес DNS сервера, отвечающего за нижестоящую зону, но еще и DNSKEY — набор открытых ZSK и KSK ключей зоны, подписанный закрытым ключом KSK зоны, а также подписанный с помощью закрытого ZSK зоны хэш KSK (DS-запись) для нижестоящей зоны.
Алгоритм каждой итерации таков: подлинность открытого KSK зоны проверяется путем сравнения хэшей с тем, что получен для этой зоны от вышестоящей на предыдущей итерации. Если подлинность подтверждается, резолвер доверяет открытому ключу KSK и производит валидацию подписи набора ключей (DNSKEY). Если валидация пройдена, резолвер начинает доверять открытому ключу ZSK и с его помощью производит валидацию DS-записи для нижестоящей зоны, получая тем самым хэш KSK, используемый в следующей итерации для валидации ключей нижестоящей зоны. DS-запись для корневой зоны резолвер получает от т.наз. trust_anchor. Схематически, процесс выглядит так:

scheme of dnssec

Принцип работы DNSSec – схематически

Какая-либо ручная настройка для работы DNSSec не требуется — достаточно просто включить данную опцию в web интерфейсе.

Важно: если хотя бы на одном из этапов валидация не будет пройдена, резолвер вернет ошибку servfail. То есть, для корректной работы DNSSEC все клиенты и серверы должны его поддерживать.

Ввиду возрастающей нагрузки на сеть, роста требований к серверным мощностям и хранилищам, и других причин подавляющее большинство операторов не использует на сети DNSSEC. Поэтому для гарантированной корректной работы рекомендуется использовать альтернативные DNS серверы. Добавить новые альтернативные DNS серверы и просмотреть список уже используемых можно в блоке Upstream DNS:

upstream dns for correct dnssec work

Просмотр и добавление альтернативных DNS серверов для корректной работы DNSSec

В этом случае DNSMASQ использует для резолва альтернативные серверы из блока Upstream DNS, в то время как локальные сервисы ПО продолжают использовать провайдерские DNS серверы.

Список публичных DNS серверов, в том числе поддерживающих DNSSec, доступен, например, здесь

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.