Инструменты пользователя

Инструменты сайта


freebsd:bind9

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
freebsd:bind9 [2020/11/22 11:06]
alex
freebsd:bind9 [2022/01/08 15:27] (текущий)
alex
Строка 1: Строка 1:
 ====== Установка и настройка BIND9 ====== ====== Установка и настройка BIND9 ======
  
-Формат файла настройки 
  
 +
 +
 +
 +
 +
 +==== Установка ====
 +
 +  cd/​usr/​ports/​dns/​bind910 make install clean
 +  ​
 +  ┌────────────────────────────── bind910-9.10.4 ────────────────────────────────┐
 +  │ ┌──────────────────────────────────────────────────────────────────────────┐ │  ​
 +  │ │+[x] DOCS            Build and/or install documentation ​                  │ │  ​
 +  │ │+[ ] FETCHLIMIT ​     Enable the query quotas for resolvers ​               │ │  ​
 +  │ │+[ ] FILTER_AAAA ​    ​Enable filtering of AAAA records ​                    │ │  ​
 +  │ │+[ ] FIXED_RRSET ​    ​Enable fixed rrset ordering ​                         │ │  ​
 +  │ │+[x] GEOIP           Allow geographically based ACL.                      │ │  ​
 +  │ │+[x] IDN             ​International Domain Names support ​                  │ │  ​
 +  │ │+[ ] IPV6            IPv6 protocol support ​                               │ │  ​
 +  │ │+[ ] LARGE_FILE ​     64-bit file support ​                                 │ │  ​
 +  │ │+[x] LINKS           ​Create conf file symlinks in /​usr/​local ​             │ │  ​
 +  │ │+[ ] MINCACHE ​       Use the mincachettl patch                            │ │  ​
 +  │ │+[ ] NEWSTATS ​       Enable alternate xml statistics channel format ​      │ │  ​
 +  │ │+[ ] PORTREVISION ​   Show PORTREVISION in the version string ​             │ │  ​
 +  │ │+[ ] PYTHON ​         Build with Python utilities ​                         │ │  ​
 +  │ │+[ ] QUERYTRACE ​     Enable the very verbose query tracelogging ​          │ │  ​
 +  │ │+[ ] RPZ_NSDNAME ​    ​Enable RPZ NSDNAME policy records ​                   │ │  ​
 +  │ │+[ ] RPZ_NSIP ​       Enable RPZ NSIP trigger rules                        │ │  ​
 +  │ │+[x] RRL             ​Response Rate Limiting ​                              │ │  ​
 +  │ │+[x] SIGCHASE ​       dig/​host/​nslookup will do DNSSEC validation ​         │ │  ​
 +  │ │+[x] START_LATE ​     Start BIND late in the boot process ​                 │ │  ​
 +  │ │+[x] THREADS ​        ​Threading support ​                                   │ │  ​
 +  │ │──────────────────────── Dynamically Loadable Zones ──────────────────────│ │  ​
 +  │ │+[ ] DLZ_POSTGRESQL ​ DLZ Postgres driver ​                                 │ │  ​
 +  │ │+[ ] DLZ_MYSQL ​      DLZ MySQL driver (no threading) ​                     │ │  ​
 +  │ │+[ ] DLZ_BDB ​        DLZ BDB driver ​                                      │ │  ​
 +  │ │+[ ] DLZ_LDAP ​       DLZ LDAP driver ​                                     │ │  ​
 +  │ │+[ ] DLZ_FILESYSTEM ​ DLZ filesystem driver ​                               │ │  ​
 +  │ └─────v(+)─────────────────────────────────────────────────────────68%─────┘ │  ​
 +  ├──────────────────────────────────────────────────────────────────────────────┤  ​
 +  │                       < ​ OK  >            <​Cancel> ​                          ​│  ​
 +  └──────────────────────────────────────────────────────────────────────────────┘  ​
 +  ​
 +  Installing bind910-9.10.4...
 +  **********************************************************************
 +  *            _  _____ _____ _____ _   _ _____ ___ ___  _   ​_ ​        *
 +  *           / \|_   ​_|_ ​  _| ____| \ | |_   _|_ _/ _ \| \ | |        *
 +  *          / _ \ | |   | | |  _| |  \| | | |  | | | | |  \| |        *
 +  *         / ___ \| |   | | | |___| |\  | | |  | | |_| | |\  |        *
 +  *        /_/   ​\_\_| ​  |_| |_____|_| \_| |_| |___\___/​|_| \_|        *
 +  *                                                                    *
 +  *   BIND requires configuration of rndc, including a "​secret"​ key.   *
 +  *    The easiest, and most secure way to configure rndc is to run    *
 +  *   '​rndc-confgen -a' to generate the proper conf file, with a new   *
 +  *            random key, and appropriate file permissions. ​          *
 +  *                                                                    *
 +  *     The /​usr/​local/​etc/​rc.d/​named script will do that for you.     *
 +  *                                                                    *
 +  **********************************************************************
 +  ​
 +  ===> SECURITY REPORT: ​
 +        This port has installed the following files which may act as network
 +        servers and may therefore pose a remote security risk to the system.
 +  /​usr/​local/​sbin/​named-journalprint
 +  /​usr/​local/​sbin/​named
 +  /​usr/​local/​sbin/​rndc-confgen
 +  /​usr/​local/​sbin/​dnssec-verify
 +  /​usr/​local/​sbin/​ddns-confgen
 +  /​usr/​local/​sbin/​dnssec-dsfromkey
 +  /​usr/​local/​bin/​host
 +  /​usr/​local/​sbin/​nsec3hash
 +  /​usr/​local/​sbin/​dnssec-signzone
 +  /​usr/​local/​bin/​nsupdate
 +  /​usr/​local/​sbin/​rndc
 +  /​usr/​local/​sbin/​lwresd
 +  /​usr/​local/​bin/​dig
 +  /​usr/​local/​sbin/​dnssec-revoke
 +  /​usr/​local/​sbin/​isc-hmac-fixup
 +  /​usr/​local/​sbin/​dnssec-keygen
 +  /​usr/​local/​bin/​delv
 +  /​usr/​local/​sbin/​named-checkzone
 +  /​usr/​local/​sbin/​dnssec-keyfromlabel
 +  /​usr/​local/​sbin/​dnssec-importkey
 +  /​usr/​local/​sbin/​named-checkconf
 +  /​usr/​local/​sbin/​genrandom
 +  /​usr/​local/​sbin/​named-rrchecker
 +  /​usr/​local/​bin/​nslookup
 +  /​usr/​local/​sbin/​dnssec-settime
 +  ​
 +      This port has installed the following startup scripts which may cause
 +      these network services to be started at boot time.
 +  /​usr/​local/​etc/​rc.d/​named
 +  ​
 +      If there are vulnerabilities in these programs there may be a security
 +      risk to the system. FreeBSD makes no guarantee about the security of
 +      ports included in the Ports Collection. Please type 'make deinstall'​
 +      to deinstall the port if this is a concern.
 +  ​
 +      For more information,​ and contact details about the security
 +      status of this software, see the following webpage: ​
 +  https://​www.isc.org/​software/​bind
 +  ===> ​ Cleaning for libxml2-2.9.3
 +  ===> ​ Cleaning for GeoIP-1.6.9
 +  ===> ​ Cleaning for idnkit-1.0_5
 +  ===> ​ Cleaning for libedit-3.1.20150325_2
 +  ===> ​ Cleaning for bind910-9.10.4
 +  root@mgmt:/​usr/​ports/​dns/​bind910#​ rehash ​
 +  root@mgmt:/​usr/​ports/​dns/​bind910#​ pkg info | grep bind
 +  bind910-9.10.4 ​                BIND DNS suite with updated DNSSEC and DNS64
 +  root@mgmt:/​usr/​ports/​dns/​bind910#  ​
 +
 +После завершения установки,​ проверяю версию установленного BIND: 
 +
 +  named -v
 +
 +==== Настройка ====
 +
 +=== Формат файла настройки ===
 Файл настройки BIND 9 обычно называется /​etc/​named.conf. Утилита named-checkzone проверяет синтаксис файла зоны. В качестве параметра указываются имя зоны и имя файла. Утилита named-checkconf проверяет синтаксис файла настройки. В качестве параметра можно указать имя файла. Файл настройки BIND 9 обычно называется /​etc/​named.conf. Утилита named-checkzone проверяет синтаксис файла зоны. В качестве параметра указываются имя зоны и имя файла. Утилита named-checkconf проверяет синтаксис файла настройки. В качестве параметра можно указать имя файла.
  
Строка 199: Строка 315:
 Чтобы принять 2 вида зоны slave сервер должен иметь 2 адреса,​ на которые будут передаваться различные виды. Чтобы принять 2 вида зоны slave сервер должен иметь 2 адреса,​ на которые будут передаваться различные виды.
  
-==== Ведение журналов,​ сбор статистики и отладка ==== +=== Работа в chroot ​окружении ===
- +
-Утверждение **logging** позволяет задать произвольное число способов записи в журнал с помощью предложений **channel** и привязать различные категории сообщений к каналам с помощью предложений **category**. +
- +
-В предложении **channel** задается имя канала,​ способ записи (в файл с ограничением его размера (можно использовать масштабирующие коэффициенты K, M и G) и числа версий,​ syslog, stderr, null), фильтр (минимальный уровень серьезности сообщений для вывода через этот канал) и формат вывода (выводить ли в каждое сообщение имя категории,​ уровень серьезности и метку времени;​ по умолчанию - нет): +
- +
-  channel имя-канала { +
-       ( file имя-файла +
-           [ versions ( число | unlimited ) ] +
-           [ size максимальный-размер ] +
-         | syslog syslog_facility +
-         | stderr +
-         | null ); +
-       [ severity (critical | error | warning | notice | +
-                   info | debug [ уровень ] | dynamic ); ] +
-       [ print-category yes-или-no;​ ] +
-       [ print-severity yes-или-no;​ ] +
-       [ print-time yes-или-no;​ ] +
-     }; +
-Версии файла (file, file.0, file.1 и т.д.) перенумеровываются при каждом открытии (кстати,​ а когда он открывается?​),​ если максимальный размер файла не задан. Если задан и размер и число версий,​ то перенумеровывание при открытии происходит только при превышении этого размера. Если при записи в файл его максимальный размер будет превышен,​ то при указании числа версий происходит перенумерация файлов и открывается новый, если число версий не указано,​ то запись в файл просто прекращается. +
- +
-Режим отладки задается либо при запуске (ключ -d), либо командой trace программы rndc (выключается командой rndc notrace). Команда trace позволяет указать уровень отладки (чем больше ​уровень,​ тем более подробная отладочная информация выдается,​ уровень 3 достаточно болтлив). При указании фильтра (severity) можно указать определенный уровень отладки (debug [ уровень ]) для включения отладочной печати данного уровня (и ниже) независимо от уровня отладки сервера (лишь бы ее включили) или указать ключевое слово dynamic для отладочной печати уровня,​ совпадающего с уровнем отладки сервера. +
- +
-В предложении **category** задается имя категории и список ранее определенных каналов,​ через которые будут выводиться сообщения данной категории:​ +
- +
-  category имя-категории { +
-       ​имя-канала ; [ имя-канала ; ... ] +
-     }; +
-Определены следующие категории:​ +
- +
-  * default (определяет каналы для тех категорий,​ каналы для которых не определены явно; queries при этом не включается) +
-  * general (неотсортированные в другие категории сообщения) +
-  * database (хранение зон и кеш) +
-  * security (при уровне отладки 3 - разрешения и запрещения,​ наличие подписей) +
-  * config (разбор файла настройки) +
-  * resolver (выполнение рекурсивных запросов клиентов,​ обращение к другим серверам,​ объем выдачи зависит от уровня отладки) +
-  * xfer-in +
-  * xfer-out +
-  * notify +
-  * client (обработка клиентских запросов и посылка ответов,​ уровень отладки 3) +
-  * unmatched (отсутствует класс или view) +
-  * network +
-  * update +
-  * queries (включается командой rndc querylog; явная привязка этой категории к каналам также включает трассировку - severity info) +
-  * dispatch (передача запросов между модулями bind) +
-  * dnssec +
-  * lame-servers (severity info) +
-  * delegation-only (ответы NXDOMAIN в результате действия опции delegation-only) +
-Переопределять каналы (в т.ч. встроенные) нельзя,​ но можно привязать категории к новым каналам. Сообщения об ошибках синтаксиса файла настройки и о запуске сервера записываются как будто утверждение logging отсутствует (так что syslog:​daemon тоже надо просматривать регулярно). По умолчанию принимается следующая настройка записи в журнал:​ +
- +
-  logging { +
-    channel default_syslog { +
-      syslog daemon; +
-      severity info; +
-    }; +
-    channel default_debug { +
-      file "​named.run";​ +
-      severity dynamic; +
-    }; +
-    channel default_stderr { +
-      stderr; +
-      severity info; +
-    }; +
-    channel null { +
-     ​null;​ +
-    }; +
-    category default { default_syslog;​ default_debug;​ }; +
-    category unmatched { null; }; +
-  }; +
-Количество статистической информации,​ собираемой BIND 9 сильно уменьшилось о сравнению с предыдущими версиями. Накопленная статистика добавляется командой rndc stats к файлу named.stats в рабочей директории (options, directory), очередной раздел обрамляется строками "​Statistics Dump" с указанием времени в формате UNIX: +
- +
-  * success - число запросов,​ не вызвавших ошибок или возврата клиенту ссылки +
-  * referral - число запросов,​ на которые сервер вернул клиенту ссылки +
-  * nxrrset - несуществующих записей запрошенного типа для доменного имени +
-  * nxdomain - несуществующих доменных имен +
-  * recursion - число запросов,​ потребовавших рекурсивной обработки +
-  * failure - число ошибок,​ кроме nxrrset и nxdomain +
-Общее число запросов к серверу равно success + referral + nxrrset + nxdomain + failure. Статистика может собираться отдельно по зонам и видам, в этом случае имена зоны и вида (опускается для вида default) приводятся в конце каждой строки. +
- +
-Запуск сервера +
- +
-Рекомендуется создать специальную группу named и пользователя named для запуска сервера. Перед запуском необходимо отредактировать /​etc/​named.conf,​ файлы зон и установить соответствующие права доступа к ним и прочим файлам,​ имеющим отношение к серверу (простой пример). Если необходимо управление сервером с помощью программы rndc, то необходимо также отредактировать /​etc/​rndc.conf. Ключи запуска:​ +
- +
-  * -c имя-файла-настройки (полное имя файла) +
-  * -d уровень-отладки +
-  * -f (не уходить в фоновый режим при запуске) +
-  * -g (не уходить в фоновый режим при запуске,​ вся отладочная печать на stderr) +
-  * -p номер-обслуживаемого-порта +
-  * -u идентификатор-пользователя (сменить эффективный идентификатор пользователя с root на указанный как можно скорее после запуска) +
- +
- +
- +
-==== Установка ==== +
- +
-  cd/​usr/​ports/​dns/​bind910 make install clean +
-   +
-  ┌────────────────────────────── bind910-9.10.4 ────────────────────────────────┐ +
-  │ ┌──────────────────────────────────────────────────────────────────────────┐ │   +
-  │ │+[x] DOCS            Build and/or install documentation ​                  │ │   +
-  │ │+[ ] FETCHLIMIT ​     Enable the query quotas for resolvers ​               │ │   +
-  │ │+[ ] FILTER_AAAA ​    ​Enable filtering of AAAA records ​                    │ │   +
-  │ │+[ ] FIXED_RRSET ​    ​Enable fixed rrset ordering ​                         │ │   +
-  │ │+[x] GEOIP           Allow geographically based ACL.                      │ │   +
-  │ │+[x] IDN             ​International Domain Names support ​                  │ │   +
-  │ │+[ ] IPV6            IPv6 protocol support ​                               │ │   +
-  │ │+[ ] LARGE_FILE ​     64-bit file support ​                                 │ │   +
-  │ │+[x] LINKS           ​Create conf file symlinks in /​usr/​local ​             │ │   +
-  │ │+[ ] MINCACHE ​       Use the mincachettl patch                            │ │   +
-  │ │+[ ] NEWSTATS ​       Enable alternate xml statistics channel format ​      │ │   +
-  │ │+[ ] PORTREVISION ​   Show PORTREVISION in the version string ​             │ │   +
-  │ │+[ ] PYTHON ​         Build with Python utilities ​                         │ │   +
-  │ │+[ ] QUERYTRACE ​     Enable the very verbose query tracelogging ​          │ │   +
-  │ │+[ ] RPZ_NSDNAME ​    ​Enable RPZ NSDNAME policy records ​                   │ │   +
-  │ │+[ ] RPZ_NSIP ​       Enable RPZ NSIP trigger rules                        │ │   +
-  │ │+[x] RRL             ​Response Rate Limiting ​                              │ │   +
-  │ │+[x] SIGCHASE ​       dig/​host/​nslookup will do DNSSEC validation ​         │ │   +
-  │ │+[x] START_LATE ​     Start BIND late in the boot process ​                 │ │   +
-  │ │+[x] THREADS ​        ​Threading support ​                                   │ │   +
-  │ │──────────────────────── Dynamically Loadable Zones ──────────────────────│ │   +
-  │ │+[ ] DLZ_POSTGRESQL ​ DLZ Postgres driver ​                                 │ │   +
-  │ │+[ ] DLZ_MYSQL ​      DLZ MySQL driver (no threading) ​                     │ │   +
-  │ │+[ ] DLZ_BDB ​        DLZ BDB driver ​                                      │ │   +
-  │ │+[ ] DLZ_LDAP ​       DLZ LDAP driver ​                                     │ │   +
-  │ │+[ ] DLZ_FILESYSTEM ​ DLZ filesystem driver ​                               │ │   +
-  │ └─────v(+)─────────────────────────────────────────────────────────68%─────┘ │   +
-  ├──────────────────────────────────────────────────────────────────────────────┤ ​  +
-  │                       < ​ OK  >            <​Cancel> ​                          ​│ ​  +
-  └──────────────────────────────────────────────────────────────────────────────┘ ​  +
-   +
-  Installing bind910-9.10.4... +
-  ********************************************************************** +
-  *            _  _____ _____ _____ _   _ _____ ___ ___  _   ​_ ​        * +
-  *           / \|_   ​_|_ ​  _| ____| \ | |_   _|_ _/ _ \| \ | |        * +
-  *          / _ \ | |   | | |  _| |  \| | | |  | | | | |  \| |        * +
-  *         / ___ \| |   | | | |___| |\  | | |  | | |_| | |\  |        * +
-  *        /_/   ​\_\_| ​  |_| |_____|_| \_| |_| |___\___/​|_| \_|        * +
-  *                                                                    * +
-  *   BIND requires configuration of rndc, including a "​secret"​ key.   * +
-  *    The easiest, and most secure way to configure rndc is to run    * +
-  *   '​rndc-confgen -a' to generate the proper conf file, with a new   * +
-  *            random key, and appropriate file permissions. ​          * +
-  *                                                                    * +
-  *     The /​usr/​local/​etc/​rc.d/​named script will do that for you.     * +
-  *                                                                    * +
-  ********************************************************************** +
-   +
-  ===> SECURITY REPORT:  +
-        This port has installed the following files which may act as network +
-        servers and may therefore pose a remote security risk to the system. +
-  /​usr/​local/​sbin/​named-journalprint +
-  /​usr/​local/​sbin/​named +
-  /​usr/​local/​sbin/​rndc-confgen +
-  /​usr/​local/​sbin/​dnssec-verify +
-  /​usr/​local/​sbin/​ddns-confgen +
-  /​usr/​local/​sbin/​dnssec-dsfromkey +
-  /​usr/​local/​bin/​host +
-  /​usr/​local/​sbin/​nsec3hash +
-  /​usr/​local/​sbin/​dnssec-signzone +
-  /​usr/​local/​bin/​nsupdate +
-  /​usr/​local/​sbin/​rndc +
-  /​usr/​local/​sbin/​lwresd +
-  /​usr/​local/​bin/​dig +
-  /​usr/​local/​sbin/​dnssec-revoke +
-  /​usr/​local/​sbin/​isc-hmac-fixup +
-  /​usr/​local/​sbin/​dnssec-keygen +
-  /​usr/​local/​bin/​delv +
-  /​usr/​local/​sbin/​named-checkzone +
-  /​usr/​local/​sbin/​dnssec-keyfromlabel +
-  /​usr/​local/​sbin/​dnssec-importkey +
-  /​usr/​local/​sbin/​named-checkconf +
-  /​usr/​local/​sbin/​genrandom +
-  /​usr/​local/​sbin/​named-rrchecker +
-  /​usr/​local/​bin/​nslookup +
-  /​usr/​local/​sbin/​dnssec-settime +
-   +
-      This port has installed the following startup scripts which may cause +
-      these network services to be started at boot time. +
-  /​usr/​local/​etc/​rc.d/​named +
-   +
-      If there are vulnerabilities in these programs there may be a security +
-      risk to the system. FreeBSD makes no guarantee about the security of +
-      ports included in the Ports Collection. Please type 'make deinstall'​ +
-      to deinstall the port if this is a concern. +
-   +
-      For more information,​ and contact details about the security +
-      status of this software, see the following webpage:  +
-  https://​www.isc.org/​software/​bind +
-  ===> ​ Cleaning for libxml2-2.9.3 +
-  ===> ​ Cleaning for GeoIP-1.6.9 +
-  ===> ​ Cleaning for idnkit-1.0_5 +
-  ===> ​ Cleaning for libedit-3.1.20150325_2 +
-  ===> ​ Cleaning for bind910-9.10.4 +
-  root@mgmt:/​usr/​ports/​dns/​bind910#​ rehash  +
-  root@mgmt:/​usr/​ports/​dns/​bind910#​ pkg info | grep bind +
-  bind910-9.10.4 ​                BIND DNS suite with updated DNSSEC and DNS64 +
-  root@mgmt:/​usr/​ports/​dns/​bind910# ​  +
- +
-После завершения установки,​ проверяю версию установленного BIND:  +
- +
-  named -v +
- +
-==== Настройка ==== +
 Для работы в chroot окружении в **/​etc/​rc.conf** добавляю:​ Для работы в chroot окружении в **/​etc/​rc.conf** добавляю:​
  
Строка 584: Строка 498:
 **blackhole**:​ указывает список хостов,​ которые входят в черный список (запрещен доступ) для инициализации любых транзакций с данным name-сервером. **blackhole**:​ указывает список хостов,​ которые входят в черный список (запрещен доступ) для инициализации любых транзакций с данным name-сервером.
  
 +==== Ведение журналов,​ сбор статистики и отладка ====
  
-  ​* **named-checkzone** – проверяет синтаксис и целостность файлов зон. Такие же проверки выполняются каждый раз ​перед их загрузкой ​bind’ом. Но считаю полезным все-таки ​это делать перед их загрузкой сервером имен+Утверждение ​**logging** позволяет ​задать произвольное число способов записи в журнал с помощью предложений **channel** и привязать различные ​категории ​сообщений к каналам ​с помощью предложений **category**. 
-  * **named-compilezone** – выполняет ​более строгие проверки, чем named-checkzone, ​т.кв результате ее работы сформируется дамп актуальных зон, который в свою очередь ​будут использоваться named. + 
-  * **named-checkconf** – утилита проверки ​файла-конфигурации named.conf+В предложении **channel** задается имя канала, способ записи (в файл с ограничением его размера (можно использовать масштабирующие коэффициенты K, M и G) и числа версий, syslog, stderr, null), фильтр (минимальный уровень серьезности сообщений для вывода через этот ​канал) ​и формат вывода (выводить ли в каждое сообщение имя категории,​ уровень серьезности и метку ​времени; ​по умолчанию - нет): 
 + 
 +  channel имя-канала { 
 +       ( file имя-файла 
 +           [ versions ( число | unlimited ) ] 
 +           [ size максимальный-размер ] 
 +         | syslog syslog_facility 
 +         | stderr 
 +         | null ); 
 +       [ severity (critical | error | warning | notice | 
 +                   info | debug [ уровень ] | dynamic ); ] 
 +       [ print-category yes-или-no;​ ] 
 +       [ print-severity yes-или-no;​ ] 
 +       [ print-time yes-или-no;​ ] 
 +     }; 
 +Версии файла (file, file.0, file.1 и т.д.) перенумеровываются ​при ​каждом открытии (кстати,​ а когда он открывается?​),​ если максимальный размер файла не задан. Если задан и размер и число версий,​ то перенумеровывание при открытии происходит только при превышении этого размера. Если при записи в файл его максимальный размер будет превышен,​ то при указании числа версий происходит перенумерация файлов и открывается новый, если ​число версий не указано, ​то запись в файл просто прекращается. 
 + 
 +Режим отладки задается либо при ​запуске (ключ -d), либо командой trace программы rndc (выключается командой rndc notrace). Команда trace позволяет указать уровень отладки (чем больше уровень, ​тем более подробная отладочная информация выдается, уровень 3 достаточно болтлив). При указании фильтра (severity) можно указать ​определенный уровень отладки (debug [ уровень ]) для включения отладочной печати данного уровня (и ниже) независимо от уровня отладки сервера (лишь бы ее включили) или указать ​ключевое слово dynamic для отладочной печати уровня, совпадающего с уровнем отладки сервера
 + 
 +В предложении ​**category** задается имя категории и список ранее определенных каналов, через которые будут выводиться сообщения данной категории:​ 
 + 
 +  category имя-категории { 
 +       ​имя-канала ; [ имя-канала ; ... ] 
 +     }; 
 +Определены следующие категории: 
 + 
 +  * default (определяет каналы для тех категорий, каналы для которых не определены явно; queries при этом не включается) 
 +  * general (неотсортированные в другие ​категории сообщения) 
 +  * database (хранение зон и кеш) 
 +  * security (при уровне отладки 3 - разрешения и запрещенияналичие подписей) 
 +  * config (разбор файла настройки) 
 +  * resolver (выполнение ​рекурсивных запросов клиентов, обращение к другим серверам, объем выдачи зависит от уровня отладки
 +  * xfer-in 
 +  * xfer-out 
 +  * notify 
 +  * client (обработка клиентских запросов и посылка ответов, ​уровень отладки 3) 
 +  * unmatched (отсутствует класс или view) 
 +  * network 
 +  * update 
 +  * queries (включается ​командой rndc querylog; явная привязка этой ​категории к каналам также включает трассировку - severity info) 
 +  * dispatch (передача запросов между модулями bind) 
 +  * dnssec 
 +  * lame-servers (severity info) 
 +  * delegation-only (ответы NXDOMAIN в результате действия опции delegation-only) 
 +Переопределять каналы (в т.ч. встроенные) нельзяно можно привязать категории к новым каналам. Сообщения об ошибках синтаксиса файла настройки и о запуске сервера записываются как будто утверждение logging отсутствует (так что syslog:​daemon тоже надо просматривать регулярно). По умолчанию принимается следующая настройка записи в журнал:​ 
 + 
 +  logging { 
 +    channel default_syslog { 
 +      syslog daemon; 
 +      severity info; 
 +    }; 
 +    channel default_debug { 
 +      file "​named.run";​ 
 +      severity dynamic; 
 +    }; 
 +    channel default_stderr { 
 +      stderr; 
 +      severity info; 
 +    }; 
 +    channel null { 
 +     ​null;​ 
 +    }; 
 +    category default { default_syslog;​ default_debug;​ }; 
 +    category unmatched { null; }; 
 +  }; 
 +Количество статистической информации,​ собираемой BIND 9 сильно уменьшилось о сравнению с предыдущими версиями. Накопленная статистика добавляется командой rndc stats к файлу ​named.stats в рабочей директории (options, directory), очередной раздел обрамляется строками "​Statistics Dump" с указанием времени в формате UNIX: 
 + 
 +  * success - число запросов,​ не вызвавших ошибок или возврата клиенту ссылки 
 +  ​referral ​число запросов,​ на которые сервер вернул клиенту ссылки 
 +  ​nxrrset - несуществующих записей запрошенного типа для доменного ​имени 
 +  * nxdomain - несуществующих доменных имен 
 +  * recursion - число запросов, потребовавших ​рекурсивной обработки 
 +  * failure ​число ошибок, кроме nxrrset ​и nxdomain 
 +Общее число запросов к серверу равно success + referral + nxrrset + nxdomain + failure. Статистика может собираться отдельно по зонам и видам, в этом случае имена зоны и вида (опускается для вида default) приводятся в конце каждой строки.
  
 ==== Домен 4-го уровня ==== ==== Домен 4-го уровня ====
Строка 594: Строка 582:
  
 ==== Проверка ==== ==== Проверка ====
 +  * **named-checkzone** – проверяет синтаксис и целостность файлов зон. Такие же проверки выполняются каждый раз перед их загрузкой bind’ом. Но считаю полезным все-таки это делать перед их загрузкой сервером имен. 
 +  * **named-compilezone** – выполняет более строгие проверки,​ чем named-checkzone,​ т.к. в результате ее работы сформируется дамп актуальных зон, который в свою очередь будут использоваться named. 
 +  * **named-checkconf** – утилита проверки файла-конфигурации named.conf
 Проверяю конфигурационный файл на ошибки Проверяю конфигурационный файл на ошибки
  
   named-checkconf /​usr/​local/​etc/​namedb/​named.conf   named-checkconf /​usr/​local/​etc/​namedb/​named.conf
  
-Файл зоны ​можно проверить так+Проверяю файл зоны на ошибки
-команда Имя Зоны Путь к зоне+
   named-checkzone mgmt.klotik.ru /​usr/​local/​etc/​namedb/​master/​mgmt.klotik.ru   named-checkzone mgmt.klotik.ru /​usr/​local/​etc/​namedb/​master/​mgmt.klotik.ru
   zone mgmt.klotik.ru/​IN:​ loaded serial 2020021300   zone mgmt.klotik.ru/​IN:​ loaded serial 2020021300
Строка 606: Строка 595:
  
 ==== Запуск ==== ==== Запуск ====
 +
 +Рекомендуется создать специальную группу named и пользователя named для запуска сервера. Перед запуском необходимо отредактировать /​etc/​named.conf,​ файлы зон и установить соответствующие права доступа к ним и прочим файлам,​ имеющим отношение к серверу (простой пример). Если необходимо управление сервером с помощью программы rndc, то необходимо также отредактировать /​etc/​rndc.conf. Ключи запуска:​
 +
 +  * -c имя-файла-настройки (полное имя файла)
 +  * -d уровень-отладки
 +  * -f (не уходить в фоновый режим при запуске)
 +  * -g (не уходить в фоновый режим при запуске,​ вся отладочная печать на stderr)
 +  * -p номер-обслуживаемого-порта
 +  * -u идентификатор-пользователя (сменить эффективный идентификатор пользователя с root на указанный как можно скорее после запуска)
  
   /​usr/​local/​etc/​rc.d/​named start   /​usr/​local/​etc/​rc.d/​named start
Строка 683: Строка 681:
 Файл настройки rndc (/​etc/​rndc.conf) имеет такой же синтаксис,​ что и named.conf. Комментарии могут записываться в стиле C, C++ или sh. Файл настройки состоит из утверждений,​ завершающихся точкой с запятой. Утверждения содержат блок предложений,​ заключенный в фигурные скобки. Предложение в блоке также завершается точкой с запятой. Права на чтение этого файла должны быть только у того, кто имеет право запускать rndc. Предусматириваются следующие типы утверждений:​ Файл настройки rndc (/​etc/​rndc.conf) имеет такой же синтаксис,​ что и named.conf. Комментарии могут записываться в стиле C, C++ или sh. Файл настройки состоит из утверждений,​ завершающихся точкой с запятой. Утверждения содержат блок предложений,​ заключенный в фигурные скобки. Предложение в блоке также завершается точкой с запятой. Права на чтение этого файла должны быть только у того, кто имеет право запускать rndc. Предусматириваются следующие типы утверждений:​
  
-options { +  ​options { 
-default-server имя-или-адрес-сервера;​ +  default-server имя-или-адрес-сервера;​ 
-default-key "​имя-ключа";​ +  default-key "​имя-ключа";​ 
-default-port номер-управляющего-порта;​ +  default-port номер-управляющего-порта;​ 
-+  
-server имя-или-адрес-сервера { // адрес в двойных кавычках +  server имя-или-адрес-сервера { // адрес в двойных кавычках 
-key "​имя-ключа";​ +  key "​имя-ключа";​ 
-port номер-управляющего-порта;​ +  port номер-управляющего-порта;​ 
-+  
-key "​имя-ключа"​ +  key "​имя-ключа"​ 
-algorithm hmac-md5; +  algorithm hmac-md5; 
-secret "​base-64-кодированный-ключ";​ +  secret "​base-64-кодированный-ключ";​ 
-+  
-Утилита rndc-confgen позволяет сгенерировать /​etc/​rndc.conf со случайным ключом (и закоментаренные предложения controls и key для /​etc/​named.conf). Следующими ключами можно модифицировать получаемый файл:+Утилита rndc-confgen позволяет сгенерировать /​etc/​rndc.conf со случайным ключом (и закомментированные предложения controls и key для /​etc/​named.conf). Следующими ключами можно модифицировать получаемый файл:
  
--b размер-ключа (по умолчанию - 128; от 1 до 512) +  * -b размер-ключа (по умолчанию - 128; от 1 до 512) 
--k имя-ключа (по умолчанию - rndc-key) +  ​* ​-k имя-ключа (по умолчанию - rndc-key) 
--p номер-управляющего-порта (по умолчанию - 953) +  ​* ​-p номер-управляющего-порта (по умолчанию - 953) 
--s имя-или-адрес-сервера (по умолчанию - 127.0.0.1)+  ​* ​-s имя-или-адрес-сервера (по умолчанию - 127.0.0.1)
 Утилита rndc позволяет менять параметры соединения с сервером с помощью ключей:​ Утилита rndc позволяет менять параметры соединения с сервером с помощью ключей:​
  
--c имя-файла-настройки +  * -c имя-файла-настройки 
--s имя-или-адрес-сервера +  ​* ​-s имя-или-адрес-сервера 
--p номер-управляющего-порта +  ​* ​-p номер-управляющего-порта 
--y имя-ключа +  ​* ​-y имя-ключа 
--V (трассировка исполнения для отладки)+  ​* ​-V (трассировка исполнения для отладки)
 Если запустить rndc без указания команды,​ то она выдаст список поддерживаемых команд:​ Если запустить rndc без указания команды,​ то она выдаст список поддерживаемых команд:​
  
Строка 790: Строка 788:
 https://​toster.ru/​q/​67146\\ https://​toster.ru/​q/​67146\\
 https://​miac.volmed.org.ru/​wiki/​index.php/​%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_DNS_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_(named9)\\ https://​miac.volmed.org.ru/​wiki/​index.php/​%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_DNS_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_(named9)\\
 +https://​freebsdguide.ru/​_14/​_7\\
 http://​freebsdguide.ru/​_14/​_8\\ http://​freebsdguide.ru/​_14/​_8\\
 http://​www.bog.pp.ru/​work/​bind.html http://​www.bog.pp.ru/​work/​bind.html
 +
  
  
freebsd/bind9.1606043185.txt.gz · Последние изменения: 2020/11/22 11:06 — alex