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

Ограничение рекурсивных запросов (специальный случай DNS Query/Response)


Авторитетный name-сервер обеспечивает сервис разрешения имен для клиента, исходя из своих собственных данных. Следовательно, конфигурирование авторитетного name-сервера должно быть сделано таким образом, чтобы он мог принимать запросы от любых хостов. Обеспечение безопасности авторитетного name-сервера состоит в выключении возможности рекурсивного запроса, чтобы этот сервер не испортил свой кэш, запрашивая другие (возможно, скомпрометированные) name-серверы. Локальный рекурсивный name-сервер может быть сконфигурирован таким образом, чтобы принимать запросы только от внутренних хостов, что защитит его от DoS-атак, а также от порчи кэша. Однако возможны ситуации, когда экономически нежелательно иметь выделенные серверы для авторитетного сервиса и сервиса разрешения имен, и рекурсивный name-сервер должен выполняться как авторитетный сервер для одной или более зон. В такой ситуации возможны следующие стратегии с использованием BIND 9.х name-сервера:

  • Ограничение всех принимаемых запросов конкретным множеством IP-адресов внутренних клиентов и после этого перекрытие данного множества только для авторитетных зон, чтобы любой DNS-клиент мог получать информацию о ресурсах в данной зоне.

  • Ограничение рекурсивных запросов конкретным множеством IP-адресов внутренних клиентов с помощью соответствующей конфигурационной опции.

  • Создание различных ответов для различных клиентов с помощью определения views.

Ограничение на уровне сервера с перекрытием для авторитетных зон

В этом случае определяется допустимое множество внутренних клиентов, которые могут передавать запросы к name-серверу. Для этого соответствующее acl утверждение таково:

acl "internal_hosts" { 192.158.43.3, 192.158.43.6, 192.158.44.56; };

Опцией на уровне сервера следует указать ограничение, чтобы запросы могли исходить только от данных клиентов:

options { allow_query { internal_hosts; }; };

Опция может быть перекрыта указанием зон, для которых данный name-сервер является авторитарным (тем самым разрешая запросы, касающиеся ресурсов в данной зоне от всех клиентов):


zone "example.ru" { type master; file "zonedb.example.ru"; allow_query { any; }; };

Ограничение всех рекурсивных запросов конкретным множеством IP-адресов

Ограничение на уровне сервера:

options { allow_recursion { internal_hosts; }; };

Ограничение рекурсии с помощью views

Цель создания views состоит в логической комбинации клиентов (на основе IP-адресов) и зон, для которых будут поддерживаться рекурсивные запросы и для которых они не будут поддерживаться. В следующем примере view recursion_view дает возможность определить область IP-адресов и зон, которым разрешено передавать рекурсивные запросы; no_recursion_view означает запрещение рекурсии.

view recursion_view { match-clients ( internal_hosts; }; recursion yes; }; view no_recursion_view { math-client { any; }; recursion no; };


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