Система доменных имен


         

Это делается при помощи директивы


Это делается при помощи директивы acl (access control list):

acl "vega-net" { 194.226.43/24; }; acl "vega-friend" { 194.226.65/24; }; options { directory "/etc/namedb"; allow-query {vega-net;}; recursion no; fake-iquery yes; fetch-glue no; use-id-pool yes; };

Два списка контроля доступа содержат пулы адресов корпоративной сети и сети slave сервера. Первый список мы применяем в директиве options. Разрешаем серверу обрабатывать запросы только от "наших" хостов (allow-query).

Опции директивы options распространяются на все зоны нашего сервера, поэтому, если мы хотим какую-либо из них обслуживать иначе, то должны в ее конфигурацию ввести изменения. Иначе мы обслуживаем зоны vega.ru и 43.226.194.in-addr.arpa:

// Corporative domain zone "vega.ru" { type master; file "vega.ru"; allow-query {any; }; allow-transfer { vega-friend; }; }; // Reverse corporative domain zone "43.226.194.in-addr.arpa" { type master; file "43.226.194.in-addr.arpa"; allow-query {any; }; allow-transfer { vega-friend; }; };

В описании этих зон мы применили список доступа vega-friend и только для этих зон разрешили обслуживание любых нерекурсивных запросов.

В принципе, можно было обойтись и без списков доступа, но в данном случае мы просто преследовали цель продемонстрировать способ их применения. Корпоративная сеть может быть развернута не на одной сети класса C, для дружественных сетей можно разрешить не только копирование зоны, но и удаленное ее (зоны) обновление. В этом случае списки увеличатся в объеме, и их копирование в разные части файла конфигурации может привести к нежелательным ошибкам.

Кроме того, при изменениях корпоративной сети и дружественных сетей вносить изменения придется только в списки управления доступом, а не в разбросанные по всему файлу описания. Использование списков управления (контроля) доступа - это более правильный стиль.

В BIND 9.х есть еще один механизм для определения различного поведения сервера при обслуживании запросов - "views".В материалах CERT для управления рекурсией приведена, например, такая конфигурация:

// Corporative domain view "internalview" { match-clients { internal; }; recursion yes; }; // Internet view "externalview" { match-clients { any; }; recursion no; };

Слово "internal" - это имя списка доступа, а слово "any" обозначение любого хоста Интернет.

На этом, пожалуй, можно и остановиться. Дальнейшее усложнение конфигурации сервера будет связано с вопросами безопасности и управления обновлениями зоны, но эти вопросы логичнее рассмотреть в других материалах, специально посвященных этим проблемам.


Содержание  Назад  Вперед