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