Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия | |||
— | bind [2025/07/06 12:38] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Настройка DNS -сервера BIND ====== | ||
+ | |||
+ | ~~Title: DNS сервер BIND ~~ | ||
+ | {{htmlmetatags> | ||
+ | metatag-description=(Логирование DNS запросов в BIND, управление DNS сервером. DNS сервер BIND: установка, | ||
+ | }} | ||
+ | |||
+ | Основная цель DNS — это отображение доменных имен в IP адреса и наоборот — IP в DNS. | ||
+ | |||
+ | BIND (Berkeley Internet Name Domain, до этого: Berkeley Internet Name Daemon) — открытая и наиболее распространённая реализация DNS-сервера | ||
+ | {{ :: | ||
+ | |||
+ | < | ||
+ | # named -v | ||
+ | BIND 9.4.3-P2 | ||
+ | </ | ||
+ | Расположение файлов BIND: | ||
+ | < | ||
+ | > tree /var/named/ | ||
+ | /var/named/ | ||
+ | |-- dev | ||
+ | |-- etc | ||
+ | | `-- namedb # | ||
+ | | |-- dynamic | ||
+ | | |-- master | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | |-- named.conf # | ||
+ | | |-- named.root | ||
+ | | `-- slave | ||
+ | `-- var | ||
+ | |-- dump | ||
+ | |-- log | ||
+ | |-- run | ||
+ | | `-- named | ||
+ | `-- stats | ||
+ | </ | ||
+ | Разрешаем запуск DNS сервера:< | ||
+ | # echo ' | ||
+ | </ | ||
+ | {{ :: | ||
+ | ===== Файл зоны ===== | ||
+ | **Синтаксис файлов зон** | ||
+ | * ; - комментарий | ||
+ | * @ - символ подставновки. Подставляется имя домена из named.conf (название файла зоны) или если задан переменная $ORIGIN | ||
+ | * () - используется для переноса длинных строк. | ||
+ | |||
+ | |||
+ | ====== named.root или db.root обновление ====== | ||
+ | Файл **named.root** (db.root) содержит списки корневых серверов [[DNS]]. Этот файл меняется достаточно редко, но его последнюю официальную версию всегда можно скачать с ftp.internic.net (ftp.rs.internic.net). Содержимое db.root (иногда называемого named.ca для " | ||
+ | < | ||
+ | > pwd | ||
+ | / | ||
+ | > fetch ftp:// | ||
+ | named.root | ||
+ | </ | ||
+ | ====== resolv.conf ====== | ||
+ | Редактируем файл / | ||
+ | |||
+ | < | ||
+ | > ee / | ||
+ | domain | ||
+ | nameserver | ||
+ | #DNS your ISP | ||
+ | nameserver | ||
+ | nameserver | ||
+ | </ | ||
+ | |||
+ | **Резолвер(resolver)** - это набор подпрограмм в библиотеке C, которые предоставляют доступ к Internel [[DNS]] (Domain Name System) (Системе Доменных Имен Интернет) (прим. пер. -- DNS обеспечивает возможность преобразования символьных имен машин в IP-адреса и наоборот, | ||
+ | |||
+ | В нормально настроенной системе данный файл не нужен: запросы будут обрабатываться сервером на локальном хосте, имя домена определяется из имени машины, | ||
+ | |||
+ | **Параметры конфигурации: | ||
+ | * nameserver | ||
+ | адрес сервера имен в Интернет (в нотации xxx.xxx.xxx.xxx), | ||
+ | * domain | ||
+ | Локальное имя домена. Большинство запросов на имена машин в этом домене смогут использовать лишь краткие имена, без указания имени домена. Если записей domain нет, то домен определяется из имени локальной машины, | ||
+ | * search | ||
+ | Список для поиска имен машин. Список обычно определяется из локального имени домена; | ||
+ | Список в данный момент ограничен шестью доменами, | ||
+ | * sortlist | ||
+ | Разрешает сортировку адресов, | ||
+ | пример: | ||
+ | * options | ||
+ | Данная опция разрешает изменение определенных переменных резолвера. Синтаксис такой: | ||
+ | < | ||
+ | options опция ... | ||
+ | где опция может принимать одно из следующих значений: | ||
+ | debug --- устанавливает RES_DEBUG в _res.options. | ||
+ | ndots:n --- устанавливает порог для количества точек, которое должно быть в имени, заданном в res_query (см. resolver(@LIB_NETWORK_EXT@)) | ||
+ | перед тем как будет создан начальный абсолютный запрос (initial absolute query). По умолчанию, | ||
+ | хоть одна точка, будет попытка считать это имя абсолютным перед добавлением к нему элементов из списка search. | ||
+ | </ | ||
+ | <note tip> | ||
+ | <note tip> | ||
+ | ====== named.conf ====== | ||
+ | |||
+ | Настраиваем named.conf | ||
+ | < | ||
+ | > ee / | ||
+ | ... | ||
+ | options { | ||
+ | ... | ||
+ | //listen-on [ port ip_port ] { список-шаблонов-адресов }; (по умолчанию - все интерфейсы, | ||
+ | // | ||
+ | // | ||
+ | // укажем явно, на каких интерфейсах обслуживать запросы | ||
+ | listen-on | ||
+ | // | ||
+ | // listen-on-v6 [ port ip_port ] { список-шаблонов-адресов }; (none; для IPv6) | ||
+ | // listen-on-v6 | ||
+ | |||
+ | // | ||
+ | | ||
+ | ... | ||
+ | } | ||
+ | |||
+ | // | ||
+ | //master - сервер является первичным уполномоченным сервером для данной зоны, т.е. загружает содержимое зоны из файла зоны, | ||
+ | // указанного опцией file | ||
+ | //slave - сервер является вторичным уполномоченным сервером для данной зоны; содержимое зоны считывается от одного из серверов, | ||
+ | // | ||
+ | // | ||
+ | zone " | ||
+ | type master; | ||
+ | file " | ||
+ | allow-transfer{ | ||
+ | 127.0.0.1; | ||
+ | //IP вашего сервера DNS | ||
+ | x.x.x.x; | ||
+ | //IP slave | ||
+ | 195.24.128.164; | ||
+ | }; | ||
+ | }; | ||
+ | |||
+ | </ | ||
+ | Стартуем DNS нашего сервера. | ||
+ | < | ||
+ | > / | ||
+ | wrote key file "/ | ||
+ | Starting named. | ||
+ | </ | ||
+ | Проверяем и видим ошибку "the working directory is not writable" | ||
+ | < | ||
+ | > tail -F / | ||
+ | ... | ||
+ | Oct 25 16:12:48 ns named[59827]: | ||
+ | Oct 25 16:12:48 ns named[59827]: | ||
+ | Oct 25 16:12:48 ns named[59827]: | ||
+ | Oct 25 16:12:48 ns named[59827]: | ||
+ | Oct 25 16:12:48 ns named[59827]: | ||
+ | ... | ||
+ | </ | ||
+ | BIND изначально запускается в песочнице. За настройки в песочнице отвечает файл BIND.chroot.dist. Изменим в этом файле строки для директорий namedb и master. | ||
+ | < | ||
+ | > cp / | ||
+ | > ee / | ||
+ | ... | ||
+ | etc | ||
+ | namedb uname=bind | ||
+ | dynamic uname=bind | ||
+ | .. | ||
+ | master | ||
+ | ... | ||
+ | > chown -R bind:wheel / | ||
+ | </ | ||
+ | Ошибка устранена. | ||
+ | |||
+ | |||
+ | ====== Логирование DNS запросов ====== | ||
+ | Для логирования всего происходящего при работе BIND нужно создать раздел logging в named.conf и создать нужные директории. В разделе logging задаются 2 параметра channel (можно и больше двух - на ваше усмотрение), | ||
+ | < | ||
+ | // настройки логирования | ||
+ | logging { | ||
+ | channel " | ||
+ | file "/ | ||
+ | print-time yes; | ||
+ | print-severity yes; | ||
+ | print-category yes; | ||
+ | }; | ||
+ | |||
+ | channel " | ||
+ | file "/ | ||
+ | print-time yes; | ||
+ | print-severity no; | ||
+ | print-category no; | ||
+ | }; | ||
+ | |||
+ | category default { | ||
+ | " | ||
+ | }; | ||
+ | |||
+ | category queries { | ||
+ | " | ||
+ | }; | ||
+ | }; | ||
+ | </ | ||
+ | ====== rndc - управление DNS сервером BIND 9 ====== | ||
+ | В то время как управление работающим сервером BIND 4 осуществлялось простой посылкой сигнала процессу (HUP - перезагрузить файл настройки и зоны; TERM - остановить; | ||
+ | |||
+ | Настраивая сервер, | ||
+ | |||
+ | Файл настройки rndc (/ | ||
+ | < | ||
+ | * options { | ||
+ | o default-server имя-или-адрес-сервера; | ||
+ | o default-key " | ||
+ | o default-port номер-управляющего-порта; | ||
+ | } | ||
+ | * server имя-или-адрес-сервера { // адрес в двойных кавычках | ||
+ | o key " | ||
+ | o port номер-управляющего-порта; | ||
+ | } | ||
+ | * key " | ||
+ | o algorithm hmac-md5; | ||
+ | o secret " | ||
+ | } | ||
+ | </ | ||
+ | Утилита rndc-confgen позволяет сгенерировать / | ||
+ | |||
+ | * -b размер-ключа (по умолчанию - 128; от 1 до 512) | ||
+ | * -k имя-ключа (по умолчанию - rndc-key) | ||
+ | * -p номер-управляющего-порта (по умолчанию - 953) | ||
+ | * -s имя-или-адрес-сервера (по умолчанию - 127.0.0.1) | ||
+ | |||
+ | Утилита rndc позволяет менять параметры соединения с сервером с помощью ключей: | ||
+ | |||
+ | * -c имя-файла-настройки | ||
+ | * -s имя-или-адрес-сервера | ||
+ | * -p номер-управляющего-порта | ||
+ | * -y имя-ключа | ||
+ | * -V (трассировка исполнения для отладки) | ||
+ | |||
+ | Если запустить rndc без указания команды, | ||
+ | |||
+ | * reload (перезагрузить файл настройки и зоны) | ||
+ | * reload зона [класс [вид]] (перезагрузить зону) | ||
+ | * refresh зона [класс [вид]] (запланировать немедленное обновление зоны) | ||
+ | * reconfig (перезагрузить файл настройки и новые зоны) | ||
+ | * stats (записать статистику в конец файла named.stats) | ||
+ | * **querylog** (включить/ | ||
+ | * **dumpdb** (сбросить базу данных в файл named_dump.db, | ||
+ | * stop (сохранить изменения в файлы зон и остановить сервер) | ||
+ | * halt (остановить сервер без сохранения изменений) | ||
+ | * trace (увеличить уровень отладки на 1) в файле **named.run** -появятся отладочные сообщения | ||
+ | * trace уровень (установить уровень отладки) | ||
+ | * notrace (отключить отладку) | ||
+ | * flush (сбросить весь кеш) | ||
+ | * flush вид (сбросить кеш для указанного вида) | ||
+ | * **flushname** (сбросить кеш для указанного домена, | ||
+ | * status (показать состояние сервера) | ||
+ | * restart (перезапустить сервер; | ||
+ | ====== Domain Name Speed Benchmark ====== | ||
+ | |||
+ | Правильность настройки DNS сервера и его скорость вы можете проверить при помощи [[https:// | ||
+ | |||
+ | Читайте также: [[dynamic_dns]], |
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга