Настройка bind centos 7

Обновлено: 07.07.2024

Важной частью управления конфигурацией и инфраструктурой сервера является поддержка простого поиска сетевых интерфейсов и IP-адресов по имени путем настройки правильной системы доменных имен (DNS, Domain Name System). Использование полных доменных имен (FQDN) вместо IP-адресов для определения сетевых адресов облегчает настройку сервисов и приложений и упрощает поддержку файлов конфигурации. Настройка собственного DNS-сервера для частной сети – отличный способ улучшить управление серверами.

Данный мануал поможет настроить в CentOS 7 внутренний DNS-сервер с помощью сервера имен BIND (BIND9), который может использоваться вашими серверами для разрешения внутренних имен хостов и IP-адресов. Это обеспечивает централизованный способ управления внутренними именами хостов и IP-адресами, что необходимо для среды, которая состоит из нескольких хостов.

Требования

Для работы вам понадобится следующая инфраструктура. Все серверы должны находиться в одном ЦОД с включенной поддержкой частной сети.

  • Свежий сервер CentOS 7 для настройки первичного DNS-сервера (в мануале он называется ns1).
  • Опционально: сервер CentOS 7 для настройки вторичного DNS-сервера (в мануале он называется ns2).

На каждом из этих серверов настройте пользователя sudo и брандмауэр, следуя мануалу по начальной настройке сервера CentOS 7.

Пример инфраструктуры

В мануале предполагается, что:

Хост Роль Частный FQDN Внутренний IP-адрес
host1 Клиент Host 1 host1.nyc3.example.com 10.128.100.101
host2 Клиент Host 2 host2.nyc3.example.com 10.128.200.102

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

В результате у вас будет первичный DNS-сервер ns1 и вторичный DNS-сервер ns2.

Хост Роль Частный FQDN Внутренний IP-адрес
ns1 Первичный DNS-сервер ns1.nyc3.example.com 10.128.10.11
ns2 Вторичный DNS-сервер ns2.nyc3.example.com 10.128.20.12

1: Установка BIND на DNS-серверы

На серверах ns1 и ns2 установите BIND:

sudo yum install bind bind-utils

Чтобы подтвердить установку, нажмите у.

2: Настройка первичного DNS-сервера

Конфигурация BIND состоит из нескольких файлов, которые включены в основной файл конфигурации named.conf. Имена этих файлов начинаются с named, потому что это имя процесса, который запускает BIND. Начнем с настройки файла named.conf.

Файл named.conf

Процесс BIND называется named. Потому многие файлы, которые относятся к этому серверу, называются named, а не BIND.

На сервере ns1 откройте этот файл:

sudo vi /etc/named.conf

Над существующим блоком options создайте новый блок управления доступом ACL (access control list) под названием trusted. Здесь можно определить список клиентов, которые могут отправлять рекурсивные DNS-запросы (например, ваши серверы, находящиеся в том же ЦОД, что и ns1). Добавьте ns1, ns2, host1 и host2 в список доверенных клиентов:

Теперь, когда у вас есть список доверенных DNS-клиентов, можно отредактировать блок options. Добавьте внутренний IP-адрес в строку listen-on port 53 и раскомментируйте listen-on-v6:

Под этими записями измените allow-transfer с none на внутренний IP-адрес сервера ns2. В allow-query вместо localhost введите trusted.

В конец файла добавьте строку:

Теперь сохраните и закройте файл named.conf. В приведенной выше конфигурации указано, что только ваши доверенные серверы смогут запросить внешние домены у DNS-сервера.

Затем нужно настроить файл local, чтобы определить DNS-зоны.

Настройка файла local

На ns1 откройте файл named.conf.local:

sudo vi /etc/bind/named.conf.local

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

Добавьте зону прямого просмотра, заменив имя зоны и внутренний IP-адрес вторичного DNS-сервера:

Учитывая, что вы используете частную подсеть 10.128.0.0/16, добавьте зону обратного просмотра (обратите внимание, что имя этой зоны начинается с «128.10», обратно от «10.128»):

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

Теперь, когда зоны указаны в BIND, необходимо создать соответствующие файлы зон прямого и обратного просмотра.

Создание файла зоны прямого просмотра

Создайте каталог, в котором будут находиться файлы зон. Согласно конфигурации named.conf.local, его расположение – /etc/named/zones:

sudo chmod 755 /etc/named
sudo mkdir /etc/named/zones

Теперь отредактируйте файл зоны прямого просмотра. Откройте файл в редакторе:

В конец файла добавьте записи своего сервера имен (замените имена своими данными). Обратите внимание, что во втором столбце указано, что это записи NS.

Сохраните и закройте файл.

В результате файл зоны имеет такой вид:

Теперь пора заняться файлом (файлами) зоны обратного просмотра.

Создание файла(ов) зоны обратного просмотра

На ns1 для каждой зоны обратного просмотра, указанной в файле named.conf.local, создайте отдельный файл.

Отредактируйте файл, соответствующий зоне (зонам) обратного просмотра, определенной в named.conf.local:

sudo vi /etc/named/zones/db.10.128

В конец файла добавьте записи своего сервера имен (замените имена своими данными). Обратите внимание, что во втором столбце указано, что это записи NS.

Затем добавьте записи PTR для всех ваших серверов, чьи IP-адреса находятся в подсети этой зоны. В данном примере она включает в себя все хосты, потому что все они находятся в подсети 10.128.0.0/16. Обратите внимание: первый столбец состоит из двух последних октетов внутренних IP-адресов серверов в обратном порядке. Не забудьте заменить имена и внутренние IP-адреса своими данными.

Сохраните и закройте файл зоны. Повторите этот раздел для каждой отдельной зоны обратного просмотра.

В результате файл имеет такой вид:

Проверка синтаксиса конфигурации BIND

Запустите следующую команду, чтобы убедиться, что в файлах нет ошибок:

Команда named-checkzone может проверить правильность ваших файлов зон. Ее первый аргумент указывает имя зоны, а второй – соответствующий файл зоны, которые определены в named.conf.local.

А чтобы проверить конфигурацию зоны обратного просмотра 128.10.in-addr.arpa, выполните следующую команду:

sudo named-checkzone 128.10.in-addr.arpa /etc/named/zones/db.10.128

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

Запуск BIND

Чтобы запустить BIND, введите:

sudo systemctl start named

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

sudo systemctl enable named

Первичный DNS-сервер настроен и может обрабатывать запросы DNS. Теперь давайте создадим вторичный сервер.

3: Настройка вторичного DNS-сервера

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

На ns2 отредактируйте файл named.conf.:

sudo vi /etc/named.conf

Примечание: Если хотите, вы можете пропустить эти инструкции и просто скопировать named.conf с ns1 на ns2, заменить внутренний IP-адрес и отключить allow transfer.

В начале, под существующим блоком options, добавьте блок ACL по имени trusted (с внутренними IP-адресами доверенных серверов). Это поместит ns1, ns2, host1 и host2 в список доверенных серверов.

Теперь, когда у вас есть список доверенных DNS-клиентов, можно отредактировать блок options. Добавьте внутренний IP-адрес в строку listen-on port 53 и раскомментируйте listen-on-v6:

В allow-query вместо localhost введите trusted.

В конец файла добавьте строку:

Теперь сохраните и закройте файл named.conf. В приведенной выше конфигурации указано, что только ваши доверенные серверы смогут запросить внешние домены у DNS-сервера.

Затем нужно определить DNS-зоны.

Отредактируйте файл named.conf.local:

sudo chmod 755 /etc/named
sudo vi /etc/named/named.conf.local

Определите вторичные зоны, соответствующие зонам первичного DNS-сервера. Обратите внимание, что тип должен быть slave, файл не содержит пути, и в нем есть директива masters, которая должна указывать внутренний IP-адрес первичного DNS-сервера. Если вы определили несколько зон обратного просмотра на первичном DNS-сервере, обязательно укажите их все здесь.

Сохраните и закройте файл.

Чтобы проверить файлы на наличие ошибок, введите:

Если ошибок нет, запустите BIND:

sudo systemctl start named

Добавьте сервис в автозагрузку:

sudo systemctl enable named

Теперь у вас есть первичный и вторичный DNS-сервер. Пора настроить клиентские серверы.

4: Настройка DNS-клиентов

Прежде чем все ваши серверы из ACL trusted смогут запрашивать DNS-серверы, нужно настроить каждый из них для использования ns1 и ns2 в качестве серверов имен. Этот процесс зависит от ОС, но в большинстве дистрибутивов Linux для этого нужно добавить серверы имен в файл /etc/resolv.conf.

Клиенты CentOS

В CentOS, RedHat и Fedora Linux отредактируйте файл resolv.conf:

sudo vi /etc/resolv.conf

Добавьте следующие строки в начало файла, указав в них свои данные:

Сохраните и закройте файл.

Настройка клиента завершена.

Клиенты Ubuntu

На серверах Ubuntu и Debian Linux вы можете отредактировать файл head, связанный с resolv.conf:

sudo vi /etc/resolvconf/resolv.conf.d/head

Добавьте в файл следующие строки (указав свои данные).

Запустите resolvconf, чтобы сгенерировать новый файл resolv.conf.

sudo resolvconf -u

Настройка клиента завершена.

5: Тестирование клиентов

Используйте nslookup, чтобы проверить, могут ли ваши клиенты запрашивать серверы имен. Вы должны иметь возможность сделать это на всех клиентах, которые вы настроили и которые находятся в доверенном ACL.

Прямой просмотр

Теперь попробуем обратный просмотр.

Обратный просмотр

Чтобы протестировать обратный просмотр, запросите:

Команда должна вернуть такой вывод:

Теперь рассмотрим сохранение записей в зоне.

6: Поддержка DNS-записей

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

Добавление хоста в DNS

Всякий раз, когда вы добавляете хост в свою среду (в том же центре данных), вам нужно добавить его и в DNS. Вот как это делается.

  • Файл зоны прямого просмотра: добавьте запись «А» для нового хоста, увеличьте значение Serial.
  • Файл зоны обратного просмотра: добавьте запись PTR для нового хоста, увеличьте значение Serial.
  • Добавьте внутренний IP-адрес нового хоста в ACL trusted (named.conf).
  • Перезапустите BIND:

sudo systemctl reload named

Теперь ваш первичный сервер должен поддерживать новый хост.

  • Добавьте внутренний IP нового хоста в ACL trusted (named.conf).
  • Перезапустите BIND:

sudo systemctl reload named

Теперь ваш вторичный сервер должен поддерживать новый хост.

Чтобы настроить новый хост для поддержки DNS:

  • Настройте поддержку в файле /etc/resolv.conf.
  • Протестируйте работу хоста с помощью nslookup.

Удаление хоста из DNS

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

Заключение

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

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

Что такое DNS, BIND, Linux и CentOS простыми словами. Версии используемого ПО — CentOS 7, BINВ 9.

Подготовка сервера

Устанавливаем все обновления:

Устанавливаем утилиту для синхронизации времени:

yum install chrony

Настраиваем временную зону:

timedatectl set-timezone Europe/Moscow

* в данном примере выбрано московское время.

Разрешаем и запускаем сервис для синхронизации времени:

systemctl enable chronyd --now

Открываем порт в firewall:

firewall-cmd --permanent --add-port=53/udp

И перечитываем настройки сетевого экрана:

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

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

yum install bind

systemctl enable named

Запускаем сервис имен:

systemctl start named

И проверяем, что он работает корректно:

systemctl status named

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

Открываем на редактирование конфигурационный файл bind:

и редактируем следующее:

* где 192.168.166.155 — IP-адрес нашего NS-сервера, на котором он будет принимать запросы; allow-query разрешает выполнять запросы всем, но из соображений безопасности можно ограничить доступ для конкретной сети, например, вместо any написать 192.168.166.0/24.

Для применения настроек выполните команду:

systemctl restart named

Для проверки работоспособности сервера с другого компьютера сети (например, на Windows) выполняем команду:

Должно получиться, примерно, следующее:

Результат проверки bind сервера командой nslookup

Описание глобальных опций

Перечисленные ниже параметры являются глобальными по отношению к DNS и всем настроенным зонам. Они задаются в конфигурационном файле named.conf, директиве options <>.

Опции Описания
directory Указывает рабочий каталог сервера bind. Если не указан, /var/named
forwarders Перечисляет серверы, на которые будет переведен запрос, в случае, если наш сервер не сможет его обработать (нет соответствующей зоны.)
forward Переопределяет способ обработки запроса. Принимает два значения — ONLY или FIRST. Первое указывает на то, что сервер не будет пытаться искать совпадения среди локальных зон. Второе — сервер сначала будет перенаправлять запрос и если он не будет успешно обработан, искать соответствия во внутренней базе.
listen-on На каких интерфейсах будет слушать bind
allow-transfer Указание на список серверов на которые будут разрешены зонные передачи (репликация на вторичные NS)
allow-query Список узлов, с которых разрешено обращаться к серверу. Если не задана, разрешено всем.
allow-notify Перечисленным серверам разрешает отправку уведомлений об изменениях в настройках зоны.
allow-recursion Задает список хостов, для которых разрешены рекурсивные запросы, остальным — будут разрешены итеративные. Если не задана, для всех рекурсивно.

Пример глобальных настроек

Зоны bind

Для возможности искать соответствия в собственной базе доменов, необходимо создать и настроить зоны. Существуют следующие типы зон:

Решение проблем с помощью log-файлов

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

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

* где file — путь к log-файлу; severity — уровень чувствительности к возникающим событиям. Возможны следующие варианты для severity:

  • critical — критические ошибки.
  • error — ошибки и выше (critical).
  • warning — предупреждения и выше. Предупреждения не говорят о наличии проблем в работе сервиса, однако это такие событтия, которые могут привести с ошибкам, поэтому не стоит их игнорировать.
  • notice — уведомления и выше.
  • info — информация.
  • debug — отладка (подробный лог).
  • dynamic — тот же debug.

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

После изменения конфигурационного файла перезапускаем сервис:

systemctl restart named

Лог запросов

Если мы хотим также видеть в логе все запросы, которые приходят на bind, в командной строке вводим:


Данное руководство поможет вам настроить локальный DNS-сервер на вашей системе CentOS 7 (также применимо для RHEL и Scientific Linux 7).

В этом уроке мы будем использовать три узла. Один будет действовать как основной DNS-сервер, другой как дополнительный, а последний будет нашим DNS-клиентом. Все они приведены ниже.

Установите на ваш сервер пакеты bind9.

Отредактируйте файл ‘/etc/named.conf’.

Теперь добавьте следующие строчки:

Создайте файлы прямой и обратной зоны, которые мы упоминали в файле ‘/etc/named.conf’.

В директории /var/named создайте файл forward.unixmen.

Допишите следующие строчки:

На этом создание прямой зоны завершено, переходим далее.

В директории /var/named создайте файл reverse.unixmen.

Добавьте следующие строчки:

Включите и запустите службу DNS:

Нужно при помощи файрвола разрешить DNS-серверу использование порта 53.

Пропишите следующие команды друг за другом:

Теперь нужно убедиться в корректности выполнения проделанных нами пунктов.

Проверьте стандартный файл конфигурации DNS:

Если ничего не возвращается, ваш файл конфигурации настроен корректно.

Далее, проверьте прямую зону:

Затем, проверьте обратную зону:

Добавьте данные DNS-сервера в файл конфигурации сетевого интерфейса.

Отредактируйте файл ‘/etc/resolv.conf’.

Добавьте имя сервера и IP-адрес:

Сохраните и закройте файл.

Перезагрузите сетевую службу:

Теперь основной DNS-сервер готов к использованию.

Настало время настройки дополнительного DNS-сервера.

Установите пакеты bind при помощи следующей команды:

Отредактируйте файл /etc/named.conf:

Добавьте следующие строчки:

Теперь прямая и обратная зоны автоматически копируются с главного DNS-сервера на дополнительный DNS-сервер (расположенный в директории: ‘/var/named/slaves/’).

Добавьте данные DNS-сервера в файл конфигурации сетевого интерфейса.

Отредактируйте файл ‘/etc/resolv.conf’,

Добавьте имя сервера и IP-адрес:

Сохраните и закройте файл.

Перезапустите сетевую службу:

Нам нужно при помощи файрвола разрешить DNS-серверу использовать порт 53.

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

Пропишите следующие команды друг за другом:

Добавьте сведения о DNS-сервере в файл ‘/etc/resolv.conf’ во всех клиентских системах.

Перезапустите сетевую службу или перезагрузите систему.

И теперь, наконец-таки, вы можете протестировать ваш DNS-сервер, используя любую из следующих команд:

На этом всё. Основной и дополнительный DNS-серверы готовы к использованию.

articles

Установка ДНС сервера BIND в CentOS 6 и CentOS 7 особо ничем не отличается, за исключением доступной в "родном" репозитории версии. В нашем случае мы будем устанавливать BIND в CentOS 6 из репозитория CentALT, потому как только в нём доступна самая свежая на данный момент (bind x86_64 44:9.10.2-1.el6) версия, которая поддерживает самые новые "фичи" среди которых и автоподписание зон, что избавляет от необходимости выполнять "dnssec-signzone -S -N INCREMENT zone-filename.zone" после каждого изменения файла зоны.

Необходимость в своём ДНС серванте с поддержкой DNSSEC возникает главным образом из-за того, что многие регистраторы доменных имён, а точнее будет сказать большинство из них, не предоставляют возможности юзеру подписывать свой домен на их ДНС серверах, а то и вовсе не дают использовать DNSSEC (т.е. полностью и всецело не поддерживат DNSSEC).

Установка ДНС сервера BIND с DNSSEC в CentOS

Посмотрим на информацию о пакетах bind и bind-utils:

Видим, что версия bind-utils уже установлена из CentALT репозитория и она выше (9.9.1), чем предлагаемая версия bind из репозитория updates (9.8.2) - это может вызвать проблемы при установке, например:

Если это наш случай, то мы можем либо сначала удалить, а потом установить/переустанавить пакет bind из репозитория "updates":

Открыв главную страницу centos.alt.ru на тот момент я обнаружил там совсем не репозиторий, а веб-страницу с заголовком " Welcome to VMware ESXi ", что навело на мысль о том, что нужно искать зеркало CentALT репозитория, найдя которое я "допилил" /etc/yum.repos.d/centalt.repo до такой кондиции:

И всё отлично заработало и установилось, при этом версия "36:9.9.3-4.P2.el6" сменилась на "44:9.10.2-1.el6", а именно это нам и нужно:

Проверить версию и "флаги" (опции) с которыми был собран BIND можно с помощью комманд:

Наш только-что установленный ДНС сервер ещё не запущен и не добавлен в автозагрузку - проверим состояние и добавим его в автозагрузку:

Базовая настройка ДНС сервера BIND

Обычно файлы зон сваливают прямо в каталог /var/named , что на мой взгляд как не эстетично, так и не практично - для зон мы создадим отдельный каталог /var/named/zone . Файл зоны " remoteshaman.com.zone " BIND будет искать в директории /var/named/zone , в которой мы его сейчас и создадим:

Проверяем файл нашей зоны и если всё "OK", то мы должны получить примерно такой вот результат:

Проверяем работу нашего ДНС сервера:

Если при "ресолве" мы получаем ошибку:

значит в конце CNAME записи забыли поставить точку.

Включаем DNSSEC

Для ключей у нас будет отдельный каталог /var/named/keys , в котором будут размещатся подкаталоги с именами зон:

Если создание ключей зависло более чем на 1 мин, значит нехватает так званой энтропии (случайных чисел) и нам ппонадобится установить пакет "rng-tools" и повторить попытку если она была прервана:

Всё что нам теперь осталось, так это слегка подшаманить секцию " zone " в /etc/named.conf и перезагрузить сервер с новой конфигурацией и зона будет подписана автоматически:

После этого в каталоге /var/named/zone/ должны будут образоваться три дополнительных бинарных файла с раширениями .jbk, .signed и .jnl :

Проверить успешность подписания зоны можно коммандой:

Если в секции " options <. >" конфига /etc/named.conf не указано " allow-transfer < none; >; ", то приведённая ниже комманда выдыаст нам список всех ДНС записей или же вернёт " ; Transfer failed. ":

Отправка регистратору DS/KSK записи

DNSSEC подписание своей доменной зоны на своём или любом стороннем ДНС сервере не означает, что DNSSEC уже включен и полноценно работает. Последним шагом на пути к окончательной активации DNSSEC будет отправка DS/KSK (Delegation of Signing, Key Signing key) записи на ДНС сервера корневых зон, которая выполняется непосредственно через регистратора доменного имени ибо только регистратор домена имеет право доступа к ДНС серверам корневых доменных зон.

В большинстве случаев нам нужна именно KSK запись, которую мы пожем получить либо непосредственно из ключа соданного ранее коммандой " dnssec-keygen " с флагом " -f KSK ":

Либо выполнив ДНС запрос коммандой:

Для справки

  1. RSA/MD5 (RSAMD5)
  2. Diffie-Hellman (DH)
  3. DSA/SHA1 (DSA)
  4. - Reserved
  5. RSA/SHA-1 (RSASHA1)
  6. DSA-NSEC3-SHA1
  7. RSASHA1-NSEC3-SHA1
  8. RSA/SHA-256 (RSASHA256)
  9. - Reserved
  10. RSA/SHA-512 (RSASHA512)
  11. - Reserved
  12. ГОСТ Р 34.10-2001 (ECC-GOST)
  13. ECDSA Curve P-256 with SHA-256 (ECDSAP256SHA256)
  14. ECDSA Curve P-384 with SHA-384 (ECDSAP384SHA384)

ПРОБЛЕМЫ?

dns_dnssec_findmatchingkeys: error reading key file .private: permission denied

Проблемы доступа к файлам ключей:

Пользователь " named " должен иметь права на доступ к файлам ключей:

Автоматическая DNSSEC подпись нашей зоны не сработала из-за запрета создания файлов или каталогов пользователем "named" в каталоге "/var/named":

Создаём отдельный каталог " /var/named/zone " и даём пользователю " named " право на запись в него, а также перемещаем в него файл нашей зоны, ну, и не забываем изменить путь к файлу в /etc/named.conf :

Подпись прошла успешно.

Рекомендуемый контент

Вы не любите рекламу!? Напрасно!:) На нашем сайте она вовсе ненавязчивая, а потому для нашего сайта можете полностью отключить AdBlock (uBlock/uBlock Origin/NoScript) и прочие блокировщики рекламы! AdBlock/uBlock может препятствовать нормальной работе системы поиска по сайту, отображению рекомендуемого контента и прочих сервисов Google. Рекомендуем полностью отключить блокировщик рекламы и скриптов, а также разрешить фреймы (aka iframe).

DNS (англ. Domain Name System — система доменных имён) — компьютерная распределённая система для получения информации о доменах. Чаще всего используется для получения IP-адреса по имени хоста (компьютера или устройства), получения информации о маршрутизации почты, обслуживающих узлах для протоколов в домене (SRV-запись).

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


В рамках нашей лаборатории воспроизведем стандартную ситуацию небольшого офиса, когда возникает необходимость настроить внутреннюю локальную сеть и предоставить доступ к узлам сети Internet.

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

Для проведения всех действий у меня используется минимальная версия CentOS 7, поэтому доустановим необходимые пакеты со всеми зависимостями.

Выполним скрипт первоначальной настройки сервера. Отключим стандартный сервис BIND, а вместо него включим BIND в изолированном окружении.

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

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

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

Проверим конфигурационный файл на наличие ошибок и остановим на время сервис named-chroot.

Настроим инструменты управления сервером. Для этого нам нужно пересоздать ключ аутентификации и добавить информацию об этом ключе в конфигурацию. Убедимся в отсутствии ошибок при внесении изменений в конфигурацию. После чего можно запустить сервис и проверить на наличие ошибок при запуске. Для выхода из журнала нажмите "q".

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

Создадим правило межсетевого экрана разрешающее доступ к нашему серверу имен с других узлов.

Установим необходимые разрешения на доступ.

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

Вот мы и настроили службы доменных имен на базе BIND 9.9 на CentOS 7 работающую в изолированной среде и преобразующую имена внутренних и внешних узлов в IP-адреса.

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