Меню

Как настроить dns сервер centos

Настройка DNS-сервера в CentOS 7

DNS (Domain Name System — система доменных имён) — используется для получения IP-адреса по имени хоста или по URL. Например, если мы введём www.unixmen.com в браузере, DNS-сервер преобразует доменное имя в связанный с ним IP-адрес. Поскольку IP-адрес запомнить трудно, DNS-серверы используются для перевода имён хостов, таких как www.unixmen.com , в 173.xxx.xx.xx . Таким образом, доменное имя запомнить намного легче, чем IP-адрес.

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

Установка DNS-сервера#

План действий#

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

Основной (главный) DNS-сервер:#

Дополнительный (вторичный) DNS-сервер:#

Клиент:#

Настройка основного (главного) DNS-сервера#

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

1. Настройка DNS-сервера#

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

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

2. Создание файлов зон#

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

2.1 Создание прямой зоны#

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

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

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

2.2 Создание обратной зоны#

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

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

3. Запуск DNS-сервера#

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

4. Настройка файрвола#

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

5. Перезапуск файрвола#

6. Настройка разрешений, прав доступа и SELinux#

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

7. Проверка на ошибки#

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

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

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

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

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

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

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

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

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

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

8. Тестирование основного DNS-сервера#

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

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

Установка дополнительного DNS-сервера#

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

1. Настройка вторичного DNS-сервера#

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

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

2. Запуск DNS-службы#

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

3. Заполнение данных DNS-сервера#

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

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

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

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

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

4. Настройка файрвола#

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

5. Перезапуск файрвола#

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

6. Настройка разрешений, прав доступа и SELinux#

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

7. Тестирование вторичного DNS-сервера#

Настройка клиентской составляющей#

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

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

Тестирование DNS-сервера#

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

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

Спасибо за внимание! Надеемся, что данная статья помогла вам.

Источник

CentOS: Настройка сети и DNS из консоли

О операционной системе CentOS за настройки сети отвечают следующие файлы:
/etc/sysconfig/network-scripts/ifcfg-* — файлы настроек сетевых интерфейсов:
/etc/resolv.conf – здесь прописываются DNS серверы
/etc/hosts – этот файл отвечает за сопоставление ip-адресов и соответствующих им доменных имен в обход DNS-серверов.
/proc/sys/net/ipv4/ip_forward – тут включается маршрутизация для между интерфейсами, если их несколько у компьютера.

Чтобы активировать маршрутизацию, надо передать единичку — «1» — в этот файлик командой:

Все манипуляции с ними надо производить с правами пользователя Root.

Как настроить сеть CentOS с использованием DHCP:

Как настроить статический IP-адрес в CentOS:.

После того, как настройки сети ЦентОС сделаны — не забудьте перезапустить сетевую службу Network:

Чтобы посмотреть конфигурацию сетевого интерфейса — воспользуйтесь командой:

Читайте также:  Ott player smart tv не работает

Чтобы перезапустить только сетевую карту не трогая сервис Network — воспользуйтесь командами:

Маршрутизация в CentOS:

Чтобы прописать маршрут для сетевого интерфейса, воспользуйтесь командой:

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

Источник

Как установить и настроить DNS-сервер BIND на Linux CentOS

Что такое 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) выполняем команду:

> nslookup dmosk.ru 192.168.166.155

* данной командой мы пытаемся узнать IP-адреса сайта dmosk.ru через сервер 192.168.166.155.

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

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

Перечисленные ниже параметры являются глобальными по отношению к 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

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

  1. Первичная, она же master, она же локальная. База, которая пополняется и редактируется на текущем сервере. Подробнее как настроить первичную зону bind.
  2. Вторичная или slave. База копирует настройки с первичной зоны на другом сервере. Подробнее как настроить вторичную зону bind.
  3. Заглушка или stub. Хранит у себя только записи NS, по которым все запросы переводятся на соответствующие NS-серверы.
  4. Кэширующая или hint. Не хранит на сетбе никаких записей — только результаты уже обработанных запросов для ускорения ответов на повторные обращения.

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

По умолчанию, сервер Bind под CentOS хранит логи в файле /var/named/data/named.run.

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

tail -f /var/named/data/named.run

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

logging <
channel default_debug <
file «data/named.run»;
severity dynamic;
>;
>;

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

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

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

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

systemctl restart named

Лог запросов

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

Источник

Как настроить первичный DNS сервер на CentOS

Домены имеют как минимум два DNS сервера, один называется первичным сервером имён (ns1), а другой — вторичным сервером имён (ns2). Вторичные сервера обычно задействуются при проблемах с первичным сервером DNS: если один сервер недоступен, то второй становится активным. Возможны и более сложные схемы с использованием балансировки нагрузки, файерволов и кластеров.

Все DNS записи определённого домена добавляются в первичный сервер имён. Вторичный сервер просто синхронизирует всю информацию, получая её от первичного, на основании параметров, заданных на первичном сервере.

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

Перед тем, как мы начнём, хотелось бы упомянуть, что DNS может быть установлен с или без chroot jail окружением. Окружение chroot jail ограничивает DNS сервер определённой директорией в системе, в отличие от полного системного доступа на сервере. Таким образом, любая уязвимость DNS сервера не скомпромитирует всю систему. Ограничение DNS сервера в определённой директории (процесс называется chrooting) также полезно в тестовых условиях.

Мы настроим DNS сервер в тестовых условиях для домена example.tst, который является гипотетическим (не существующим) доменом. Таким образом, мы не вмешаемся случайным образом в работу каких-либо реальных доменов.

В этом домене есть три следующих сервера.

Сервер IP адрес Хостящиеся службы FQDN
Сервер A 172.16.1.1 Mail mail.example.tst
Сервер B 172.16.1.2 Web, FTP www.example.tst
ftp.example.tst
Сервер C 172.16.1.3 Primary DNS server ns1.example.tst

Мы настроем первичный DNS сервер и добавим необходимый домен и DNS записи как показанов в таблице.

Настраиваем имена хостов

Все хосты должны быть корректно определены с точки зрения FQDN. Это может быть сделано с использованием следующего метода.

Те, кто любит графический интерфейс, могут воспользоваться инструментами NetworkManaget. Для этого наберите команду nmtui. Откроется такой псевдографический интерфейс:

Выбираете «Изменить имя узла» и вводите ns1.example.tst

Когда готово, нажимаете [Tab] и ОК.

Ещё один способ, всего в одну команду:

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

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

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

Мы будем использовать bind для DNS, который с лёгкостью может быть установлен командой yum.

Установка DNS без chroot:

Установка DNS с chroot:

Подготовка конфигурационных файлов

Как было упомянуто ранее, bind может быть настроен с или без chroot. Пути немного различаются, в зависимости от того, был ли установлен chroot.

Путь до конфигурационного файла Путь до файлов зоны
Без chroot /etc/ /var/named/
С chroot /var/named/chroot/etc/ /var/named/chroot/var/named/

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

Делаем резервную копию файла /etc/named.conf

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

Следующие строки были добавлены/изменены.

Подготовка файлов зон

Дефолтные файлы зон автоматически созданы в /var/named или /var/named/chroot/var/named (для chroot).

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

Отлично. Теперь дефолтные файлы зоны готовы, мы создаём наши собственные файлы зоны для example.tst и сети 172.16.1.0. Пока мы создаём файлы зоны, нужно помнить следующее.

  • Символ ‘@’ означает NULL в файлах зоны.
  • Каждая запись полного доменного имени (FQDN) заканчивается точкой ‘.’ например. mail.example.tst. Без точки, будут проблемы.

1. Прямая зона

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

Объяснение: Внутри файла зоны, SOA означает начало авторизации. Это полное доменное имя авторитетного сервера имен. После полного доменного имени, идёт контактный email адрес. Поскольку мы не можем использовать ‘@’ в [email protected], мы перезаписываем email адрес как mial.example.tst.

  • NS: Имя сервера
  • A: A запись или запись адреса — это IP адрес
  • MX: Mail Exchanger запись. Здесь мы используем только один MX с приоритетом 10. В случае множества MX, мы можем использовать различные цифровые приоритеты. Нижний номер выигрывает. Например, MX 0 лучше чем MX 1.
  • CNAME: имя в каноническом виде. Если на сервере размещено множество служб, весьма вероятно, что множество имён будут преобразовываться к одному серверу. CNAME сигнализирует, что другие имена сервер может иметь и отсылает к имени, которое содержится в A записи.

2. Обратная зона

Обратная зона содержит карту преобразований из IP адресов в имена. Здесь мы создаём обратную зону для сети 172.16.1.0. В реальном домене, DNS сервер владельца публичного IP блока содержится в файле обратной зоны.

Объяснение: Большинство используемых параметров в обратной зоне идентичный прямой зоне, кроме одного.

  • PTR: PTR или запись указателя, она указывает на полное доменное имя

Завершение

Теперь, когда файлы зон готовы, мы настроем разрешение файлов зоны.

Сейчас мы зададим IP адрес DNS сервера.

Наконец, мы можем запустить службу DNS и убедиться, что она добавлена в автозапуск.

Когда DNS заработает, рекомендуется поглядывать в файл журнала /var/log/messages, поскольку он содержит полезную информацию о том, что происходит «за сценой». Если там нет ошибок, мы можем начать тестировать DNS сервер.

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

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

1. Тестирование прямой зоны с использованием dig

Когда вы используете для тестирования dig, вам всегда следует искать статус «NOERROR». Любое другое состояние означает, что что-то не так.

2. Проверка PTR с помощью dig

Когда вы используете для тестирования dig, вам всегда следует искать статус «NOERROR». Любое другое состояние означает, что что-то не так.

3. Проверка MX с помощью dig

Подсказки при решении проблем

  1. У меня отключён SELinux.
  2. Убедитесь, что ваш файервол не блокирует UDP порт 53
  3. /var/log/messages должен содержать полезную информацию в случае, если что-то не так
  4. Убедитесь, что владельцев файлов зон является пользователь ‘named’
  5. Убедитесь, что IP адрес DNS сервера стоит на первом месте в /etc/resolv.conf
  6. Если вы используете example.tst в лабораторных условиях, убедитесь, что отсоединили сервер от Интернета, поскольку example.tst — это несуществующий домен.

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

2 thoughts to “Как настроить первичный DNS сервер на CentOS”

Отличная статья, хорошо документирована. Не могли бы уточнить, какие правки требуется произвести чтобы dns-сервер стал публичным?
На данный момент имеется: домен, роутер с проброшенным 53-м портом, виртуальная машина с сетевым адаптером в режиме моста (имеет ip из моей подсети) и поднятым bind9.

Источник

Adblock
detector