Рейтинг:1

Bind9 разрешает зоны только как часть рекурсивного разрешения

флаг kr

В моей облачной среде у меня есть сервер bind9, работающий как прокси для всех исходящих DNS-запросов, генерируемых в среде. В настоящее время я пытаюсь настроить Bind для выполнения следующей фильтрации как части потока разрешения имен:

  1. Разрешить рекурсивное разрешение для некоторых зон (скажем, aws.com и gcp.com)
  2. Не разрешайте запросы к каким-либо другим зонам, в том числе к тем, которые содержат CNAME для ранее упомянутых доменов (например, если A.aws.com имеет CNAME для custom.service.digitalocean.com, разрешите рекурсивное разрешение, но не позволяйте клиентским запросам *.service.digitalocean.com

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

РЕДАКТИРОВАТЬ: Мне не удалось заставить RPZ работать с переадресованными зонами (похоже, они работают только с зонами master/slave).

Любые идеи? Альтернативные способы достижения того же функционала (без РПЗ) для меня одинаково приемлемы...

Рейтинг:1
флаг za

Это не так, как это работает.

Рекурсия обычно допускается на за просмотр, который, в свою очередь, соответствует конкретным клиентам. Рекурсия это процесс окончательного и полного преобразования DNS-имени в IP-адрес, и он называется рекурсия потому что один и тот же процесс происходит для всех уровней, составляющих имя (например, foo.bar имя будет иметь 3 шага для разрешения имени: один для завершающего TLD ., который я пропустил, один для бар часть и одна для фу часть).

Вы, кажется, тоже путаете рекурсивный преобразователь с авторитетный NS. Последний обслуживает определенные зоны DNS, и, для корректной работы, он должен обслуживать эти зоны для всего внешнего мира (оставим случай, когда вы заставляете свой NS имитировать некоторые зоны, для которых он неавторитетный). Экземпляр DNS-сервера наверняка может включать в себя обе эти сущности, но их функциональность сильно различается. Поэтому, когда ваш NS размещает/обслуживает некоторые зоны DNS, на самом деле ему все равно, является ли входящий запрос рекурсивным или нет. Заключительная часть: когда ваш авторитетный NS отвечает CNAME-RR (ресурсная запись) указывает на другую зону для кого-то, указывая, что для запрошенного хоста нет A-RR, это бремя запроса для дальнейшего разрешения: когда вы CNAME что-то, вы фактически не обязаны ничего относительно записей целевой зоны. Например: foo.bar CNAME, указывающий на fou.baar. Теперь бремя распознавателя лежит на инициаторе запроса. fou.baar ибо это клиент в соответствующей зоне, начиная отторжение с самого начала, а не ваш NS.

Итак, в конце концов, то, что вы просите, — это готовая логика, с которой будет работать любая известная реализация DNS-сервера: обслуживать только те зоны, которые разрешено запрашивать, и выполнять рекурсию только для клиентов (или ключей, например), которым разрешено запрашивать рекурсию.

флаг kr
Большое спасибо за ответ! Я не уверен, что я вас понял.Мой сервер является прокси-сервером (см. опубликованное мной обновление) — я хочу, чтобы он действовал как рекурсивный преобразователь для ограниченного набора зон и отклонял все остальные запросы, независимо от их свойств. Можно ли этого добиться в бинде? насколько я вижу, когда я разрешаю рекурсию, мои клиенты могут запрашивать все домены, содержащие CNAME, которые были обнаружены как часть рекурсии...
drookie avatar
флаг za
Можно, но я все же настаиваю на том, что вы, вероятно, захотите настроить *рекурсивный резолвер* для **ограниченного набора клиентов** и в то же время действовать как *авторитетный NS* для хостинга всего мира **a ограниченный набор зон**. Это большая разница. Ваше точное желание также достижимо, но это будет своеобразная и необычная установка.
Рейтинг:0
флаг jo

Это просто настроить, но вам может понадобиться другой сервер или просто использовать общедоступный преобразователь. Я буду использовать пример общедоступного преобразователя (cloudflare)

Сначала настройте зоны пересылки на своем DNS-сервере.

Что-то вроде этого в формате конфигурации привязки

зона "somedomain.com" {
  введите вперед;
  экспедиторы { 1.1.1.1; };
};
зона "anotherdomain.org" {
  введите вперед;
  экспедиторы { 1.1.1.1; };
};

Во-вторых, заблокируйте все остальные DNS-запросы, перенаправив их в черную дыру.

Что-то вроде этого в верхней части конфигурации привязки

параметры {
        директория "/var/cache/bind";    
        рекурсия да;    
        экспедиторы {
                192.168.255.254;
        };

Что происходит

  • Запросы для somedomain.com и Anotherdomain.org будут перенаправлены в Cloudflare и полностью разрешены вверх по течению (включая цели CNAME, которые могут быть другими доменами).

  • Запросы для любого другого домена будут просто перенаправлены на не отвечающий сервер или IP-адрес и никогда не будут разрешены.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.