- Шаг 1: Инсталляция необходимых пакетов
- Шаг 2: Глобальная настройка DNS-сервера
- Шаг 3: Создание прямой и обратной зоны
- Шаг 4: Запуск DNS-сервера
- Шаг 5: Изменение параметров межсетевого экрана
- Шаг 6: Настройка прав доступа
- Шаг 7: Тестирование на ошибки и завершение настройки
- Шаг 8: Проверка установленного DNS-сервера
- Настройка клиентской части DNS-сервера
- Тестирование DNS-сервера
Шаг 1: Инсталляция необходимых пакетов
Прежде чем мы начнем изучать следующие инструкции, мы хотим отметить, что на нашем сайте уже есть общее руководство по настройке стандартного DNS в Linux. Мы рекомендуем вам использовать именно этот материал, если вам нужно настроить параметры для регулярного посещения интернет-сайтов. Далее мы покажем вам, как установить первичный локальный DNS-сервер на стороне клиента.
Также прочтите: Конфигурация DNS в Linux
Рекомендуется использовать bind9 как средство создания локального DNS-сервера. Конфигурация последующих файлов конфигурации также будет основана на общих принципах поведения этого компонента. По умолчанию bind9 в ОС отсутствует, поэтому давайте начнем с его добавления.
- Запустите консоль удобным для вас способом. Его можно найти в разделе «Приложения» — «Избранное» или открыть с помощью стандартной комбинации клавиш Ctrl + Alt + T.
- Здесь вам нужно ввести команду sudo yum install bind bind-utils -y и нажать Enter, чтобы активировать ее.
- Это действие выполняется от имени суперпользователя (sudo), поэтому вам нужно будет подтвердить учетную запись, введя пароль в появившейся строке.
- Дождитесь завершения загрузки и установки пакетов.
В конце этого процесса вы получите уведомление о том, что все пакеты были успешно добавлены в систему. Затем переходите к следующему шагу.
Шаг 2: Глобальная настройка DNS-сервера
Теперь мы хотим продемонстрировать, как именно редактируется основной файл конфигурации и какие строки в него добавляются. Мы не будем останавливаться на каждой строчке в отдельности, так как это займет много времени, к тому же вся необходимая информация есть в официальной документации.
- Для редактирования объектов конфигурации можно использовать любой текстовый редактор. Мы предлагаем установить удобный nano, введя в консоли sudo yum install nano.
- Все необходимые пакеты будут загружены, и, если они уже есть в дистрибутиве, вы получите уведомление «Ничего не запускать».
- Приступим к редактированию самого файла. Откройте его с помощью sudo nano /etc/ named.conf. При необходимости замените нужный текстовый редактор, чтобы строка выглядела так: sudo vi /etc/ named.conf.
- Ниже мы предоставим контент, который вам нужно вставить в открытый файл или сравнить его с существующим, добавив недостающие строки.
- Затем нажмите Ctrl + O, чтобы сохранить изменения.
- Имя файла менять не нужно, просто нажмите Enter.
- Выйдите из текстового редактора с помощью Ctrl + X.
Как упоминалось ранее, вам нужно будет добавить несколько строк в файл конфигурации, которые задают общие правила поведения DNS-сервера.
//
//name.conf
//
// Предоставляется пакетом связывания Red Hat для настройки ISC BIND с именем (8) DNS
// сервер как сервер имен только для кэширования (только как преобразователь DNS localhost).
//
// См. / Usr / share / doc / bind * / sample /, например, файлы конфигурации с именем.
//
опции {
порт прослушивания 53 {127.0.0.1; 192.168.1.101;}; ### Первичный IP-адрес DNS ###
# прослушивание порта 53 на v6 {:: 1; };
каталог «/ var / name»;
файл дампа «/var/ named/data/cache_dump.db»;
файл статистики «/var/ named/data/ named_stats.txt»;
memstatistics-файл «/var/ named/data/ named_mem_stats.txt»;
разрешить запрос {localhost; 192.168.1.0/24;}; ### Диапазон IP-адресов ###
разрешить передачу {localhost; 192.168.1.102; }; ### IP DNS ведомое устройство ###
/*
— Если вы создаете АВТОРИТЕТНЫЙ DNS-сервер, НЕ включайте рекурсию.
— Если вы создаете РЕКУРСИВНЫЙ (кэширующий) DNS-сервер, вам необходимо включить
рекурсия.
— Если ваш рекурсивный DNS-сервер имеет общедоступный IP-адрес, вы ДОЛЖНЫ разрешить доступ
установите флажок, чтобы ограничить запросы легитимных пользователей. Если вы этого не сделаете
сделайте ваш сервер частью крупномасштабного расширения DNS
атаки. Внедрение BCP38 в вашей сети потребует много
уменьшить эту поверхность атаки
*/
рекурсия да;
dnssec-enable да;
проверка dnssec да;
dnssec-lookaside auto;
/ * Путь к ключу ISC DLV */
файл bindkeys «/etc/ named.iscdlv.key»;
каталог управляемых ключей «/ var / named / dynamic»;
pid-файл «/run/ named/ named.pid»;
сессионный ключевой файл «/run/ named/session.key»;
};
регистрация {
channel default_debug {
файл «data / named.run»;
динамика силы тяжести;
};
};
зона «.» В {
типовое предложение;
файл named.ca»;
};
зона «unixmen.local» IN {
мастер-тип;
файл «forward.unixmen»;
разрешить обновление {нет; };
};
зона «1.168.192.in-addr.arpa» IN {
мастер-тип;
файл «reverse.unixmen»;
разрешить обновление {нет; };
};
включает «/etc/ named.rfc1912.zones»;
включает «/etc/ named.root.key»;
Убедитесь, что все настроено точно так, как показано выше, и только затем переходите к следующему шагу.
Шаг 3: Создание прямой и обратной зоны
DNS-сервер использует прямую и обратную зоны для получения исходной информации. Forward позволяет вам получить IP-адрес по имени хоста, а обратный IP-адрес дает вам доменное имя. Правильное функционирование каждой зоны должно быть обеспечено специальными правилами, о создании которых мы предлагаем заняться далее.
- Создадим отдельный файл для прямой зоны с помощью того же текстового редактора. Таким образом, строка будет выглядеть так: sudo nano /var/ named/forward.unixmen.
- Вам сообщат, что это пустой объект. Вставьте туда следующий контент:
86400 долларов США
@ IN SOA masterdns.unixmen.local root.unixmen.local. (
2011071001; Серийный
3600; Обновить
1800; Попробуй еще раз
604800; Срок
86400; Минимальный TTL
)
@ IN NS masterdns.unixmen.local.
@ IN NS secondarydns.unixmen.local.
@ IN A 192.168.1.101
@ В А 192.168.1.102
@ В А 192.168.1.103
masterdns В А 192.168.1.101
вторичный DNS IN A 192.168.1.102
клиент IN A 192.168.1.103 - Сохраните изменения и закройте текстовый редактор.
- Перейдем теперь к обратной зоне. Требуется файл /var/ named/reverse.unixmen.
- Это также будет новый пустой файл. Вставьте туда:
86400 долларов США
@ IN SOA masterdns.unixmen.local root.unixmen.local. (
2011071001; Серийный
3600; Обновить
1800; Попробуй еще раз
604800; Срок
86400; Минимальный TTL
)
@ IN NS masterdns.unixmen.local.
@ IN NS secondarydns.unixmen.local.
@ IN PTR unixmen.local.
masterdns В А 192.168.1.101
вторичный DNS IN A 192.168.1.102
клиент IN A 192.168.1.103
101 В PTR masterdns.unixmen.local.
102 В PTR secondarydns.unixmen.local.
103 В PTR client.unixmen.local. - При сохранении не меняйте название объекта, просто нажмите клавишу Enter.
Теперь указанные файлы будут использоваться для прямой и обратной зон. При необходимости вы должны изменить их, чтобы изменить некоторые параметры. Вы также можете прочитать об этом в официальной документации.
Шаг 4: Запуск DNS-сервера
Выполнив все предыдущие инструкции, вы уже можете запустить DNS-сервер, чтобы в будущем можно было легко проверить его работу и продолжить настройку важных параметров. Задача выполняется следующим образом:
- В консоли введите sudo systemctl enable named, чтобы добавить DNS-сервер для автоматической загрузки для автоматического запуска при запуске операционной системы.
- Подтвердите это действие, введя пароль суперпользователя.
- Вы получите уведомление о создании символической ссылки, что означает, что действие выполнено успешно.
- Запустите утилиту через systemctl start named. Вы можете остановить его таким же образом, просто заменив опцию запуска на остановку.
- Когда появится окно аутентификации, введите пароль root.
Как видите, управление этим сервисом осуществляется по тому же принципу, что и все остальные стандартные утилиты, поэтому это не должно вызвать проблем даже у начинающих пользователей.
Шаг 5: Изменение параметров межсетевого экрана
Для правильной работы DNS-сервера необходимо открыть 53-й порт, который работает через стандартный брандмауэр FirewallD. В «Терминале» вам нужно ввести всего три простые команды:
- Первый выглядит как firewall-cmd —permanent —add-port = 53 / tcp и отвечает за открытие порта TCP. Вставьте его в консоль и нажмите Enter.
- Вы должны получить уведомление «Успешно», указывающее, что правило было успешно применено. Затем введите строку firewall-cmd —permanent —add-port = 53 / udp, чтобы открыть порт UDP.
- Все изменения вступят в силу только после перезапуска брандмауэра, что выполняется с помощью команды firewall-cmd —reload.
Вам не нужно вносить никаких дополнительных изменений в брандмауэр. Всегда держите его включенным, чтобы избежать проблем со входом в систему.
Шаг 6: Настройка прав доступа
Теперь вам нужно установить базовые разрешения и права доступа, чтобы немного защитить работу DNS-сервера и защитить обычных пользователей от возможности изменять параметры. Сделаем это стандартным способом и через SELinux.
- Все последующие команды должны быть активированы от имени суперпользователя. Чтобы не вводить постоянно пароль, мы рекомендуем включить постоянный root-доступ для текущего сеанса терминала. Для этого введите su в консоли.
- Введите пароль для входа.
- Затем введите следующие команды одну за другой, чтобы создать оптимальную настройку доступа:
chgrp с именем -R / var / named
chown -v корень: с именем /etc/ named.conf
restorecon -rv / var / с именем
restorecon /etc/ named.conf
На этом общая настройка главного DNS-сервера завершена. Осталось только изменить некоторые файлы конфигурации и проверить наличие ошибок. Со всем этим мы стремимся разобраться на следующем этапе.
Шаг 7: Тестирование на ошибки и завершение настройки
Мы рекомендуем начать с проверки на наличие ошибок, чтобы вам не пришлось редактировать оставшиеся файлы конфигурации в будущем. Вот почему мы рассмотрим все это за один шаг, а также предоставим примеры правильного вывода команд для тестирования.
- Введите named-checkconf /etc/ named.conf в Терминале. Это проверит глобальные параметры. Если в результате не следует никакого вывода, значит, все настроено правильно. В противном случае изучите сообщение и на его основе решите проблему.
- Затем вам нужно проверить зону пересылки, вставив строку с именем -checkzone unixmen.local /var/ named/forward.unixmen.
- Пример вывода выглядит следующим образом: zone unixmen.local / IN: loaded serial 2011071001 OK.
- Примерно то же самое мы делаем с обратной зоной через named-checkzone unixmen.local /var/ named/reverse.unixmen.
- Правильный вывод должен быть: zone unixmen.local / IN: loaded serial 2011071001 OK.
- Теперь перейдем к основным настройкам сетевого интерфейса. Вам нужно будет добавить к нему текущие данные DNS-сервера. Для этого откройте файл / etc / sysconfig / network-scripts / ifcfg-enp0s3.
- Убедитесь, что содержимое показано ниже. При необходимости вставьте параметры DNS.
ТИП = «Ethernet»
BOOTPROTO = «нет»
DEFROUTE = «да»
IPV4_FAILURE_FATAL = «нет»
IPV6INIT = «да»
IPV6_AUTOCONF = «да»
IPV6_DEFROUTE = «да»
IPV6_FAILURE_FATAL = «нет»
ИМЯ = «enp0s3»
UUID = «5d0428b3-6af2-4f6b-9fe3-4250cd839efa»
ONBOOT = «да»
HWADDR = «08: 00: 27: 19: 68: 73»
IPADDR0 = «192.168.1.101»
PREFIX0 = «24»
GATEWAY0 = «192.168.1.1»
DNS = «192.168.1.101»
IPV6_PEERDNS = «да»
IPV6_PEERROUTES = «да» - После сохранения изменений перейдите в файл /etc/resolv.conf.
- Вам просто нужно добавить сюда строку: nameserver 192.168.1.101.
- По завершении остается только перезагрузить сеть или компьютер, чтобы обновить конфигурацию. Сетевая служба перезапускается с помощью сетевой команды systemctl restart.
Шаг 8: Проверка установленного DNS-сервера
После завершения настройки остается только проверить работу существующего DNS-сервера после того, как он был добавлен в глобальную сетевую службу. Это также делается с помощью специальных команд. Первый — это dig masterdns.unixmen.local.
В результате на экране должен отображаться вывод, аналогичный приведенному ниже.
; <> DiG 9.9.4-RedHat-9.9.4-14.el7 <> masterdns.unixmen.local
;; глобальные параметры: + cmd
;; Получил ответ:
;; — >> HEADER << - рабочий код: QUERY, статус: NOERROR, id: 25179
;; флаги: qr aa rd ra; ВОПРОС: 1, ОТВЕТ: 1, АВТОРИТЕТ: 2, ДОПОЛНИТЕЛЬНО: 2
;; ВАРИАНТ РАЗДЕЛА PSEUD:
; EDNS: версия: 0, флаг :; UDP: 4096
;; РАЗДЕЛ ПРИМЕНЕНИЯ:
; masterdns.unixmen.local. В
;; ОТВЕТНАЯ ЧАСТЬ:
masterdns.unixmen.local. 86400 В А 192.168.1.101
;; ОТДЕЛ ВЛАСТИ:
unixmen.local. 86400 IN NS secondarydns.unixmen.local.
unixmen.local. 86400 IN NS masterdns.unixmen.local.
;; ДОПОЛНИТЕЛЬНЫЙ РАЗДЕЛ:
вторичныйdns.unixmen.local. 86400 В А 192.168.1.102
;; Время запроса: 0 мсек
;; СЕРВЕР: 192.168.1.101 # 53 (192.168.1.101)
;; КОГДА: среда, 20 августа, 16:20:46, IST 2014
;; РАЗМЕР MSG rcvd: 125
Дополнительная команда позволит узнать статус локальной работы DNS-сервера. Для этого вставьте в консоль nslookup unixmen.local и нажмите Enter.
Это должно показать три разных представления IP-адресов и доменных имен.
Сервер: 192.168.1.101
Адрес: 192.168.1.101 # 53
Имя: unixmen.local
Адрес: 192.168.1.103
Имя: unixmen.local
Адрес: 192.168.1.101
Имя: unixmen.local
Адрес: 192.168.1.102
Если вывод совпадает с тем, что мы указали, настройка успешно завершена, и вы можете переходить к работе с клиентской частью DNS-сервера.
Настройка клиентской части DNS-сервера
Мы не будем разделять эту процедуру на отдельные шаги, так как это делается путем редактирования только одного файла конфигурации. Вам нужно добавить информацию обо всех клиентах, которые будут подключены к серверу, и пример такой настройки выглядит так:
- Откройте файл /etc/resolv.conf любым удобным текстовым редактором.
- Добавьте туда строки search unixmen.local nameserver 192.168.1.101 и nameserver 192.168.1.102, заменив те, которые требуются, на адреса клиентов.
- При сохранении не меняйте имя файла, просто нажмите клавишу Enter.
- После выхода из текстового редактора обязательно перезапустите глобальную сеть с помощью команды systemctl restart network.
Это были основные моменты конфигурации клиентской стороны DNS-сервера, о которых мы хотели поговорить. Все остальные нюансы предлагаем изучить, при необходимости ознакомившись с официальной документацией.
Тестирование DNS-сервера
Последний этап нашего сегодняшнего материала — финальный тест DNS-сервера. Ниже вы можете увидеть несколько команд, позволяющих справиться с поставленной задачей. Воспользуйтесь одним, активировав его через «Терминал». Если на выходе нет ошибок, весь процесс в порядке.
копать masterdns.unixmen.local
копать вторичныйdns.unixmen.local
копать client.unixmen.local
nslookup unixmen.local
Сегодня вы узнали все о настройке первичного DNS-сервера в дистрибутиве CentOS. Как видите, вся операция сосредоточена на вводе команд терминала и редактировании файлов конфигурации, что может вызвать некоторые трудности у начинающих пользователей. Однако вам просто нужно точно следовать инструкциям и читать результаты тестирования, чтобы все прошло гладко, без ошибок.