Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
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 | ||
+ | |||