- Настройка NS сервера на BIND в Linux.
- Ресурсные записи
- Установка и настройка BIND.
- Slave сервер.
- Установка и настройка DNS-сервера BIND в Linux
- Установка сервера bind
- Создание файла зоны DNS
- Настройка обратной зоны
- Настройка файла конфигурации bind
- Проверка файлов зоны и конфигурации
- Проверка обратной зоны
- Запуск и перезапуск сервера bind
- Тестирование сервера bind
- Пошаговое руководство по настройке DNS-сервера BIND в chroot среде для Red Hat (RHEL / CentOS) 7
- Установка и настройка bind на Ubuntu
- Подготовка системы
- Установка и запуск
- Базовая настройка
- Создание и настройка зон
Настройка NS сервера на BIND в Linux.
В сети Интернет каждый компьютер, сервер и тому подобное имеет свой IP-адрес. Все обращения к тому или иному участнику сети идут именно по IP-адресу. Но это очень не удобно для человека, по этому придумали DNS (Domain Name System). Основная цель DNS — это отображение доменных имен в IP адреса и наоборот — IP в DNS. В статье я рассмотрю работу NS сервера на BIND. Основу BIND составляет демон named , который для своей работы использует порт UDP/53 и для некоторых запросов TCP/53. Начнем немного с теории :
Ресурсные записи
Ресурсные записи это собственно та информация которую передает DNS. Каждая запись несет в себе информацию соответствия какого то имени и служебно информации DNS, например имени домена — IP адреса.
Поля записи :
- имя (NAME) — доменное имя, к которому привязана данная запись, либо IP адрес.
- TTL(Time To Live) — время хранение записи в кэше DNS (после указанного времени запись будет удалена). Данное поле может быть не указано, но тогда она должна быть указана в начале файла зоны и будет наследоваться всеми записями.
- класс (CLASS) — определяет тип сети. В 99% это будет IN обозначает Internet.
- тип (TYPE)— тип записи.
- данные (DATA) — различная информация.
Со всем набором ресурсных записей можно ознакомиться в wikipedia . Наиболее частые записи :
- А — (запись адреса) отображает имя хоста(доменное имя) на адрес IPv4. Пример следующая запись отражает доменное имя в IP адрес хоста (NAME test.ru, TTL 86400, CLASS IN, DATA 192.168.0.10) :
test.ru 86400 IN A 192.168.0.10
- AAAA (IPv6 address record) аналогична записи A, но для IPv6.
- CNAME (каноническая запись имени (псевдоним)) — отображает алиас на реальное имя домена.
www 86400 IN CNAM test.ru
- NS (сервер имен) указывает на DNS сервер, обслуживающий данный домен.
- PTR (pointer) — отображает IP-адрес в доменное имя.
- SOA (Start of Authority/начальная запись зоны) — самая главная запись. Описывает основные/начальные настройки зоны. Для каждой зоны должна существовать только одна запись. Поле Name содержит имя домена/зоны, поля TTL, CLASS — стандартное значение, поле TYPE принимает значение SOA, а поле DATA состоит из нескольких значений, разделенных пробелами: имя главного DNS ( Primary Name Server ) , адрес администратора зоны, далее в скобках — серийный номер файла зоны ( Serial number ). При каждом внесении изменений в файл зоны данное значение необходимо увеличивать, это указывает вторичным серверам, что зона изменена, и что им необходимо обновить у себя зону. Далее — значения таймеров ( Refresh — указывает, как часто вторичные серверы должны опрашивать первичный, чтобы узнать, не увеличился ли серийный номер зоны, Retry — время ожидания после неудачной попытки опроса, Expire — максимальное время, в течение которого вторичный сервер может использовать информацию о полученной зоне, Minimum TTL — минимальное время, в течение которого данные остаются в кэше вторичного сервера). Ниже в примере приведено 2 одинаковые записи SOA (хотя вторая и записана в несколько строк), но они одинаковы по значению и формат записи второй более понятен в силу его структурированности:
test.ru 86400 IN SOA ns1.test.ru. hostmaster.test.ru. 2011032003 28800 7200 604800 86400
tets.ru 86400 IN SOA ns1.test.ru. hostmaster.test.ru.
2011032003 ; serial (серийный номер)
28800 ; refresh (обновление)
7200 ; retry (повторная попытка)
604800 ; expire (срок годности)
86400) ; minimum TTL (минимум)
Установка и настройка BIND.
Про BIND мы уже писали. Так что опустим общие подробности и перейдем сразу к настройке NS сервера. Первым делом на Master сервере надо создать/отредактировать файл зоны test.zone :
Теперь добавим нашу зону в файл настройки /etc/bind/named.conf :
Так же можно добавить allow-recursion < none; >; в параметры options . Для отключение рекурсивных запросов, мы же сами отвечает за свою зону и опрашивать вышестоящие сервера DNS нету смысла.
Slave сервер.
Настройка дополнительный серверов еще проще. К стати для нормальной работы требуется как минимум Два сервера NS , главный и вспомогательный.
Отредактируем файл /etc/bind/named.conf :
Создадим новую папку zone и сделаем ее владельцам bind.
chown bind:bind /etc/bind/zone
Перезапускаем сервер bind и он сам получает файл зоны с мастер сервера. Вот и вся настройка.
Не забываем поменять ns сервера у Регистратора домена! Так же создать запить типа А для главного ns сервера. Успехов.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Установка и настройка 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/ и перейдите в нее, выполнив следующую последовательность команд:
Директория /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.
nslookup 172.31.1.10 172.31.0.122
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Пошаговое руководство по настройке DNS-сервера BIND в chroot среде для Red Hat (RHEL / CentOS) 7
Перевод статьи подготовлен для студентов курса «Безопасность Linux». Интересно развиваться в данном направлении? Смотрите запись трансляции мастер-класса Ивана Пискунова «Безопасность в Linux в сравнении с Windows и MacOS»
В этой статье я расскажу о шагах по настройке DNS-сервера на RHEL 7 или CentOS 7. Для демонстрации я использовал Red Hat Enterprise Linux 7.4. Наша цель — создать одну A-запись и одну PTR-запись для зоны прямого и обратного просмотра соответственно.
Сначала установите необходимые rpm-пакеты для DNS-сервера.
ПРИМЕЧАНИЕ: Для RHEL у вас должна быть активная подписка на RHN, или вы можете настроить локальный автономный репозиторий, с помощью которого менеджер пакетов «yum» сможет установить необходимые rpm-пакеты и зависимости.
Поскольку мы будем использовать chroot, нужно отключить службу.
Затем скопируйте необходимые файлы в каталог chroot.
ПРИМЕЧАНИЕ. Используйте аргумент -p в команде cp для сохранения прав и владельцев.
Затем скопируйте файлы, связанные с зоной, в новое место.
Очистите содержимое named.conf и вставьте следующее.
Информация, относящаяся к зоне, должна быть добавлена в /var/named/chroot/etc/named.rfc1912.zones. Добавьте записи, приведенные ниже. Файл example.zone — это файл зоны прямого просмотра, а example.rzone — файл обратной зоны.
ВАЖНОЕ ПРИМЕЧАНИЕ: Зона обратного просмотра содержит 1.168.192, поскольку мой IP-адрес 192.168.1.7
Файлы, связанные с зонами, находятся здесь:
Далее создадим файлы для прямой и обратной зоны. Имена файлов будут такими же, как выше в файле named.rfc1912.zones. У нас уже есть несколько шаблонов по умолчанию, которые мы можем использовать.
Как видите, текущие разрешения на все файлы и каталоги принадлежат root.
Измените права всех файлов, указав в качестве владельца пользователя root и группу named.
Но для data владелец должен быть named:named.
Добавьте приведенное ниже содержимое в файл прямой зоны. Здесь мы создаем A-запись для localhost (golinuxhub-client) и еще одну для сервера (golinuxhub-server).
Далее добавьте содержимое в файл обратной зоны. Здесь мы создаем PTR-запись для golinuxhub-client и для сервера golinuxhub-server.
Прежде чем мы запустим сервис named-chroot, проверим конфигурацию файла зоны.
Все выглядит хорошо. Теперь проверьте файл конфигурации, используя следующую команду.
Итак, все выполнено успешно.
ВАЖНОЕ ПРИМЕЧАНИЕ: у меня SELinux находится в режиме permissive
Все выглядит хорошо, так что пора запускать наш сервис named-chroot .
Как вы видите, мы получили положительный ответ (ANSWER) на наш запрос (QUERY).
Точно так же мы можем проверить прямую зону.
Эта статья немного устарела, так как в RHEL 7 теперь не нужно копировать файлы конфигурации bind в chroot. Step-by-Step Tutorial: Configure DNS Server using bind chroot (CentOS/RHEL 7).
Источник
Установка и настройка 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 разрешал записи для собственного домена, необходимо создать соответствующую зону.
Источник