Dns сервер linux для локальной сети

Установка и настройка bind на Ubuntu

Для примера, используется Ubuntu Server 16.04 LTS. Инструкция во многом подойдет для дистрибутивов Linux, основанных на Debian.

Подготовка системы

Если в системе настроен брандмауэр, добавляем правило на разрешение входящих пакетов на 53 UDP-порт:

iptables -I INPUT 1 -p udp —dport 53 -j ACCEPT

* данной командой мы вставляем первое правило на разрешение 53 порта по протоколу UDP.

Установка и запуск

Устанавливаем DNS-сервер следующей командой:

apt-get install bind9 dnsutils

Добавляем сервис в автозапуск:

systemctl enable bind9

* или для старых систем, где нет systemd update-rc.d bind9 defaults.

systemctl start bind9

* или service bind9 start.

Проверяем, что сервис работает:

nslookup dmosk.ru 127.0.0.1

Получаем, что-то на подобие:

Server: 127.0.0.1
Address: 127.0.0.1#53

Non-authoritative answer:
Name: dmosk.ru
Address: 90.156.242.197

Базовая настройка

Основной конфигурационный файл находится по пути /etc/bind/named.conf. В последних версиях bind в нем ничего не настраивается, а используются подключаемые файлы.

По умолчанию, сервер разрешает только локальные запросы. Чтобы разрешить обращаться к серверу, открываем конфигурационный файл:

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

* в данном примере будут разрешены запросы для всех клиентов (внутренних и внешних). Вместо any можно прописать конкретные сети или IP-адреса.

Если необходимо настроить сервер только для локальной сети, настройка будет следующей:

* где 192.168.0.0/24 — используемая локальная сеть.

Если необходимо перенаправлять запросы на определенный сервер DNS, добавляем строку:

* в данном примере запросы будут перенаправляться на сервер 77.88.8.8 и если они не будут обработаны — на 8.8.8.8.

systemctl restart bind9

* или service bind9 restart.

На этом базовая настройка закончена. Наш сервер готов принимать и отдавать запросы и работать, как кэширующий dns.

Проверить его работу можно с удаленного компьютера Windows или Linux командой:

nslookup ubuntu.com 192.168.0.15

* где 192.168.0.15 — адрес сервера в локальной сети.

Создание и настройка зон

Если необходимо, чтобы bind разрешал записи для собственного домена, необходимо создать соответствующую зону.

Источник

Установка и настройка DNS-сервера BIND в Linux

BIND – наиболее распространенное open-source приложение, в котором реализованы протоколы DNS, предоставляющие возможность преобразования доменных имен в IP-адреса и наоборот.

Данная статья представляет собой руководство по быстрой настройке DNS-сервера в Linux при помощи BIND. Мы не будем подробно разбирать, что такое система DNS и как она работает, а сосредоточимся на примере настройки своей зоны и файла конфигурации для домена/узла с поддержкой сервисов www и электронной почты.

В нашем примере мы будем использовать следующие параметры:
IP-адрес, на котором будет установлен сервер имен: 172.31.0.122
имя домена/узла: itproffi.ru
авторитативные сервера имен для зоны itproffi.ru: ns1.itproffi.ru (172.31.1.10) и ns2. itproffi.ru (172.31.1.11)
службы www и электронной почты для itproffi.ru будут использовать адрес 172.31.1.10

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

Установка bind очень проста – нужно воспользоваться менеджером пакетов. В Debian и Ubuntu выполните следующую команду:

В CentOS или Fedora:

Пакет dnsutils необязателен для запуска сервера bind, но для тестирования конфигурации мы будем пользоваться командой dig из этого пакета.

Создание файла зоны DNS

Дальнейшие примеры будут для Ubuntu/Debian, но также подходят и для Centos/RedHat, только директория с настройками зон в CentOS будет находиться в /etc/named/ , а основной файл конфигурации /etc/named.conf . Для начала нам потребуется создать новый файл зоны для домена itproffi.ru. Перейдите в директорию /etc/bind/ . создайте в ней поддиректорию zones/master/ и перейдите в нее, выполнив следующую последовательность команд:

Читайте также:  Восстановление реестра через командную строку windows

Директория /etc/bind/zones/master будет содержать файл зоны для домена itproffi.ru. При желании можно использовать другую директорию. Файл зоны db.itproffi.ru будет содержать запись DNS, которая поможет серверу имен установить соответствие полного доменного имени IP-адресу. Создайте этот файл со следующим содержимым:

Рассмотрим ключевые строки этого файла:

  • Запись SOA: авторитативный сервер имен для itproffi.ru – это ns1.itproffi.ru, адрес ответственного за зону DNS администратора – admin@itproffi.ru
  • Записи NS: два сервера имен для зоны itproffi.ru – ns[1,2].itproffi.ru
  • Запись MX: почтовый сервер для itproffi.ru. Число 10 означает уровень приоритета
  • Записи A: A означает «адрес» (address). Другими словами, ns1 в зоне itproffi.ru будет иметь адрес 172.31.1.10
  • Запись CNAME (Canonical Name – каноническое имя): привязывает одно доменное имя к другому (каноническому), например, устанавливает соответствие mail.itproffi.ru и itproffi.ru.

Настройка обратной зоны

На данном этапе DNS-сервер bind может выдать IP-адрес, связанный с узлом itproffi.ru. Теперь нам нужно научить наш сервер имен обратному процессу, то есть устанавливать соответствие имени IP-адресу. Для этого создадим еще один файл db.172.31.1 со следующим содержимым:

Запись PTR: DNS-запись, используемая для определения соответствия IP-адреса имени узла.

Настройка файла конфигурации bind

На данный момент у нас должно быть два файла:

Теперь требуется вставить имена обоих файлов зоны в файл конфигурации bind /etc/bind/named.conf.local . Для этого добавьте в файл следующие строки:

Последний момент перед проверкой конфигурации – внести в файл named.conf.options IP-адрес стабильного DNS-сервера. Он будет использоваться, если локальный DNS-сервер не будет знать ответ на запрос разрешения имени. Часто этот адрес предоставляется интернет-провайдером, но если вы поклонник Google, можно указать адрес 8.8.8.8 или 8.8.4.4.

Замените следующий блок текста в файле named.conf.options:

на блок текста с адресом стабильного DNS-сервера

Если вы планируйте что к вашему серверу будут подключаться другие компьютеры, то нужно разрешить в опциях внешние подключения. Для этого в основном файле конфигурации, в секции options добавьте или замените следующие правила

А лучше, для безопасности вместо any пропишите ваши сети с которых разрешено подключение

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

Проверка файлов зоны и конфигурации

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

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

С этой командой работает простое правило: отсутствие результата – это хороший результат. Если команда ничего не возвращает, значит ошибок в ваших файлах конфигурации не обнаружено.

Для проверки файлов зоны DNS можно воспользоваться командой named-checkzone:

Проверка обратной зоны

Запуск и перезапуск сервера bind

Теперь мы можем запускать сервер bind:

Если сервер уже был запущен, его можно перезапустить командой restart:

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

Тестирование сервера bind

Для тестирования новой конфигурации сервера имен bind нам пригодится команда dig из пакета dnsutils. Эту команду можно запустить на любом компьютере с сетевым доступом к вашему DNS-серверу, но лучше всего начать тестирование с локального узла. В рассматриваемом нами примере IP-адрес сервера имен 172.31.0.122. Сначала проверим прямое разрешение имени (получение IP-адреса по доменному имени):

dig @172.31.0.122 www.itproffi.ru

Теперь проверим обратную зону:

dig @172.31.0.122 -x 172.31.1.10

Если вы получили аналогичные результаты, то зона DNS настроена правильно. Вместо команды dig для тестирования можно также использовать команду nslookup.

Читайте также:  Удаленный доступ windows 10 с андроида

nslookup 172.31.1.10 172.31.0.122

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

Источник

Как настроить локальный DNS-сервер на Linux?

Если у вашего домашнего или офисного интернет-провайдера медленные серверы имен или ваш сервер выполняет много операций поиска, то вам нужен локальный кеширующий DNS-сервер.

Как мне поможет локальный DNS-сервер?

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

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

Наконец, утилита systemd-resolved поддерживает самые последние, безопасные стандарты DNS DNSSEC и DNSoverTLS или DoT. Они помогают защитить вас и сохранить вашу конфиденциальность в Интернете.

Какой локальный кеширующий DNQS мы будем использовать?

Локальный кеширующий DNS-сервер, который мы включим и настроим в этом руководстве, это systemd-resolved. Данный инструмент является частью Systemd набора инструментов управления системой. Если ваша система использует systemd , и почти все основные дистрибутивы Linux используются, то у вас уже будет установлен systemd-resolved , но он не будет работать. Большинство дистрибутивов не используют systemd-resolved, даже если он присутствует.

systemd-resolved работает, запустив небольшой локальный кеширующий DNS-сервер, который мы настроим для запуска при загрузке. Затем мы перенастроим остальную часть системы, чтобы направлять их DNS-запросы в DNS-систему с локальным кэшированием.

1. Как проверить, используете ли вы уже systemd-resolved?

В некоторых дистрибутивах Linux по умолчанию уже используется systemd-resolved, например Ubuntu 19.04.

Если вы уже запустили systemd-resolved, вам не нужно включать его или настраивать систему для его использования. Однако вам может потребоваться убедиться, что инструменты управления сетью, такие как NetworkManager, настроены правильно, поскольку они могут игнорировать конфигурацию сети системы.

Прежде чем перейти к следующему разделу, выполните следующую команду, чтобы проверить, запущен ли уже systemd-resolved:

Если вы получили сообщение:

Вы не используете systemd-resolved и должны перейти к следующему разделу. Если вместо этого вы видите вывод, который начинается примерно так:

Тогда вы уже используете systemd-resolved и вам не нужно его включать.

2. Включение и настройка systemd-resolved

Нам не нужно устанавливать systemd-resolved как часть systemd. Все, что нам нужно сделать, — это запустить его, чтобы запустить сервер кэширования DNS, а затем включить его при загрузке.

Запустите следующую команду в терминале от имени пользователя sudo для запуска systemd-resolved:

Затем выполните следующую команду, чтобы запустить systemd-resolved при загрузке системы:

Последний оставленный элемент конфигурации — это настройка DNS-серверов, которые systemd-resolved будет запрашивать разрешенные домены. Здесь много вариантов, но любая из следующих пар бесплатна, быстра, и они обе поддерживают DNSSEC и DoT:

Откройте основной файл конфигурации с разрешением systemd в вашем любимом текстовом редакторе, здесь я использовал nano:

Измените строку начинающуюся с:

Уберите комментарий со строки и вставьте желаемый Public DNS из списка выше. В моем случае я выберу Cloudflare Public DNS.

Сохраните и выйдите из текстового редактора. Теперь нам нужно перезапустить systemd-resolved, чтобы он начал использовать серверы имен:

systemd-resolved теперь запущен и готов начать обработке и защите DNS-запросов, как только мы настроим систему для ее использования.

Конфигурация системы для использования systemd-resolved

Ваша система может быть настроена несколькими способами для использования systemd-resolved, но мы рассмотрим две конфигурации, которые покрывают большинство случаев использования. Первые два режима системного разрешения сосредоточены вокруг того, как управляется содержимое этого файла. В рекомендуемом режиме /etc/resolv.conf делается символическая ссылка на /run/systemd/resolve/stub-resolv.conf.

Читайте также:  Обновление windows 10 99 процентов долго

Этот файл управляется systemd-resolved и, следовательно, systemd-resolved управляет информацией о конфигурации DNS для всех других программ в системе.я — это рекомендуемая конфигурация, а вторая — конфигурация совместимости. Разница между ними заключается в том, как файл /etc/resolv.conf управляется.

Два режима системного разрешения сосредоточены вокруг того, как управляется содержимое этого файла. В рекомендуемом режиме /etc/resolv.conf делается символическая ссылка на /run/systemd/resolve/stub-resolv.conf. Этот файл управляется systemd-resolved и, следовательно, systemd-resolved управляет информацией о конфигурации DNS для всех других программ в системе.

Это может вызвать проблемы, когда другие программы пытаются управлять содержимым /etc/resolv.conf. Режим совместимости оставляет /etc/resolv.conf на месте, позволяя другим программам управлять им, в то время как systemd-resolved использует эту информацию DNS. В этом режиме другие программы, управляющие /etc/resolv.conf, должны быть настроены для установки 127.0.0.53 в качестве системного сервера имен в /etc/resolv.conf.

Настройка рекомендуемого режима

Сначала удалите или переименуйте существующий файл /etc/resolv.conf . Переименование является лучшим вариантом, поскольку оно будет иметь тот же эффект, но вы всегда можете обратиться к оригиналу, если вам нужна содержащаяся в нем информация. Здесь мы переименовываем /etc/resolv.conf с помощью команды mv:

Затем создайте символическую ссылку:

Наконец, перезапустите systemd-resolved:

Настройка режима совместимости

В этом режиме вам нужно убедиться, что локальный сервер имен, запущенный systemd-resolved запущен системными службами. Откройте /etc/resolv.conf в текстовом редакторе. Я использую редактор nano:

Удалите все встречающиеся строки, начинающиеся с «nameserver», и добавьте эту строку:

3. Отладка systemd-resolved

Узнать, как именно ваша система выполняет DNS-запросы после внесения этих изменений, может быть сложно. Самый эффективный способ наблюдения за происходящим — перевести systemd-resolved в режим отладки и посмотреть файл журнала.

systemd-resolved — это служба systemd, что означает, что ее можно легко перевести в режим отладки, создав файл службы, содержащий параметр отладки. Следующая команда создаст правильный файл в правильном месте:

Вставьте следующие строки в редактор, затем сохраните и выйдите:

Служба с разрешением systemd будет автоматически перезагружена при успешном сохранении и выходе.

Откройте второй терминал на том же сервере и просмотрите журнал journald для службы с разрешением systemd:

Строка, которая начинается с «Using DNS server», например:

Сообщает вам, какой именно DNS-сервер используется для DNS-запросов. В этом случае DNS-сервер Cloudflare на 1.1.1.1 был запрошен.

Строки «Cache miss» указывают на то, что доменное имя не было кэшировано. Например:

Строки, начинающиеся с «Positive cache hit», например:

Укажите, что systemd-resolved ранее запрашивал этот домен, и ответ был получен из кэша в локальной памяти.

Вы должны отключить режим отладки, когда вы закончите работать с systemd-resolved, так как он создаст очень большой файл журнала в загруженной системе. Вы можете отключить ведение журнала отладки, выполнив:

4. Использование безопасных DNS-запросов

systemd-resolved — это один из немногих доступных в настоящее время DNS-серверов, которые поддерживают DNSSEC и DNSoverTLS. Оба из них помогают гарантировать, что вы получаете подлинную информацию DNS (DNSSEC) и что никто не может отслеживать ваш трафик DNS, когда он проходит через Интернет. (DOT).

Эти параметры легко включить, открыв основной файл конфигурации systemd-resolved в текстовом редакторе:

И редактируем файл так, чтобы были установлены следующие две строки:

Сохраните и выйдите из редактора, затем перезагрузите systemd-resolved:

Пока на DNS-сервере вы установили поддержку DNSSEC и DoT, ваши DNS-запросы будут защищены. Оба публичных DNS-сервера Google и Cloudflare поддерживают эти протоколы.

Заключение

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

Источник

Оцените статью