Межсетевое экранирование

         

Конфигурирование более точных ограничений динамического обновления с использованием TSIG-ключей


Подутверждение allow-update определяет ограничения динамического обновления, которые основаны на отправителях запросов динамических обновлений (конкретное множество хостов, идентифицируемых по IP-адресу или обладающих TSIG-ключом), но не на содержимом зонных записей. Для указания ограничений доступа (grant или deny) к динамическим обновлениям, основанным на комбинации имен домена или поддомена и типов ресурсных записей (A, MX, NS и т.п.), BIND 9 и более поздние версии предоставляют подутверждение update-policy в утверждении zone. Эти ограничения в подутверждении update-policy основаны на TSIG-ключе. Другими словами, подутверждение update-policy указывает, каким TSIG ключам (держателям ключей) разрешено выполнять динамические обновления для каких доменов или поддоменов и типов ресурсных записей внутри данного домена или поддомена.

Общая форма update-policy утверждения следующая:

update-policy { (grant | deny) TSIGkey nametype name [type] };

где семантика каждого компонента утверждения такова:

  • grant / deny – разрешить / запретить динамическое обновление для комбинации, которая следует далее.

  • TSIGkey – имя TSIG-ключа, используемого для аутентификации запроса обновления.

  • nametype – может быть одним из следующих значений, с соответствующей семантикой:

    • name – ограничение, применяемое к имени домена, которое указано в следующем поле name.

    • subdomain – ограничение, применяемое к поддоменам домена, который указан в следующем поле name.

    • wildcard – ограничение, применяемое к множеству доменов, которые указаны с использованием wildcard синтаксиса (например, *) в следующем поле name.

    • self – ограничение, применяемое к домену, который является тем же самым, что и в поле TSIGkey (например, имя домена, чьи записи являются модифицируемыми, такое же, что и у ключа, используемого для аутентификации запроса динамического обновления). При таком использовании содержимое поля name становится лишним, но, тем не менее, должно использоваться в утверждении (т.е. поле name не может быть пустым).




  • name – применяется для указания имени домена. Используемый синтаксис и домены, которые указывает данный параметр, основаны на значении, заданном в поле nametype (например, если поддомен является значением поля nametype, то все поддомены используемого имени домена охватываются данным утверждением).


  • type – необязательное поле, которое может содержать любой существующий тип ресурсных записей (за исключением NSEC-типа) или wildcard тип ANY (ANY означает все типы ресурсных записей, за исключением NSEC-типа). Если параметр опущен, то это означает все типы ресурсных записей, за исключением SOA, NS, RRSIG и NSEC. Также возможно использование нескольких типов ресурсных записей, разделенных пробелами (например, A NS).


Примеры update-policy утверждений и связанная с ними семантика приведены ниже.

Предположим, что существует домен sales.example.ru внутри example.ru и что name-сервер использует TSIG ключ, который имеет то же самое имя, что и имя его домена (т.е. sales.example.ru). Все динамические обновления от sales.example.ru могут быть ограничены ко всем ресурсным записям данного домена следующим образом:

zone "example.ru" { type master; file "zonedb.example.ru"; update-policy { grant sales.example.ru. self sales.example.ru.; }; };

Все динамические обновления от sales.example.ru могут быть ограничены только типами ресурсных записей A и MX данного домена следующим образом:

zone "example.ru" { type master; file "zonedb.example.ru"; update-policy { grant sales.example.ru. self sales.example.ru. A MX; }; };


Содержание раздела