Динамические зоны на сервере имен DNS
Команда named поддерживает динамическое обновление информации. Необходимо настроить файлы конфигурации и базы данных named таким образом, чтобы клиенты могли выполнять обновление. Область может быть задана как динамическая или как статическая. По умолчанию применяются статические области.
Для создания динамической области нужно добавить ключевое слово allow-update в раздел zone файла /etc/named.conf. Вместе с ключевым словом allow-update задается список IP-адресов хостов, которым разрешено отправлять запросы на обновление. Более подробная информация и пример файла conf содержится в разделе Формат файла named.conf для TCP/IP книги Справочник по файлам . В приведенном ниже примере обновлять динамическую область разрешено всем хостам:
zone "abc.aus.century.com" IN {
type master;
file "named.abc.data";
allow-update { any; };
};После того, как динамическая область описана, можно установить один из следующих трех режимов защиты области:
| Флаг | Описание |
|---|---|
| Unsecured | Всем разрешено в любой момент обновлять любую информацию в
области.
Внимание: Не рекомендуется использовать этот режим. Применение данного режима может привести к потере данных, их перехвату и
неполадкам в работе пользователей. Рекомендуется задать четкий список
IP-адресов хостов, которым разрешено обновлять незащищенную область.
|
| Controlled | Разрешено создание новой и замена существующей информации. Это, вероятно, самый удобный режим для защищенной среды передачи. В данном режиме все поступающие обновления должны снабжаться меткой времени поступления и зашифрованной подписью. |
| Presecured | Все обновления существующей информации должны заменяться аналогичной информацией. Не позволяет создавать новую информацию. В данном режиме все поступающие обновления должны снабжаться меткой времени поступления и зашифрованной подписью. |
По умолчанию для динамических областей применяется
незащищенный режим (unsecured). Для применения другого режима укажите
слово controlled or presecured после ключевого слова update-security в разделе zone файла /etc/named.conf. Это слово сообщает серверу
named , какой уровень защиты он должен использовать при
работе с этой областью. Например:
zone "abc.aus.century.com" IN {
type master;
file "named.abc.data";
allow-update { any; };
update-security controlled;
};После выбора режима нужно изменить существующие файлы данных в соответствии с текущим уровнем защиты. В незащищенном режиме файлы данных используются "как есть". В управляемом режиме и режиме с предварительной защитой для каждого хоста области необходимо создать пару ключей главного сервера и хоста. Это можно сделать с помощью команды nsupdate с параметром -g. Данная команда создает пару ключей (личный ключ и общий ключ). Эти ключи используются для создания идентификационных меток обновления. После создания всех ключей для списка имен областей, добавьте их в файл данных. Запись KEY имеет следующий формат:
Индекс ttl Класс Тип Ключевые-флаги Протокол Алгоритм Ключевые-данныегде:
| Флаг | Описание |
|---|---|
| Индекс | Определяет имя, используемое для обращения к данным в области. |
| ttl | Задает для этих данных время хранения в кэше (TTL). Это необязательное поле. |
| Класс | Определяет класс данных. Он зависит от области, но обычно имеет значение IN. |
| Тип | Задает тип записи. В данном случае запись имеет тип KEY. |
| Флаги | Задает для named информацию о ключе. 0x0000 определяет запись обычного ключа, использующегося для хоста. 0x0100 определяет запись ключа, связанную с именем области. |
| Протокол | Задает используемый протокол. В данный момент применяется
только протокол 0. |
| Алгоритм | Задает алгоритм ключа. В данный момент применяется только алгоритм 1.
Это способ идентификации MD5 с личным/общим ключом. |
| Данные | Задает ключ в формате base64. Команда nsupdate создает как общие, так и личные ключи в формате base64. Общий ключ указывается в конце файла вывода. |
Например, для того чтобы убедиться, что для имени хоста в динамической области установлена защита, необходимо добавить следующую строку в определение области, в которую входит данный хост:
bears 4660 IN KEY 0x0000 0 1 AQOtg......В этом примере для хоста bears
определена запись KEY. Каждый, кто захочет обновить
bears, должен будет подписать свое
обновление личным ключом, соответствующим общему ключу, хранящемуся в
базе данных. Для того чтобы команда nsupdate была успешно выполнена, необходимо разместить общий ключ в файле
ключей клиента (по умолчанию, /etc/keyfile). Записи
этого файла имеют следующий формат:
имя-хоста имя-главного-сервера base64 ключАналогичную запись KEY необходимо
указать в разделе описания области. Ключ области
должен быть указан и для режима presecured, и для режима controlled.
В противном случае будет применяться незащищенный режим. Это
можно сделать так же, как в примере с bears, но личный ключ должен быть
оставлен администратору для его применения в команде nsupdate при работе в административном режиме.
- Для создания пары ключей с помощью команды nsupdate
введите:
nsupdate -g -h имя-области -p имя-сервера -k файл-ключейПри этом создается ключ для области. В этом примере команда nsupdate связана с командой nsupdate4. Это можно сделать с помощью следующей команды:ln -fs /usr/sbin/nsupdate4 /usr/sbin/nsupdate - Укажите последний ключ из пары в начале раздела описания области
следующим образом:
IN KEY 0x0100 0 1 КлючЗапись для файла named.abc.data выглядит следующим образом:$TTL 3h ;3 hour @ IN SOA venus.abc.aus.century.com. gail.zeus.abc.aus.century.com. ( 1 ;serial 3600 ;refresh 600 ;retry 3600000 ;expire 86400 ;negative caching TTL ) IN NS venus.abc.aus.century.com. IN KEY 0x0100 0 1 AQPlwHmIQeZzRk6Q/nQYhs3xwnhfTgF/ 8YlBVzKSoKxVKPNLINnYW0mB7attTcfhHaZZcZr4u/ vDNikKnhnZwgn/ venus IN A 192.9.201.1 earth IN A 192.9.201.5 mars IN A 192.9.201.3 - Теперь можно загрузить область, обновив сервер имен. Поместите файл AdminKeyFile в систему клиента или на сервер DHCP, обновляющий область. Ключ области из файла AdminKeyFile может применяться для применения обновлений и выполнения операций обслуживания на сервере имен.