Поднять dns сервер linux

Установка и настройка 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 выполните следующую команду:

apt-get install bind9 dnsutils
yum install bind dnsutils

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

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

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

cd /etc/bind mkdir -p zones/master cd zones/master/

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

; ; Файл данных BIND для itproffi.ru ; $TTL 3h @ IN SOA ns1.itproffi.ru. admin.itproffi.ru. ( 1 ; серийный номер 3h ; обновление каждые 3 часа 1h ; повторная попытка через час 1w ; срок годности – 1 неделя 1h ) ; хранение кэша отказов 1 час; @ IN NS ns1.itproffi.ru. @ IN NS ns2.itproffi.ru. itproffi.ru. IN MX 10 mail.itproffi.ru. itproffi.ru. IN A 172.31.1.10 ns1 IN A 172.31.1.10 ns2 IN A 172.31.1.11 www IN CNAME itproffi.ru. mail IN A 172.31.1.10 ftp IN CNAME itproffi.ru.

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

  • Запись 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.
Читайте также:  Copy one folder to another folder linux

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

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

; ; Обратный файл данных BIND для 1.31.172.in-addr.arpa ; $TTL 604800 1.31.172.in-addr.arpa. IN SOA ns1.itproffi.ru. admin.itproffi.ru. ( 1 ; серийный номер 3h ; обновление каждые 3 часа 1h ; повторная попытка через час 1w ; срок годности – 1 неделя 1h ) ; хранение кэша отказов 1 час; 1.31.172.in-addr.arpa. IN NS ns1.itproffi.ru. 1.31.172.in-addr.arpa. IN NS ns2.itproffi.ru. 10.1.31.172.in-addr.arpa. IN PTR itproffi.ru.

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

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

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

/etc/bind/zones/master/db.itproffi.ru /etc/bind/zones/master/db.172.31.1

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

zone "itproffi.ru" < type master; file "/etc/bind/zones/master/db.itproffi.ru"; >; zone "1.31.172.in-addr.arpa" < type master; file "/etc/bind/zones/master/db.172.31.1"; >;

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

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

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

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

listen-on port 53 < any; >; allow-query < any; >;

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

listen-on port 53 < 192.168.0.0/24; >; allow-query < 192.168.0.0/24; >;

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

Читайте также:  Find files with file extension linux

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

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

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

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

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

named-checkzone itproffi.ru /etc/bind/zones/master/db.itproffi.ru zone itproffi.ru/IN: loaded serial 1 OK

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

named-checkzone 1.31.172.in-addr.arpa /etc/bind/zones/master/db.172.31.1 zone 1.31.172.in-addr.arpa/IN: loaded serial 1 OK

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

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

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

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

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

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

dig @172.31.0.122 www.itproffi.ru

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

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

nslookup itproffi.ru 172.31.0.122

nslookup 172.31.1.10 172.31.0.122

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

Похожие записи:

Источник

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

Обновлено

Обновлено: 09.06.2019 Опубликовано: 24.08.2017

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

Читайте также:  Astra linux руководство ксз часть 2

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

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

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

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

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

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

apt-get install bind9 dnsutils

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

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

* или service bind9 start.

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

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

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.

* или service bind9 restart.

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

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

nslookup ubuntu.com 192.168.0.15

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

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

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

Источник

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