rias:dnsdebian11
Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| rias:dnsdebian11 [2026/05/21 20:37] – создано admin1 | rias:dnsdebian11 [2026/05/21 20:48] (текущий) – [3.4. Проверка работоспособности вторичного DNS сервера] admin1 | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ffff | + | ====== Настройка DNS сервера BIND9 в Debian 11 ====== |
| + | |||
| + | ==== 1. Установка DNS сервера BIND9 ==== | ||
| + | |||
| + | ==== 1.1. Требования к ЭВМ ==== | ||
| + | В данной главе приводятся минимальные требования для ЭВМ, используемой в лабораторной работе: | ||
| + | |||
| + | – Операционная система: | ||
| + | – ЦПУ: достаточно 1 процессора (для ускорения процесса установки и настройки рекомендуется временно установить 2 процессора); | ||
| + | – ОЗУ: достаточно 1 ГБ;\\ | ||
| + | – ПЗУ: достаточно 10 ГБ. | ||
| + | |||
| + | ==== 1.2. Настройка сетевого интерфейса ==== | ||
| + | Перед установкой DNS сервера необходимо провести настройку сетевого интерфейса. Настройку необходимо провести в соответствии с дополнительной инструкцией. | ||
| + | |||
| + | ==== 1.3. Установка DNS сервера BIND9 ==== | ||
| + | Далее обновляем список пакетов и устанавливаем BIND9. Для обновления необходимо выполнить две команды от суперпользователя (далее все команды выполняются от суперпользователя): | ||
| + | |||
| + | <code bash> | ||
| + | # apt update | ||
| + | </ | ||
| + | <code bash> | ||
| + | # apt upgrade | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | root@debian:/ | ||
| + | Пол:1 http:// | ||
| + | Суш:2 http:// | ||
| + | Пол:3 http:// | ||
| + | Пол:4 http:// | ||
| + | Получено 266 kB за 1с (205 kB/s)\\ | ||
| + | Чтение списков пакетов... Готово\\ | ||
| + | Построение дерева зависимостей... Готово\\ | ||
| + | Чтение информации о состоянии... Готово\\ | ||
| + | Все пакеты имеют последние версии.\\ | ||
| + | root@debian:/ | ||
| + | </ | ||
| + | |||
| + | root@debian:/ | ||
| + | Чтение списков пакетов... Готово\\ | ||
| + | Построение дерева зависимостей... Готово\\ | ||
| + | Чтение информации о состоянии... Готово\\ | ||
| + | Расчёт обновлений... Готово\\ | ||
| + | Обновлено 0 пакетов, | ||
| + | root@debian:/ | ||
| + | |||
| + | После обновления системы, | ||
| + | |||
| + | <code bash> | ||
| + | # apt install bind9 | ||
| + | </ | ||
| + | <code bash> | ||
| + | root@debian:/ | ||
| + | Чтение списков пакетов... Готово\\ | ||
| + | Построение дерева зависимостей... Готово\\ | ||
| + | Чтение информации о состоянии... Готово\\ | ||
| + | Будут установлены следующие дополнительные пакеты: | ||
| + | bind9-utils dns-root-data python3-ply\\ | ||
| + | Предлагаемые пакеты: | ||
| + | bind-doc resolvconf ufw python-ply-doc\\ | ||
| + | Следующие НОВЫЕ пакеты будут установлены: | ||
| + | bind9 bind9-utils dns-root-data python3-ply\\ | ||
| + | Обновлено 0 пакетов, | ||
| + | Необходимо скачать 994 kB архивов.\\ | ||
| + | После данной операции объём занятого дискового пространства возрастёт на 2 361 kB.\\ | ||
| + | Хотите продолжить? | ||
| + | </ | ||
| + | ==== 1.4. Настройка межсетевого экрана ==== | ||
| + | DNS сервер работает сразу после установки. Однако, | ||
| + | |||
| + | <code bash> | ||
| + | # ufw enable | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | root@debian:/ | ||
| + | Firewall is active and enabled on system startup\\ | ||
| + | root@debian:/ | ||
| + | </ | ||
| + | |||
| + | Межсетевой экран включен. По умолчанию в нём отсутствуют какие-либо правила. Первое что мы сделаем это запретим все входящие соединения: | ||
| + | |||
| + | <code bash> | ||
| + | # ufw default deny incoming | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | root@debian:/ | ||
| + | Default incoming policy changed to ' | ||
| + | root@debian:/ | ||
| + | </ | ||
| + | |||
| + | Далее разрешаем работу DNS сервера через межсетевой экран, для этого включаем предустановленные правила: | ||
| + | |||
| + | <code bash> | ||
| + | # ufw allow Bind9 | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | root@debian:/ | ||
| + | Rule added\\ | ||
| + | Rule added (v6)\\ | ||
| + | root@debian:/ | ||
| + | </ | ||
| + | |||
| + | ==== 1.5. Настройка BIND9 ==== | ||
| + | Основные настройки BIND9 находятся в файле: **/// | ||
| + | |||
| + | Откроем его в режиме редактирования.\\ | ||
| + | |||
| + | Рассмотрим некоторые из доступных опций.\\ | ||
| + | |||
| + | **// | ||
| + | |||
| + | Обратите внимание на строку listen-on-v6 { any; }; если у Вас включен IPv6, то Bind9 будет слушать на всех адресах IPv6. Если необходимо этого избежать, | ||
| + | |||
| + | **// | ||
| + | |||
| + | **// | ||
| + | |||
| + | Полное руководство по BIND9 можно найти в **//BIND 9 Administrator Reference Manual//** https:// | ||
| + | |||
| + | В лабораторной работе наши DNS сервера будут принимать запросы от любого клиента находящегося в сети 10.0.0.0/8, IP-адреса наших DNS серверов в этой сети первичный: | ||
| + | |||
| + | Поправим файл настроек named.conf.options в соответствии с нашими требованиями.\\ | ||
| + | |||
| + | <file / | ||
| + | options { | ||
| + | directory "/ | ||
| + | // If there is a firewall between you and nameservers you want | ||
| + | // to talk to, you may need to fix the firewall to allow multiple | ||
| + | // ports to talk. See http:// | ||
| + | // If your ISP provided one or more IP addresses for stable. | ||
| + | // nameservers, | ||
| + | // Uncomment the following block, and insert the addresses replacing. | ||
| + | // the all-0' | ||
| + | forwarders { | ||
| + | 94.232.137.104; | ||
| + | 94.232.137.105; | ||
| + | }; | ||
| + | // | ||
| + | // If BIND logs error messages about the root key being expired, | ||
| + | // you will need to update your keys. See https:// | ||
| + | // | ||
| + | dnssec-validation auto; | ||
| + | // | ||
| + | listen-on { | ||
| + | 10.0.10.10; | ||
| + | }; | ||
| + | allow-query { | ||
| + | 10.0.0.0/ | ||
| + | }; | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | Сохраните и закройте файл. Проверьте настройку: | ||
| + | |||
| + | <code bash> | ||
| + | # named-checkconf | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | root@debian:/ | ||
| + | root@debian:/ | ||
| + | </ | ||
| + | |||
| + | Если ошибок не появилось, | ||
| + | |||
| + | <code bash> | ||
| + | # systemctl restart bind9 | ||
| + | </ | ||
| + | |||
| + | Настройка DNS сервера закончена. При такой базовой настройке DNS сервер работает как перенаправляющий DNS сервер, | ||
| + | |||
| + | После завершения процесса установки вы можете проверить работу BIND9 выполнив команду: | ||
| + | |||
| + | <code bash> | ||
| + | # nslookup google.com 10.0.10.10 | ||
| + | </ | ||
| + | |||
| + | Если вы увидели похожий вывод, то процесс установки прошёл успешно. | ||
| + | |||
| + | ====== 2. Настройка BIND9 первичным DNS сервером (Primary DNS) ====== | ||
| + | |||
| + | ==== 2.1. Зона прямого просмотра ==== | ||
| + | В лабораторной работе будет использоваться доменная зона **// | ||
| + | |||
| + | === 2.1.1. Создание зоны прямого просмотра === | ||
| + | Для создания зоны необходимо добавить информацию о зоне в файл конфигурации **/// | ||
| + | |||
| + | < | ||
| + | // Do any local configuration here | ||
| + | // Consider adding the 1918 zones here, if they are not used in your | ||
| + | // organization | ||
| + | // include "/ | ||
| + | zone " | ||
| + | type master; | ||
| + | file "/ | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | Рассмотрим некоторые из доступных опций: | ||
| + | |||
| + | * **// | ||
| + | * **// | ||
| + | * **// | ||
| + | * **// | ||
| + | |||
| + | В файле **/// | ||
| + | |||
| + | === 2.1.2. Конфигурационный файл зоны === | ||
| + | Создайте файл зоны **/// | ||
| + | |||
| + | Для создания файла используется команда: | ||
| + | |||
| + | <code bash> | ||
| + | # touch / | ||
| + | </ | ||
| + | |||
| + | root@debian:/ | ||
| + | root@debian:/ | ||
| + | |||
| + | Добавьте в файл сведения о зоне **// | ||
| + | |||
| + | Формат записей: | ||
| + | |||
| + | Немного подробнее: | ||
| + | |||
| + | ^ Параметр ^ Описание ^ | ||
| + | | $TTL | Время актуальности записей в секундах. Необходим, | ||
| + | | SOA-запись | В данном примере эта запись идет сразу после параметра TTL. Она хранит общие настройки для зоны.\\ Serial (2301141855) — порядковый номер изменения. Его необходимо каждый раз менять вручную при редактировании файла. С помощью него вторичный сервер (если такой есть) может определить, | ||
| + | | <имя узла> | ||
| + | | < | ||
| + | | <тип записи> | ||
| + | | < | ||
| + | |||
| + | В получившемся конфигурационном файле: | ||
| + | |||
| + | <file / | ||
| + | $TTL 604800 | ||
| + | @ | ||
| + | 2301141855 | ||
| + | 604800 | ||
| + | 86400 ; Retry | ||
| + | 2419200 | ||
| + | 604800 ) ; Negative Cache TTL | ||
| + | ; | ||
| + | @ | ||
| + | @ | ||
| + | ns1 | ||
| + | </ | ||
| + | |||
| + | • зоне **// | ||
| + | • узлу **// | ||
| + | |||
| + | === 2.1.3. Проверка работоспособности DNS сервера === | ||
| + | После создания зоны, для проверки работоспособности, | ||
| + | |||
| + | Перезапуск DNS сервера: | ||
| + | |||
| + | <code bash> | ||
| + | # systemctl reload bind9 | ||
| + | </ | ||
| + | |||
| + | Для перезагрузки зон используется утилита **// | ||
| + | |||
| + | **rndc < | ||
| + | |||
| + | При выполнении rndc на правильно настроенном DNS сервере доступны следующие команды: | ||
| + | |||
| + | * **halt** — немедленно останавливает демон named.\\ | ||
| + | * **querylog** — регистрирует все запросы, | ||
| + | * **refresh** — обновляет базу данных сервера имен.\\ | ||
| + | * **reload** — перезагружает файлы зоны, но сохраняет все остальные ранее кэшированные ответы. Эта команда также позволяет вносить изменения в файлы зон без потери всех сохраненных разрешений имен. Если внесенные изменения затрагивают только определенную зону, перезагрузите только эту конкретную зону, добавив название зоны после команды перезагрузки.\\ | ||
| + | * **stats** — сбрасывает текущую статистику named в файл / | ||
| + | * **stop** — останавливает сервер named, сохраняя все данные динамического обновления и инкрементной передачи зон (IXFR) перед выходом.\\ | ||
| + | |||
| + | Для перезагрузки зон выполним: | ||
| + | |||
| + | <code bash> | ||
| + | # rndc reload | ||
| + | </ | ||
| + | |||
| + | Затем проверим работу DNS сервера (IP-адрес нашего DNS 10.0.10.10) по обслуживанию зон прямого просмотра. Для этих целей будем использовать утилиту **// | ||
| + | |||
| + | **nslookup [-option] [name | -] [server]**\\ | ||
| + | |||
| + | Где, name — запрашиваемое имя, server — DNS сервер.\\ | ||
| + | |||
| + | Для проверки работоспособности DNS сервера, | ||
| + | |||
| + | <code bash> | ||
| + | # nslookup lab.local 10.0.10.10 | ||
| + | # nslookup ns1.lab.local 10.0.10.10 | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | root@ns1:/ | ||
| + | Server: 10.0.10.10\\ | ||
| + | Address: 10.0.10.10# | ||
| + | \\ | ||
| + | Name: lab.local\\ | ||
| + | Address: 10.0.0.1\\ | ||
| + | \\ | ||
| + | root@ns1:/ | ||
| + | Server: 10.0.10.10\\ | ||
| + | Address: 10.0.10.10# | ||
| + | \\ | ||
| + | Name: ns1.lab.local\\ | ||
| + | Address: 10.0.10.10\\ | ||
| + | root@ns1:/ | ||
| + | </ | ||
| + | |||
| + | Если вы увидели похожий вывод, то процесс настройки зоны прямого просмотра прошёл успешно. | ||
| + | |||
| + | ==== 2.2. Зона обратного просмотра ==== | ||
| + | |||
| + | === 2.2.1. Создание зоны обратного просмотра === | ||
| + | Процесс настройки зоны обратного просмотра проходит аналогично зоне прямого просмотра.\\ | ||
| + | |||
| + | Добавьте информацию о зоне в файл конфигурации **/// | ||
| + | |||
| + | <file / | ||
| + | // Do any local configuration here | ||
| + | // Consider adding the 1918 zones here, if they are not used in your | ||
| + | // organization | ||
| + | //include "/ | ||
| + | zone " | ||
| + | type master; | ||
| + | file "/ | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file "/ | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | === 2.2.2. Конфигурационный файл зоны === | ||
| + | Создайте файл зоны **/// | ||
| + | |||
| + | Для создания файла используется команда: | ||
| + | |||
| + | <code bash> | ||
| + | # touch / | ||
| + | </ | ||
| + | |||
| + | Добавьте в файл сведения о зоне **// | ||
| + | |||
| + | <file / | ||
| + | $TTL 604800 | ||
| + | @ | ||
| + | 2301141855 | ||
| + | 604800 | ||
| + | 86400 ; Retry | ||
| + | 2419200 | ||
| + | 604800 ) ; Negative Cache TTL | ||
| + | ; | ||
| + | @ | ||
| + | 1.0.0 | ||
| + | 10.10.0 IN PTR | ||
| + | </ | ||
| + | |||
| + | Так как наша зона 10.0.0.0/8, то первый байт не указывается.\\ | ||
| + | |||
| + | В итоге получается: | ||
| + | |||
| + | * IP-адресу 10.0.0.1 соответствует зона **// | ||
| + | * IP-адресу 10.0.10.10 соответствует узел **// | ||
| + | |||
| + | === 2.2.3. Проверка работоспособности DNS сервера === | ||
| + | После создания зоны, для проверки работоспособности, | ||
| + | |||
| + | Перезапуск DNS сервера: | ||
| + | |||
| + | <code bash> | ||
| + | # systemctl reload bind9 | ||
| + | </ | ||
| + | |||
| + | Перезагрузка зон:\\ | ||
| + | |||
| + | <code bash> | ||
| + | # rndc reload | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | root@debian:/ | ||
| + | root@debian:/ | ||
| + | server reload successful | ||
| + | root@debian:/ | ||
| + | </ | ||
| + | Затем проверим работу DNS сервера (IP-адрес нашего DNS 10.0.10.10) по обслуживанию зон обратного просмотра: | ||
| + | |||
| + | <code bash> | ||
| + | # nslookup 10.0.0.1 10.0.10.10 | ||
| + | # nslookup 10.0.10.10 10.0.10.10 | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | root@ns1:/ | ||
| + | 1.0.0.10.in-addr.arpa name = lab.local. | ||
| + | |||
| + | root@ns1:/ | ||
| + | 10.10.0.10.in-addr.arpa name = ns1.lab.local. | ||
| + | root@ns1:/ | ||
| + | </ | ||
| + | |||
| + | Если вы увидели похожий вывод, то процесс настройки зоны обратного просмотра прошёл успешно. | ||
| + | |||
| + | ====== 3. Настройка BIND9 вторичным DNS сервером (Secondary DNS) ====== | ||
| + | |||
| + | ==== 3.1. Настройка BIND9 ==== | ||
| + | Необходимо настроить основные настройки BIND9, находящиеся в файле: | ||
| + | |||
| + | **/// | ||
| + | |||
| + | Откроем его в режиме редактирования: | ||
| + | |||
| + | <file / | ||
| + | options { | ||
| + | directory "/ | ||
| + | // If there is a firewall between you and nameservers you want | ||
| + | // to talk to, you may need to fix the firewall to allow multiple | ||
| + | // ports to talk. See http:// | ||
| + | // If your ISP provided one or more IP addresses for stable. | ||
| + | // nameservers, | ||
| + | // Uncomment the following block, and insert the addresses replacing. | ||
| + | // the all-0' | ||
| + | forwarders { | ||
| + | 94.232.137.104; | ||
| + | 94.232.137.105; | ||
| + | }; | ||
| + | // | ||
| + | // If BIND logs error messages about the root key being expired, | ||
| + | // you will need to update your keys. See https:// | ||
| + | // | ||
| + | dnssec-validation auto; | ||
| + | // | ||
| + | listen-on { | ||
| + | 10.0.20.10; | ||
| + | }; | ||
| + | allow-query { | ||
| + | 10.0.0.0/ | ||
| + | }; | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | ==== 3.2. Настройка зон прямого и обратного просмотра первичного DNS сервера ==== | ||
| + | Первое что необходимо сделать это добавить в файл конфигурации зоны первичного сервера сведения о вторичном сервере. Для этого редактируем файл конфигурации **/// | ||
| + | |||
| + | <file / | ||
| + | // Do any local configuration here | ||
| + | // Consider adding the 1918 zones here, if they are not used in your | ||
| + | // organization | ||
| + | //include "/ | ||
| + | zone " | ||
| + | type master; | ||
| + | file "/ | ||
| + | allow-transfer { | ||
| + | 10.0.20.10; | ||
| + | }; | ||
| + | also-notify { | ||
| + | 10.0.20.10; | ||
| + | }; | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file "/ | ||
| + | allow-transfer { | ||
| + | 10.0.20.10; | ||
| + | }; | ||
| + | also-notify { | ||
| + | 10.0.20.10; | ||
| + | }; | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | И перезапускаем DNS сервер: | ||
| + | |||
| + | <code bash> | ||
| + | # systemctl reload bind9 | ||
| + | </ | ||
| + | |||
| + | ==== 3.3. Настройка зон прямого и обратного просмотра вторичного DNS сервера ==== | ||
| + | Теперь необходимо добавить информацию о зоне в файл конфигурации **/// | ||
| + | |||
| + | <file / | ||
| + | // Do any local configuration here | ||
| + | // Consider adding the 1918 zones here, if they are not used in your | ||
| + | // organization | ||
| + | //include "/ | ||
| + | zone " | ||
| + | type slave; | ||
| + | file " | ||
| + | masters { | ||
| + | 10.0.10.10; | ||
| + | }; | ||
| + | }; | ||
| + | zone " | ||
| + | type slave; | ||
| + | file " | ||
| + | masters { | ||
| + | 10.0.10.10; | ||
| + | }; | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | Обратите внимание, | ||
| + | |||
| + | ==== 3.4. Проверка работоспособности вторичного DNS сервера ==== | ||
| + | После создания зон, для проверки работоспособности, | ||
| + | |||
| + | Перезапуск DNS сервера: | ||
| + | |||
| + | <code bash> | ||
| + | # systemctl reload bind9 | ||
| + | </ | ||
| + | |||
| + | Перезагрузка зон:\\ | ||
| + | |||
| + | <code bash> | ||
| + | # rndc reload | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | root@debian:/ | ||
| + | root@debian:/ | ||
| + | server reload successful | ||
| + | root@debian:/ | ||
| + | </ | ||
| + | |||
| + | Затем проверим работу DNS сервера (IP-адрес нашего вторичного DNS 10.0.20.10): | ||
| + | |||
| + | <code bash> | ||
| + | # nslookup lab.local 10.0.20.10 | ||
| + | # nslookup ns1.lab.local 10.0.20.10 | ||
| + | # nslookup 10.0.0.1 10.0.20.10 | ||
| + | # nslookup 10.0.10.10 10.0.20.10 | ||
| + | </ | ||
| + | |||
| + | Если вы увидели похожий вывод, то процесс настройки вторичного DNS сервера прошёл успешно.\\ | ||
| + | |||
| + | Далее самостоятельно добавьте сведения о доменном имени вторичного DNS сервера: | ||
rias/dnsdebian11.1779395861.txt.gz · Последнее изменение: — admin1
