Unbound dns настройка виндовс

Обновлено: 01.07.2024

Для обеспечения безопасности и надежности интернет-соединения, а также для бесперебойного доступа к веб-сайтам, социальным сетям и онлайн-сервисам, можно использовать сторонние DNS-серверы, которые работают на первом рубеже доступа к сети Интернет.

Популярные DNS-серверы представлены на нашем сайте в разделе Безопасные DNS-сервисы. Чаще всего настройка DNS помогает эффективнее работать VPN и прокси, обеспечивая более высокий уровень защиты вашей конфиденциальности и анонимности.

Предлагаем вашему вниманию подробные инструкции, как настроить DNS на компьютере с операционными системами Windows 10, 8.1, 8, 7, Vista и XP.

Настройка DNS с помощью DNS Jumper

DNS Jumper – удобный портативный инструмент для быстрого переключения DNS на вашем компьютере. Утилита работает со следующими операционными системами: Windows 10, 8.1, 8, 7, Vista, XP и не требует дополнительных настроек в системе.

Запустите утилиту, выберите в списке DNS сервер предпочтительный сервер (например, Google Public DNS) и нажмите кнопку Применить DNS.

Центр управления сетями и общим доступом в Windows 10

Настройка DNS с помощью YogaDNS

YogaDNS — это DNS клиент, который перехватывает DNS-запросы на системном уровне и позволяет обрабатывать их через определенные пользователем DNS-серверы с использованием заданных протоколов и гибких правил.

YogaDNS

Настройка DNS в Windows 10, 8.1, 8

1. Чтобы открыть Центр управления сетями и общим доступом (также доступен в меню Панель управления > Сеть и Интернет), нажмите сочетание клавиш Windows + R и в окне «Выполнить» введите следующую команду и нажмите ОК:

2. В разделе Просмотр основных сведений о сети и настройка подключений, выберите пункт сеть для Подключения.

3. В открывшемся окне выберите пункт Свойства.

Состояние сети

4. В окне свойств подключения в списке Отмеченные компоненты используются этим подключением выберите пункт IP версии 4 (TCP/IPv4) в Windows 10 или Протокол Интернета версии 4 (TCP/IP) и нажмите кнопку Свойства.

Протокол Интернета версии 4 (TCP/IP)

5. В открывшемся окне на вкладке Общие выберите пункт Использовать следующие адреса DNS-серверов.

Использовать следующие адреса DNS-серверов

6. Введите выбранные вами адреcа DNS, например Comss.one DNS или Google DNS, в поля Предпочитаемый DNS-cepвep и Альтернативный DNS-cepвep (в зависимости от выбранного сервиса поле может оставаться пустым).

7. Поставьте галочку для Подтвердить параметры при выходе и нажмите OK, чтобы сохранить изменения.

Обновите DNS-кэш следующим образом:

  • Нажмите правой кнопкой мыши по значку Windows (меню Пуск) и выберите Командная строка (администратор) или Windows PowerShell (администратор)
  • Введите команду ipconfig /flushdns и нажмите клавишу Enter (Ввод)
  • Сделайте перезагрузку компьютера.

Обновите DNS-кэш в Windows 10

Настройка DNS в Windows 7

1. Нажмите правой кнопкой мыши на значок интернета в трее, выберите Центр управления сетями и общим доступом.

Центр управления сетями и общим доступом в Windows 7

2. В разделе Просмотр активных сетей, выберите пункт справа от Подключения:

Подключения

3. На вкладке Общие в окне Состояние Подключения нажмите кнопку Свойства.

Состояние Подключения

4. На вкладке Сеть окна свойства подключения, прокрутите вниз и выберите Протокол Интернета версии 4 (TCP/IPv4), нажмите кнопку Свойства.

Протокол Интернета версии 4 (TCP/IPv4)

5. На вкладке "Общие" окна Свойства, в нижней части, выберите Использовать следующие адреса DNS-серверов, а затем введите IP-адреса выбранного DNS-сервиса, например, Google DNS.

Использовать следующие адреса DNS-серверов

6. Поставьте галочку для Подтвердить параметры при выходе и нажмите OK, чтобы сохранить изменения.

Unbound это удостоверяющий, рекурсивный и кеширующий DNS сервер. Согласно Википедии:

Unbound вытеснил Berkeley Internet Name Domain (BIND) став стандартом как именной сервер в множестве open source проектах, в которых рассматриваются такие преимущества как маленький размер, современность и безопасность.

Contents

Установка

Настройка

Стандартные настройки уже находятся в файле /etc/unbound/unbound.conf . Следующие разделы освещают различные настройки для файла конфигурации. Подробности и другие настройки смотреть в unbound.conf(5) .

Если не указано другое, все нижеописанные опции находятся в секции server конфигурационного файла таким образом:

Локальный DNS сервер

Если вы хотите использовать unbound как ваш локальный DNS сервер, установите в строке nameserver loopback адреса 127.0.0.1 и ::1 :

Совет: Простейший способ сделать это, установить Openresolv (Русский) и настроить /etc/resolvconf.conf данным образом:

Затем выполнить resolvconf -u чтобы сгенерировать /etc/resolv.conf .

При проверке, удостоверьтесь, что используемый сервер имеет адрес 127.0.0.1 или ::1 после применения изменений в resolv.conf.

Корневые подсказки (Root hints)

Для рекурсивных запросов хоста который не имеет требуемого адреса в кеше, вашему DNS серверу нужно знать адреса корневых DNS серверов, у которых он будет запрашивать адреса DNS серверов доменов верхнего уровня и далее по цепочке, пока не будет достигнут именной сервер, обслуживающий запрашиваемый домен. Для этого требуются корневые подсказки (Root hints), файл содержащий в себе IP адреса корневых DNS серверов. Unbound имеет встроенные корневые подсказки, и если он обновляется регулярно, вмешательства не требуется. С другой стороны хорошей практикой является самостоятельное сопровождение корневых подсказок, так как встроенные могут потерять актуальность.

Для начала укажите unbound путь к файлу root.hints :

Затем, поместите файл root.hints в директорию unbound. Простой способ сделать это можно этой командой:

Проверка достоверности DNSSEC

Для того, чтобы проверять достоверность домена с помощью DNSSEC, в файле конфигурации требуется указать путь файла trust anchor:

Эта опция включена по умолчанию[1]. /etc/unbound/trusted-key.key копируется из файла /etc/trusted-key.key , предоставленного зависимостью dnssec-anchors , которой PKGBUILD (Русский) генерирует этот файл, подробнее unbound-anchor(8) .

Примечание: Проверка DNSSEC увеличивает задержку DNS запросов, которые еще не были кешированы.

Тестирование работоспособности

Для проверки работоспособности DNSSEC, после запуска службы unbound.service выполните:

В ответе должен быть IP адрес и (secure) после него.

Этот ответ должен содержать (BOGUS (security failure)) .

Так же вы можете использовать drill для проверки вашего сервера следующими командами:

Первая команда должна в переменной rcode выдать SERVFAIL . Вторая команда должна выдать NOERROR .

Переадресация запросов

Доступ локальной сети к DNS

Используя openresolv

Если ваш сетевой менеджер поддерживает Openresolv (Русский), вы можете настроить его для предоставления доступа локальных DNS серверов и доменов к Unbound:

Выполните resolvconf -u для внесения изменений.

Вы также можете выключить проверку достоверности DNSSEC для локальных доменов, так как они не могут подтвердить свою достоверность (подробнее RFC 6762 Appendix G):

Вы можете добавить эти строки в ваш конфигурационный файл для исключения всего диапазона частных адресов:

Добавить локальный DNS сервер

Для использования локального DNS сервер для прямого и обратного поиска локальных адресов добавьте нужные зоны как показано ниже (выберите нужный IP адрес DNS сервера локальной сети вместо адреса 10.0.0.1 указанного ниже):

Данные строки необходима для работы обратного поиска.

Примечание: В отличии от зон переадресации (forward-zone), зоны заглушки(stub-zone) будут работать только если они указывают на авторитетный сервер напрямую. Например на BIND сервер если он настроен как авторитетный, но если вы укажите для зоны заглушки, например unbound сервер который переадресует локальные запросы на другой DNS сервер, то работать это не будет и самое главное вы не получите никаких ошибок.

Вы так же можете добавить localhost для переадресации и обратного поиска с помощью следующих строк:

Переадресация остальных запросов

Используя openresolv

Если ваш сетевой менеджер поддерживает Openresolv (Русский), вы можете настроить его для предоставления внешних DNS серверов для Unbound:

Выполните resolvconf -u для внесения изменений.

Затем настройте Unbound для чтения сгенерированного openresolv файла[3]:

Ручное указание DNS серверов

Для использования серверов для стандартных зон переадресации, которые находятся за пределами локальной машины и сети, добавьте зону переадресации с именем . в ваш конфигурационный файл. В этом примере все запросы переадресуются на DNS сервера Google:

Переадресация через DNS over TLS

Для использования DNS over TLS необходимо указать параметру tls-cert-bundle путь до системного корневого набора сертификатов, что позволит Unbound переадресовывать TLS запросы и использовать сервера с технологией DNS over TLS .

Контроль доступа

Вы можете указать интерфейсы, на которые будет отвечать сервер с помощью IP адреса. По умолчанию принимает запросы только от localhost.

Для прослушивания всех интерфейсов, используйте следующую строку:

Для определения доступа к серверу определенным IP адресам используйте опцию access-control :

действие может быть одним из: deny (игнорирует запросы), refuse (отвечает ошибкой), allow (разрешает рекурсивные запросы), allow_snoop (разрешает рекурсивные и остальные запросы) По умолчанию игнорируются все запросы, кроме от localhost.

Использование

Запуск Unbound

Запустите и включите службу unbound.service .

Удаленное управление Unbound

В составе unbound присутствует утилита unbound-control которая позволяет удаленно контролировать сервер unbound. Команды схожи с pdnsd-ctl пакета pdnsd .

Настройка unbound-control

Перед тем, как начать, необходимо выполнить следующие шаги:

1) Для начала выполните следующую команду

которая сгенерирует пару самоподписанных сертификатов и ключей для сервера и клиента. Они будут находится в директории /etc/unbound .

2) После, отредактируйте /etc/unbound/unbound.conf используя следующий пример. Опция control-enable: yes обязательная, остальное можете настроить как необходимо вам.

Использование unbound-control

Список команд, которые вы можете использовать для unbound-control:

  • выводит статистику не сбрасывая ее
  • выводит кеш в стандартный вывод
  • Очищает кеш и перезагружает настройки

Обратитесь к unbound-control(8) для подробностей и поддерживаемых команд.

Советы и приёмы

Черный список доменов

Для добавления домена в черный список, используйте строку local-zone: "домен" always_refuse .

Сохраните черный список как отдельный файл (например /etc/unbound/blacklist.conf ) для удобности и включите его в файл конфигурации /etc/unbound/unbound.conf , например:

Использование вместе с авторитетный DNS сервером

Важно: Использование двух DNS серверов вместо одного по своей сути не делает систему более безопасной, как описано ниже. Это тема для спора о безопасности использования определенных приложений (в частности BIND) и решений (использующих BIND) затронутых в этом разделе.

Для пользователей, которые желают иметь подтверждающий, рекурсивный и кеширующий DNS сервер вместе с авторитетным на одной машине, может быть полезно обратиться к странице NSD в которой описан пример такой конфигурации. Наличие одного сервера как авторитетный и отдельного для выполнения подтверждения, рекурсии и кеширования повышает уровень безопасности по отношению к единому DNS серверу выполняющему эти функции. Многие пользователи используют Bind в этом случае как единый DNS сервер, и пример для миграции на комбинацию Bind и NDS серверов предоставлен на странице NSD.

Доступ к DNS серверу через WAN интерфейс

Вы можете поменять настройки и прослушиваемые интерфейсы для нужного сервера, чтобы машины за пределами локальной сети могли получить доступ к определенным машинам внутри локальной сети. Это будет полезно для различных веб-сервисов которым нужен доступ извне. Похожий способ использовался с помощью сервера bind в комбинации с использованием перенаправления портов на машинах принимающих запросы для переадресации запросов на нужные машины.

Служба systemd для обновления корневых подсказок

Запустите и включите службу roothints.timer .

Решение проблем

Определение нужного количества потоков (num-threads)

В странице man руководства для unbound.conf говорится:

и другие источники предполагают, что параметр num-threads должен быть равен количеству ядер процессора. Пример конфигурации в > имеет:

Тем не менее невозможно установить количество потоков больше 1 в строке num-threads без вызывания предупреждений в логах от unbound о превышении количества файлов-дескрипторов. На самом деле для пользователей, использующих unbound для небольших сетей или на одной системе, нет необходимости стремится к увеличению производительности путем включения многопоточности параметром num-threads . Но если вы все таки желаете это сделать, рекомендуется обратиться к официальной документации и выбрать подходящие параметры:

Установите num-threads равное количеству ядер процессора в вашей системе. Например для систем с 4 физическими ядрами поддерживающих гиперпоточность (hyper-threading) используйте 8.

Установите параметр outgoing-range насколько можно большим, смотрите упомянутую выше страницу каким можно преодолеть лимит в 1024 . Это позволяет обслуживать большее количество клиентов в единицу времени. Для одного ядра попробуйте 950 , для двух 450 , для четырех 200 . Параметр num-queries-per-thread лучше всего установить в половину от велечины outgoing-range .

Потому как ограничение outgoing-range также ограничивает num-queries-per-thread , лучше всего использовать unbound вместе с библиотекой libevent , тогда не будет ограничения в 1024 параметра outgoing-range . Если вам нужен DNS сервер для большой нагрузки, вам потребуется скомпилировать собственный экземпляр, вместо использования unbound из репозиториев.

В релизе FreeBSD 10.0 DNS-сервер BIND заменен на связку из кеширующего DNS-сервера Unbound и библиотеки LDNS. Разбираясь с нововведениями, решил заодно ознакомиться и с настройкой Unbound.

Итак, приступим к настройке. Поиск примера конфигурационного файла в только установленной системе результатов не дал. Однако на помощь пришла утилита unbound-checkconf:

Конфигурационный файл unbound.conf должен находиться в каталоге /var/unbound. С доступными опциями решил ознакомиться на страницах руководства man unbound.conf. Как оказалось, пример конфигурационного файла был предложен именно там. Попробуем собрать небольшой файл конфигурации, отталкиваясь от предложеного примера и доступных опций.

После создания конфигурационного файла проверим конфигурацию с помощью уже известной утилиты unbound-checkconf:

Кажется все в порядке. Добавим загрузку демона при старте системы:

Проверим, запустился ли процесс:

Демон запущен. Проверим, обрабатывает ли он запросы:

;; ANSWER SECTION:
ex.ua. 352 IN A 77.120.115.184

;; Query time: 0 msec
;; SERVER: 127.0.0.1
;; WHEN: Tue Jan 13 21:26:59 2015
;; MSG SIZE rcvd: 294

Клиентские запросы обрабатываются. Отлично, продолжим настройку. Следующий шаг - настройка утилиты unbound-control на работу с unbound. Для этого воспользуемся прилагаемой утилитой unbound-control-setup:

После этого необходимо добавить следующий блок в конфигурационный файл unbound.conf:

remote-control:
control-enable: yes
control-interface: 127.0.0.1
control-port: 953
server-key-file: "unbound_server.key"
server-cert-file: "unbound_server.pem"
control-key-file: "unbound_control.key"
control-cert-file: "unbound_control.pem"

Чтобы изменения вступили в силу, необходимо перезапустить unbound:

Чтобы ознакомиться с возможностями утилиты unbound-control, достаточно вызвать ее без ключей, либо же с ключем -h:

Здесь, благодаря комментариям, все интуитивно понятно
Проверим работоспособность утилиты, отправив какую либо команду в unbound-control, например reload:

Unbound логотип

В релизе FreeBSD 10.0 DNS-сервер BIND заменен на связку из кеширующего DNS-сервера Unbound и библиотеки LDNS. Разбираясь с нововведениями, решил заодно ознакомиться и с настройкой Unbound.

Unbound распространяется под лицензией BSD, имеет модульную структуру и поддерживает работу резолвера в рекурсивном и кэширующем режиме. Во время работы сервера, кеш целиком распологается в памяти. Также имеется возможность проверки валидности DNSSEC-сигнатур, асинхронных запросов и библиотеки для интеграции кода резолвера в пользовательские приложения (stub-resolvers). Вначале прототип сервера был написан на языке Java, после чего был переписан на языке Си, что позволило значительно увеличить его производительность. По сравнению с BIND, стоит отметить скромные размеры и высокую производительность.

Итак, приступим к настройке. Поиск примера конфигурационного файла в только установленной системе результатов не дал. Однако на помощь пришла утилита unbound-checkconf:

Конфигурационный файл unbound.conf должен находиться в каталоге /var/unbound. С доступными опциями решил ознакомиться на страницах руководства man unbound.conf. Как оказалось, пример конфигурационного файла был предложен именно там. Попробуем собрать небольшой файл конфигурации, отталкиваясь от предложеного примера и доступных опций.

После создания конфигурационного файла проверим конфигурацию с помощью уже известной утилиты unbound-checkconf:

Кажется все в порядке. Добавим загрузку демона при старте системы:

Кажется ничего не пропустили. Даем команду на запуск:

Проверим, запустился ли процесс:

Демон запущен. Проверим, обрабатывает ли он запросы:

;; ANSWER SECTION:
muff.kiev.ua. 3427 IN A 91.196.100.50

;; Query time: 0 msec
;; SERVER: 127.0.0.1
;; WHEN: Tue Mar 4 01:43:24 2014
;; MSG SIZE rcvd: 46

Клиентские запросы обрабатываются. Отлично, продолжим настройку.

Следующий шаг - настройка утилиты unbound-control на работу с unbound. Для этого воспользуемся прилагаемой утилитой unbound-control-setup:

После этого необходимо добавить следующий блок в конфигурационный файл unbound.conf:

remote-control:
control-enable: yes
control-interface: 127.0.0.1
control-port: 953
server-key-file: "unbound_server.key"
server-cert-file: "unbound_server.pem"
control-key-file: "unbound_control.key"
control-cert-file: "unbound_control.pem"

Чтобы изменения вступили в силу, необходимо перезапустить unbound:

Чтобы ознакомиться с возможностями утилиты unbound-control, достаточно вызвать ее без ключей, либо же с ключем -h:

Здесь, благодаря комментариям, все интуитивно понятно

Проверим работоспособность утилиты, отправив какую либо команду в unbound-control, например reload:

Поддерживается возможность управления удаленным сервером unbound, используя локальную версию утилиты unbound-control. Для этого необходимо, чтобы на машине, с которой выполняются команды, публичные pem-ключи удаленного сервера. Также необходимо, чтобы эти ключи были прописаны в конфигурационном файле unbound.conf.

Также unbound поддерживает использование DNSSEC. Рассматривать что такое DNSSEC и принципы его работы не вижу смысла - информации в Сети предостаточно. Остановимся непосредственно на настройке unbound для поддержки DNSSEC.

Для включения поддержки DNSSEC, в конфигурационный файл unbound.conf (в секцию server) необходимо добавить следующие строки:

module-config: "validator iterator"
auto-trust-anchor-file: "/var/unbound/root.key"

После внесения изменений необходимо перезапустить unbound, чтобы изменения вступили в силу:

Проверим поддержку DNSSEC:

;; Query time: 0 msec
;; EDNS: version 0; flags: do ; udp: 4096
;; SERVER: 127.0.0.1
;; WHEN: Wed Mar 12 16:37:19 2014
;; MSG SIZE rcvd: 446

Ну и на всякий случай - проверим поддержку DNSSEC непосредственно в браузере. С целью проверки установим для Firefox плагин DNSSEC Validator. Результат - на картинке внизу:

DNSSEC

Базовая настройка Unbound закончена, однако есть еще много опций конфигурации, ознакомиться с которыми можно в man unbound.conf.

И где в unbound.conf прописывать список dns провайдера(Аналог секции forwardes<> в named)?

Да, относительно интерфейсов - все правильно.

Относительно форварда запросов - попробуйте в конец файла добавить такую секцию:

forward-zone: name: "."
forward-addr: 8.8.8.8
forward-addr: 8.8.4.4

Сейчас немного занят, нету возможности протестировать. Должно работать.

В настоящий момент ни в версии unbound для linux ни в версии для windows нет команды drill. Есть какой-то другой способ проверить работоспособность dnssec?

Читайте также: